COSC 360

Operating Systems


Syllabus


Please read this syllabus thoroughly!
Instructor

Dr. Beau M. Christ

Email: christbm@wofford.edu
Phone: (864) 597-4528
Office: Olin 204F
Office Hours: MWF from 1:30PM - 3:30PM and TR from 9:30AM - 11:00AM
Website: http://www.beauchrist.com


If you have any questions at all, feel free to contact me by email or phone, or stop by my office during office hours. You can also try to catch me at other times or make an appointment. I am always happy to talk!


Meeting Time & Location

We will meet every Monday, Wednesday, and Friday from 9:30AM-10:20AM in Olin 114.


Required Textbook

We will use Operating System Design: The Xinu Approach (2nd edition) by Douglas Comer.


Course Overview & Goals

Welcome to COSC 360: Operating Systems!

Operating systems (such as Windows, macOS, and Linux) are something we often take for granted, yet they are extremely important in order to get any work done on a computer (including cars, microwaves, watches, and much more!). They are often doing a lot of work behind the scenes to make using a computer a lot more user-friendly. This course will examine basic operating system concepts (processes, threads, scheduling, memory, etc.), the implementation of those concepts in code using an example operating system (Xinu), and several operating systems that are in use today. A knowledge of operating systems will give you a better understanding of how computers work, and will allow you to exploit the operating system to make your programs run as efficient as possible.

Prerequisites: COSC 350 (Data Structures & Algorithms) with a minimum grade of C.

Catalog Description: A study of fundamental concepts that are applicable to a variety of operating systems. Such concepts include processes and threads, process coordination and synchronization, scheduling, physical and virtual memory organization, device management, file systems, security and protection, communications and networking.

Course Goals
By taking this course, my goal is for you to:
  1. Examine some of the major operating systems in use today including Windows, macOS, and Linux.
  2. Learn basic OS concepts such as processes, threads, physical/virtual memory, coordination and synchronization, scheduling, file systems, and security/protection.
  3. Gain real experience writing OS code by examining, changing, and adding to the source code for a real operating system (Xinu).
  4. Learn about current OS research by finding a recent paper on an OS topic, reading through it, and presenting it to the class.
  5. Improve your programming skills by better understanding how an operating system interacts with software.
You will fulfill these objectives by:
  • Reading your textbook
  • Taking three exams
  • Completing multiple projects
  • Presenting a current OS paper to the class
  • Being engaged during in-class discussions and activities

Grading

All grades will be recorded in Moodle as the semester progresses, including your final grade. Your final grade will be weighted as follows:

Projects (45%)

You will complete multiple projects to obtain hands-on experience working with OS code. These may consist of both written/typed responses, as well as C code. All projects will be submitted via Moodle. Every project will be equally weighted, and each will be given a grade out of 10 points.

Exams (40%)

You will complete three exams throughout the semester over the material covered in class and in the textbook. The dates for these exams will be decided as the semester progresses.

Final Presentation (15%)

Your final exam will actually be a presentation. You will locate a current research paper on an OS topic, read it thoroughly, and create a presentation to present to the class. This presentation will happen during finals week.

Grading Scale

Grades will be rounded (92.49% = A- and 92.5% = A)
A A- B+ B B- C+ C C- D F
93% - 100% 90% - 92% 87% - 89% 83% - 86% 80% - 82% 77% - 79% 73% - 76% 70% - 72% 60% - 69% 0% - 59%

Policies

Attendance

You are expected to attend class. I do understand that absences are sometimes unavoidable, so I appreciate an email letting me know in advance that you will be absent. You are responsible for catching up on missed classes. If you do not let me know ahead of time that you will be absent on an exam day, you will not get a chance to retake the exam. If you have an excused absence, contact me before the exam to reschedule taking it.

Finally, in accordance with Wofford policy, you must be present for the final exam.

Classroom

You are encouraged to bring your computer to work along with the examples in class. I highly advise you, however, to not become distracted by your devices (notebook, phone, tablet, etc.) for things other than course-related use. Not only are you missing out and inhibiting your learning, but it is often a distraction to others as well.

Lateness

You are expected to keep up with all coursework and due dates during the semester. Submitting coursework past the due date/time (even by a single minute!) will result in a 20% penalty for that particular assignment. After that, you have 24 hours to submit the late work. After 24 hours, the project will not be accepted under any circumstances and will receive a 0. There are a few reasons that are acceptable (medical, family emergencies, etc.), but I will usually only grant extensions for those cases when receiving an email or phone call before the due date. I will decide on a case-by-case basis, but having official documentation will help make your case.

Exams must be taken on their scheduled date and time. If you must miss class on the day of an exam, please contact me in advance. I will be much less likely to be forgiving if contacted afterwards.

According to Wofford policy, you must be present during the final exam time.

Communication

I will use email for all communication. Feel free to contact me using "christbm@wofford.edu".

Academic Integrity

Please do your own work!
I have caught students cheating in the past, and take these matters very seriously. Any student I determine is guilty of academic dishonesty will receive a '0' for the assignment and have their case referred to the department and the college to be pursued further (trust me, you do not want that to happen). You may discuss ideas and pseudocode with other students, but all work must be your own. I will be using software to analyze your code to see if it closely matches that of another student.

To make sure you understand what constitutes academic dishonesty, please read the Wofford Honor Code. By enrolling in this course, you are pledging that you agree to the Wofford Honor Code and that all submitted work is your own. Please talk to me if you are unsure what constitutes academic dishonesty.

Reasonable Accommodations

If you need accomodations with anything, please contact both the Wofford Accessibility Services and myself at the beginning of the semester.