Operating Systems

Operating doggedly...

CSC 325 Syllabus

Course Operating Systems
Number 325
Instructor Matt Jadud
Office Danforth Technology Building 102B
Phone
CPO 2188
Office Hours
Email

Office Hours

Office hours are by appointment. I am available for appointments:

  • Monday, 8AM to 10AM
  • Tuesday, 8AM to noon & 3PM to 4PM
  • Wednesday, 8AM to 10AM
  • Thursday, 8AM to noon & 3PM to 4PM

If none of these times work, it will be difficult for us to meet, but not impossible. (I am in class or meetings most of the times that are not listed.)

I am more than happy to chat, and sometimes you can stop by during those hours and I'll be free; however, I schedule my time pretty tightly, so it is possible I may ask you to make an appointment and/or follow up via email.

What This Course is About

In this course, we will implement a kernel operating system for the x86 architecture. To frame the programming exercises that lead to the development of a complete operating system, we will also be reading and discussing our course text and a selection of classic and current articles regarding systems, be they single-machine, single-user operating systems, or filesystems that span the globe.

Course Objectives

In this course, you will develop an understanding of the fundamental concepts of operating systems through code study, implementation, and practical experience with the Linux operating system.

We will explore:

  • Resource allocation (memory, disk)
  • Resource sharing and coordination (scheduling)
  • Resource protection (memory)
  • Resource storage (disk, hierarchies)

Critical to the study of operating systems, but not explicitly covered in depth in this course include:

  • Performance (responsiveness, throughout)
  • Connectivity and communication (networking)

Materials Online

  • We will use Moodle, provided by Berea College, for handing in assignments.
  • We can use Dropbox for making sure we never lose our work.
  • We will use BitBucket for version control.

Required Text and Materials

Both of these texts are free and open texts.

Course Prerequisites

Completion of Data Structures or permission of instructor.

Attendance Policy

For every unexcused absence beyond two, you may be fined a 5% grade penalty for each class missed. (There are roughly 28 class meetings; on your 3rd absence, you have missed 10% of class, so a 5% penalty is generous.)

Technology Policies

Much of the work in this course will require use of the computer, so these policies are designed to help you better understand how to be effective in a technology-rich environment.

  • Laptop and Software: We will regularly make use of laptops during class, and you are expected to have them unless explicitly stated otherwise.
  • Unapproved Technology: We use our technology for work during class, not play. Keep your phones silenced, and out of sight. No excuses.
  • Communication: The course website is your primary source for information about the course; our Moodle site will be used for posting grades and assignment submission. Messages about the course will often be sent by email.
  • Backups: All students are expected to back-up their work on a daily basis, which includes laboratories, assignments, and quizzes. The best way to do this is to store a copy of all work in a cloud service such as Bitbucket, Dropbox, SkyDrive, Google Drive, or to use a DVD, flash drive, or some other media. Storing multiple copies of something on your laptop is not a backup. I will not be sympathetic to lost work in any way, shape, or form.
  • Exceptions: Exceptions to any of these technology policies will be considered on an individual case-by-case basis but will only be granted under extreme circumstances.

Collaboration and Teamwork

When doing work that is collaborative in nature, it is essential that you cite your collaborators in all instances. Failure to do so could be construed as academic dishonesty.

I will make use of the institutional policies laid down regarding academic dishonesty. In the real world, plagiarism and claiming others' work as your own could result in you losing your job. Our goal is to support you in your learning, and copying the work of others (or inappropriately reusing work found on the WWW) never constitutes good learning. CITING YOUR WORK is always, always essential.

Grade Distribution

10%
Work 55%
Assessments 30%
Attendance
Participation 5%

"Work" means work done in-class, homeworks, laboratories, presentations, etc. as assessed by the instructor, TAs, or (if appropriate) your peers. Put simply, "more than half of your grade comes from doing excellent work throughout the course."

Often, different groups will read different articles, and share and discuss a common topic from multiple perspectives. Your participation in discussions from an informed perspective is essential.

Grading Scale

The Berea College grading scale makes clear that:

  • An A represents excellent work,
  • A B represents good work, and
  • A C represents competent work.

Most work that any of us do is competent. I will communicate with you bi-weekly about where I believe you stand in the course, so that you can focus your efforts appropriately.

  • An A is in the range of 91% to 100%
  • A B is in the range of 81% to 90%
  • A C is in the range of 71% to 80%
  • A D is in the range of 61% to 70%
  • An F is a grade of 60% or lower.

A plus may be earned through exceptional attendance, teamwork, professionalism and collegiality, and participation. A plus is completely at the discretion of the instructor.

Any questions regarding grades should never be directed at TAs, but instead always directed to the instructor of the course.

Your Expectations

You have a number of expectations for me as a professor in this class:

  1. Don't hold your hands -- metaphorically. This is a difficult expectation: I want to challenge all of you, but it is also my job to make sure everyone learns and masters material. I will work to strike the right balance for the group enrolled this term.

  2. Clear objectives on assignments. I will add an objectives section to all assignments going forward, and do my best to make sure they are understandable.

  3. Timely feedback. I will aspire to returning feedback on assignments within three days, one week at the most. Where assignments stack or directly inform each-other, I will make sure that feedback comes in before the next assignment is due. (For example, in larger programming assignments, feedback between them is essential.)

  4. Clear instructions on assignments. I will aspire to provide clear instructions without being overly prescriptive. You are responsible for informing me when I have not been clear enough. Given that you don't want me to "hold your hands," part of that means that I can't spell every single step of every single assignment out for you. Part of the challenge, in many cases, will be for you to work through material on your own, and part of that sensemaking process is coming to understand the assignment. It is a balance, and we need to communicate continuously with each-other to find that balance.

Class Atmosphere

I want many things for students in my classes, and I very much want you to help me achieve these goals.

  • I want our laboratory to be a relaxed environment where you are comfortable trying new things and (sometimes) failing. By "failure" I do not mean "receiving an F," but I do mean that you try things, make mistakes, and learn from them. The last bit---learning from our mistakes---is the critical part. Neither I, nor you, nor your classmates should put down or belittle a classmate for trying.
  • We should work hard, and be proud of that effort. For me, a "fun" day is one where I've worked hard and improved myself. I have done my best to design a course that will be fun because it challenges us to work hard and do new and interesting things.
  • Respect matters. Respect for each-other, regardless of where we are from and where we are on our life journey is of utmost importance. I have a great deal of respect for your effort as a student; I show that respect by challenging you to extend your limits, and supporting you to the best of my ability as you take risks and engage with the course throughout the semester.

In years past, I used Chickering and Gamson's Seven Principles of Good Undergraduate Education as my guide; in many ways, they still apply. However, as Bereans, we are all committed to the eight Great Commitments ; I ask that we aspire to those as we challenge and learn with each other in this course.

Catalogue Description

As systems have grown in power and complexity, the software which interfaces between the hardware and a developer's application has similarly grown. Today, the "operating system" might be a virtual machine on an embedded computer in an automotive entertainment system, or it might span a cluster of hundreds of physical devices, presenting a single, unified interface to the developer. In this course, we will explore the breadth of these systems, beginning with traditional concepts of process management and concurrency on embedded, single-core devices, all the way up to issues of communication and workload distribution in multicore systems, both real and virtual.

Evening Lab / Support

The Computing and Digital Crafts Lab is open Sunday through Thursday from 7:00 to 9:00 PM (except on evenings of convocations). The primary teaching assistant and several other TAs will be able to answer questions about the content in the course during consultations in their Lab hours. You are strongly encouraged to make use of the help available in the Computing and Digital Crafts Lab, as well as in the instructors' office hours. Best results are obtained trying to solve problems before asking for help, and you should be prepared to show what you have already tried. Topics in this course build throughout the course, so you should be sure to do your best to keep up with the class, so as to not fall behind. No question to which you do not know the answer is "dumb" unless it goes unanswered because it remained unasked.

Statement Regarding Disability

Students who have a disability that may prevent them from fully demonstrating their abilities should contact Cindy Reed, MSW, LCSW, the Disability Services Coordinator at (859) 985-3212, or by email at cynthia-reed@berea.edu, to discuss accommodations necessary to ensure full participation in this course. Upon request, this syllabus can be made available in alternative forms.



This website is provided under a CC BY-SA license by the The Berea CS Department.
Fall 2013 offering of taught by Matt Jadud