CSCI340 - Operating Systems

Link to resource on GitHub

CSCI440 Syllabus


Bryan Dixon


Grade of C or better in CSCI 311 and CSCI221. (or approved equivalent, check with your advisor)

Students who take this class without completing the prerequisite class will be given a failing grade.

Course Accounts

In addition to an CSU Chico Lab account, you need an account in the CSCI assignment turn-in system.

Go to and create a new account.

Once you create an account, log on and enroll in CSCI 440, make sure you enroll in the correct section.


You will use this system to turn in your programming and lab assignments.


We will be making use of a free, yes free, operating textbook that I feel offers a more technical and up to date presentation of the OS topics. This is a change from the previous semesters. I've linked the recommended chapters for the weekly readings on the readings page, but for reference here is the book details:

Operating Systems: Three Easy Pieces Remzi H. Arpaci-Dusseau and Andrea C. Arpaci-Dusseau Arpaci-Dusseau Books March, 2015 (Version 0.90)

This textbook also offers simulators for a number of the topics with homework assignments at the end of many of the chapters that will be helpful to conceptualize some of the difficult topics for this course. I've selected some of the key ones I would recommend as well as timing and included these on the labs page.

In addition to this free textbook, you may also benefit renting the following book from Amazon for the semester to help with the second assignment for the course. Chapter 8 of the book is where the following assignment is adapted from and could be extremely beneficial. You can rent it on Amazon for ~$20 for the semester.

Computer Systems: A Programmer's Perspective 2nd edition by Randal E. Bryant, David R. O'Hallaron (2010) Addison-Wesley Pub Co: ISBN-10: 0136108040

A 3rd edition of this textbook just released, at the moment I'm not sure what material is contained in the 3rd edition and if it would be worth getting over the 2nd. If you have any interest in taking CSCI540, I'm currently using this text for that course and it makes a great reference. I'll likely be migrating to the 3rd edition in CSCI540 once I get a copy to review/verify the contents.


Attendance of lectures is not required, but it can help your grade and is highly recommended.

Attendance may improve your grade. For example, if your grade is a high B+ and you have attended most/all the lectures I may raise your grade to a A-.

Missing class can make the projects and exams especially difficult. If I verbally change the requirements of a project during lecture, you are responsible for meeting the new requirements. If you miss a class make sure you get notes from another student.

If you regularly skip class I will not answer questions on the material you missed.

Attendance of labs is not required; however, this will be where we will walk through examples of the material covered in lecture and tools for your assignments. As such, you will likely not do well on the labs and exams that will rely on this material if you miss the labs. I'll also be factoring in attendance into your overall grade, so make sure you sign in every lab, if you don't stay for the lab then this won't count.


Grades for this course will be relative. The students that do the best work will get an A, the students that don't do as well get a B, and so on. I will likely not be following at traditional percentage grades of 90% for an A, 80% for a B, etc., and I don't like to grade on a curve as if I applied blindly could result in grades actually being lowered if everyone is doing very well in the course.

I will routinely post the grading spreadsheet (Will be in google drive folder). If you are not happy with a grade, talk to me immediately. If you do not talk to me within a week of the posting of a grade, I will assume you think the grade is fair and accurate, and you will lose your right to dispute the grade.

Grade Category Percentages:

  • Exams 18% of course grade (1 midterm in person)

  • Moodle Quizzes 2% of course grade

  • Final Project 20% of course grade

  • Programming Projects 60% of course grade

  • Lecture Attendance can improve/lower your grade (see above)

  • Lab Attendance - up to 5%, I'll have an attendance sheet in the lab for those who come to lab regularly and make use of the lab time to ask me questions. I will consider giving up to 5% of credit for this.

Grading Meetings

We are going to investigate all the projects you turn in to look for code plagiarism via a number of different methods. Any students whose code isn't uniquely yours will need to schedule a grading meeting with the grader to answer detailed questions concerning how your code works. This meeting will make up 60% of your project grade and 40% will come from your ability to solve the project. If you didn't write your project you will likely fail the grading meeting and get a failing grade on the project. Seeking out fellow students for advice on how to get started is perfectly acceptable; however, do your own work and make sure you have a firm understanding of how your code works.

Programming Assignments

There will be at least 6 assignments due at approximately 2 week intervals starting the second week of the semester.

Late Assignments:

Assignments turned in 1-24 hours after the due date will lose 15% Assignments will NOT be accepted more that 24 hours after the due date.

Getting Help/E-mail

As this is a upper division course you'll likely want to make use of my office hours for help as it is unlikely there are tutors or other such resources.

We will be using Piazza for a class discussion board. You should automatically be enrolled when you enrolled in this course on Moodle. You should post any general questions here first as this will allow more students to benefit from the answer vs me potentially answering the same questions numerous times.

Additionally, you can email me directly with any specific questions, the distinction would be help with your code or assignment that would be unique to you and sharing with the class on the discussion board would be considered cheating. Make sure you put 'CSCI440' in the subject so it will be filtered correctly. ALL EMAIL WITH NO SUBJECT WILL NOT BE OPENED, so if you send me an email without a subject do not expect a response as I will not open it or respond to it.

I'll be making it a habit to respond immediately to emails received between 9am-5pm, except when I'll otherwise be in a meeting, lecture, etc. Any emails outside of those times will be answered as I can or potentially the next morning at 9am, so try to make sure to email me prior to 5pm.

I will routinely communicate with the class via announcements on the Piazza board. Make sure your email on Moodle that is integrated into Piazza is one you check regularly so that you don't miss any of these communications.

Make sure you have a Moodle account and that you can access Piazza from the class page, you will not receive the class e-mails and may miss important information about the class if your account wasn't created.

If you drop the class, you should be able to un-enroll from Moodle/Piazza to stop receiving messages. Let me know if you drop the class and still get e-mail.


Taken from Professor Tyson Henry's 211 syllabus as it's a good statement concerning responsibilities for any given course:

I am responsible for providing useful and interesting (and I hope entertaining) lectures, meaningful and challenging assignments, challenging exams, abundant help, encouragement, advice, and most anything else I can do to help you learn the material.

Students are responsible for dedicating the time and effort necessary to learn the material. The amounts of time and effort required varies drastically. It may take you two hours/week to get an A in this class. It may take you 20 hours/week to get a C. It is your responsibility to figure out how much time you require and to invest that amount of time appropriate for you.

You will not learn the material if you don't put in the time and effort required. If you don't learn the material you will not be prepared for the subsequent classes and you will probably be very disappointed with your grade. While I will feel bad that I had to assign you a bad grade, if you don't put in the time necessary for success I will be forced to give you a low grade. The University requires that I assign grades based on your performance.


The first time you cheat, you will get a 0 on the test or assignment. The second time you cheat you will fail the class. It is not a good idea to cheat in my class. I will be following Tyson Henry's Cheating Policy until I put together one of my own:

I expect all students to understand and follow the University?s honesty policies ( I will fail students who do not follow these policies, even if they don't understand them. It is your responsibility to understand these policies.

The bottom line is that you must do all the assignments on your own. Turning in code that anyone else wrote is cheating and will result in failing the course. Here are some examples of cheating:

  • copying code from another student
  • copying code from a book
  • copying code from the Internet
  • getting your friends to write your code
  • paying someone else to write your code
  • pestering other students until they give you their code
  • buying code
  • stealing code
  • letting someone steal your code (e.g. giving out your password, or using incorrect file protection)
  • giving your code to another student (both giving code and taking code are forms of cheating)
  • giving your laptop that contains your program to another student
  • getting so much help on an assignment that you are no longer doing the assignment (this can come from one helper or many helpers)
  • crowdsourcing your code
  • the list can go on...

On the other hand, you are allowed to discuss projects and you may get help each other find bugs. Just make sure you don't get so much help that you are no longer doing the work.

Required Consultation: If I suspect that you did not do your own work (e.g. someone else wrote your programs), you are required to meet with me and discuss your program. During this meeting I will ask you simple questions about your program. If you don't know how your program works I will assume you have cheated. In the event that you refuse to meet with me I will:

  • assume you cheated
  • give you a zero
  • report you to Student Judicial Affairs.

I reserve the right to catch cheaters after the end of the semester. Just because a cheater makes it to the end of the semester without being caught does not mean he or she has gotten away with it. Since I keep assignments it is possible for me to catch cheaters after the fact. For example, assume your friend George gives you his old program and you turn it in. Next semester George might give his program to someone else and I could catch it. Now I will look through all old programs to see who else George has given his program to. One of my advantages is that I can use programs to look for all instances of an assignment over the past several years. And while I might not catch everyone, I am always amazed at the people I do catch.

The code you write in this class is my property and if you share this code after the semester ends, after you graduate, etc I reserve the right to seek legal damages and to seek to retroactively fail you for this class. DO NOT share code from class with others. Employers who want to see a coding portfolio want to see code you developed outside of the required code you wrote for courses.

Religious Holidays

I will work with students so this class and its assignments, exams, and activities do not interfere with religious holidays. However, you must notify me ahead of time so we can make appropriate arrangements.

Americans with Disabilities Act

If you need course adaptations or accommodations because of a disability or chronic illness, or if you need to make special arrangements in case the building must be evacuated, please make an appointment with me as soon as possible, or see me during office hours. Please also contact Accessibility Resource Center (ARC) as they are the designated department responsible for approving and coordinating reasonable accommodations and services for students with disabilities. ARC will help you understand your rights and responsibilities under the Americans with Disabilities Act and provide you further assistance with requesting and arranging accommodations.

Confidentiality and Mandatory Reporting

As an instructor, one of my responsibilities is to help create a safe learning environment on our campus. I may also have a mandatory reporting responsibility related to my role. It is my goal that you feel able to share information related to your life experiences in classroom discussions, in your written work, and in our one-on-one meetings. I will seek to keep information you share private to the greatest extent possible. However, I am required to share information regarding sexual misconduct with the University. Students may speak to someone confidentially by contacting the Counseling and Wellness Center (898-6345) or Safe Place (898-3030). Information on campus reporting obligations and other Title IX related resources are available here:

Safe Zone Statement

I am part of the Safe Zone Ally community network of trained Chico State faculty/staff/students who are available to listen and support you in a safe and confidential manner. As a Safe Zone Ally, I can help you connect with resources on campus to address problems you may face that interfere with your academic and social success on campus as it relates to issues surrounding sexual orientation/gender identity. My goal is to help you be successful and to maintain a safe and equitable campus.

LGBTQ Equality Statement

I am firmly committed to diversity and equality in all areas of campus life, including specifically members of the LGBTQ community. In this class I will work to promote an anti-discriminatory environment where everyone feels safe and welcome. I recognize that discrimination can be direct or indirect and take place at both institutional and personal levels. I believe that such discrimination is unacceptable and I am committed to providing equality of opportunity for all by eliminating any and all discrimination, harassment, bullying, or victimization. The success of this policy relies on the support and understanding of everyone in this class. We all have a responsibility not to be offensive to each other, or to participate in, or condone harassment or discrimination of any kind.

Chico State Basic Needs Project

The Hungry Wildcat Food Pantry provides supplemental food, fresh produce, CalFresh application assistance and basic needs referral services for students experiencing food and housing insecurity.

All students are welcomed to visit the Pantry located in the Student Service Center 196, open Monday-Friday, 11am-4pm or call 530-898-4098. Please visit the Chico State Basic Needs website for more information

COVID-19 safety reminder

The CSU requires students to be fully vaccinated against COVID-19 by September 30, 2021, unless you have an approved exemption. Currently, Chico State is requiring everyone on campus to wear an approved face covering in all indoor campus spaces. Accordingly, all students are required to wear an appropriate face mask covering the nose and mouth in order to participate in this course. Policies and requirements regarding COVID-19 are subject to change pursuant to campus, local, state and/or federal guidelines.

Please note that dishonesty relating to the vaccination policy and/or your failure to comply with any other COVID-19 related safety policy or mandate, including the face covering requirement, may result in disciplinary action against you through the office of Student Conduct, Rights and Responsibilities, which can include suspension or expulsion from the California State University system.

Individuals unable to wear a face covering due to a medical condition should contact the Accessibility Resource Center by phone at (530) 898-5959 or by email at If an ARC accomadation is not recieved I will assume you are failing to comply with the with the campus requirements and report you to the office of Student Conduct, Rights and Responsibilities mentioned above.