CSC 335 Operating Systems


Instructor: Prof. Chris Fernandes
Time/Place: MWF 10:30-11:35, Olin 106
Office Hours: TTh 2-3:30 (more to come)
or anytime my door's open!
Office: 219 Steinmetz Hall
Phone: 388-6401
Course Webpage:

Text (1 required). Available via Perusall. I recommend buying the $30 version.

Silberschatz, Gagne, and Galvin, Operating System Concepts. 10th edition, Wiley, 2018.

COVID-specific rules (starting week 2)

Course Goals

The purpose of this course is for you to understand the most important concepts and systems associated with a modern operating system (OS). The goals of this course are:

Topics to be covered include:

The best way to understand an OS is to build one yourself, so you'll spend a lot of your time on programming projects. You will be writing code in Java but also in C. Thus, an indirect goal of this course is for you to practice becoming proficient in a programming language with which you may not already be familiar. The ability to independently learn new languages is a skill every Comp. Sci. and Comp. Engg. should have.


CSC 151 Data Structures and CSC 270 Computer Organization. CSC 270 is necessary since the OS interacts with hardware a lot. You'll need to remember what things like registers, the system stack, the program counter, and the ALU do.



Academic Dishonesty

Students often have some confusion about what might or might not be considered "cheating" in a computer science class. In general, you should take advantage of your instructors and fellow students in working out solutions to assignments. This especially applies to NACHOS and C issues. You should be working together (either physically or virtually) so you can ask each other questions like, "what is this line in NACHOS doing?" or "how do you do pointers in C?"

As always, however, you should never give code to or receive code from another person. And you should ONLY look at another person's code to give help, never to receive it. Looking at someone else's code to get "inspiration" for what to write is cheating.

It is ok to reuse code...

It is NOT ok to reuse code...

Here's the bottom line: except for the above, you have to write all the code yourself, from scratch. In all cases, you must explicitly cite any source (like a web page or a helpdesk person) that you use to help complete an assignment. Again, this is similar to writing an English paper; if you use a quote or material from someone else, you have to give credit where credit is due. Otherwise you are inappropriately plagiarizing or borrowing ideas. You do not have to cite help from me.

We have an honorcode and I'm trusting y'all to follow it. Read up on it at All suspected violations will be reported to the Honor Council chair and Dean of Studies.

What you need to do

To prepare for class, you are required to do the following:


Union College facilitates the implementation of reasonable accommodations, including resources and services, for students with disabilities, chronic medical conditions and temporary disabilities resulting in difficulties accessing learning opportunities. All students needing services must first register with Accommodative Services located in Reamer 303. It is strongly recommended that accommodations be requested within the first two weeks of the term. Last minute requests can be denied. Any student with a documented learning disorder is welcome to come talk to me privately about options for completion of exams and homework assignments.

The Bottom Line

Ask questions and seek help. This is the most important point of all. I live to answer questions. Don't be afraid to contact me every single day if you want. It's better for everybody (you AND me) if you understand things sooner rather than later. More often than not, there's a line of people waiting to see me on the day before a project is due. You'll get the help you need faster by starting on projects sooner rather than waiting until the last minute.