Oregon State Ecampus logo

CS374 – Operating Systems I Syllabus

Course Description

Introduction to operating systems using UNIX as the case study. Emphasizes system calls and utilities, fundamentals of processes, and interprocess communication.

Registration Restrictions

Prerequisites CS 261 and (CS 271 or ECE 271).

A minimum grade of C is required in CS 261, and either CS 271, or ECE 271.

Enrollment is limited to students with a program in Elect & Computer Engineering (039) or Computer Science (307).

Enrollment limited to students in the College of Engineering college.

Privacy Notice

Students in this section may be required to interact with teachers, teaching assistants, and students in concurrent sections of the same course.

Student-Instructor Communication

There are several methods of communication at our disposal. Please read carefully how I intend for these to be used,

Ed Discussions

Ed Discussions is the primary forum for student-instructor interaction and represents our “virtual classroom”. All course-related questions should be posted to Ed. Ed is monitored throughout the work week. Response time is dependent on the complexity of the question/answer, but generally within 24 hours.

Private Email

Private email correspondence should be limited to discussions of personal matters (grades, etc.). Expect a reply within two business days.

Canvas

I do not use Canvas for direct communication. Personal canvas inbox, discussions, assignment comments, and any other communication channels that Canvas provides are not monitored by staff. Canvas is used primarily to host static module content and grades. Your grade on Canvas will reflect your final grade in the class as reported to the registrar. Additionally, we will take the final exam on Canvas during Finals week.

Teams

We use Microsoft Teams primarily to host office hours. Each staff member has their own channel on the class Team, and they will schedule recurring meetings in their channels. You should be able to find all of their meetings automatically populated into your Teams Calendar. We’ve found this to be a better method than posting a static office hour schedule, since students often miss announcements about cancellations of rescheduling. Additionally, there is a General channel for chatting with staff and students in the class outside of office hours, and a Study Space channel that is set aside for students who want to study together.

Expectations for Time and Participation

This course combines approximately 120 hours of instruction, online activities, and assignments for 4 credits.

This course is asynchronous and flexible, but not self-paced. Students are expected to keep pace with the course content.

Learning Resources

The following texts are strongly recommended, but not officially required.

Either of the C programming texts is an excellent resource; I suggest reading the first few pages of each and choosing whichever you prefer. I strongly recommend obtaining a copy of The Linux Programming Interface (TLPI), which explain many of the concepts covered in this course in a highly accessible, yet detailed fashion. Several of these textbooks are available for free, or with subscriptions you may already have, online.

Note

Check with the OSU Beaver Store for up-to-date information for the term you enroll (OSU Beaver Store website or 800-595-0357). If you purchase course materials from other sources, confirm the ISBN.

Technical Assistance

If you experience any errors or problems while in your online course, contact 24/7 Canvas Support through the Help link within Canvas. If you experience computer difficulties, need help downloading a browser or plug-in, or need assistance logging into a course, contact the IS Service Desk for assistance. You can call 541-737-8787 or visit the Service Desk online.

Ecampus Reach Out for Success

University students encounter setbacks from time to time. If you encounter difficulties and need assistance, it’s important to reach out. Consider discussing the situation with an instructor or academic advisor. Learn about resources that assist with wellness and academic success; you can also access the Resources tab in Canvas’ global navigation menu for additional information.

Ecampus students are always encouraged to discuss issues that impact your academic success with the Ecampus Success Team. Email ecampus.success@oregonstate.edu to identify strategies and resources that can support you in your educational goals.

For Mental Health

Learn about counseling and psychological resources for Ecampus students. If you are in immediate crisis, please call or text the Suicide and Crisis Lifeline at 988 or Crisis Text Line by texting 741-741.

For Financial Hardship

Any student whose academic performance is impacted due to financial stress or the inability to afford groceries, housing, and other necessities for any reason is urged to contact the Director of Care for support (541-737-8748).

Measurable Student Learning Outcomes

  1. Justify the need for a multi-programmed OS and explain the general structure of such systems.

  2. Select system calls for appropriate uses.

  3. Compare and contrast the process and thread abstractions and select an appropriate abstraction.

  4. Assess and solve possible issues related to concurrent execution.

  5. Explain the file abstraction and system level I/O.

  6. Compare and choose mechanisms for inter-process communication.

  7. Write software by applying appropriate system programming principles and techniques.

Evaluation of Student Performance

Refer to the Canvas Gradebook for a list of assignments and individual assignment weights.

Letter Grade

Grade

Percent Range

A

>= 93

A-

90-92

B+

87-89

B

83-86

B-

80-82

C+

77-79

C

73-76

C-

70-72

D+

67-69

D

63-66

D-

60-62

F

<60

Late Work

Late work is not accepted and will receive no credit.

Incomplete Work

When a requirement of the course has not been completed for reasons acceptable to the instructor and the rest of the academic work is passing, a report of “I” (incomplete) may be made and additional time granted, according to Academic Regulation 17 of OSU Academic Regulations.

Important

You must be passing the class (minimum of a C) at the time that you request an incomplete. Incompletes will not be granted for work due prior to the final withdrawal deadline for the term.

Expectations for Student Conduct

Student conduct is governed by the university’s policies, as explained in the Student Conduct Code. Students are expected to conduct themselves in the course (e.g., on discussion boards, email postings) in compliance with the university’s regulations regarding civility. Students may face penalties up-to and including removal from the course and/or suspension of access to OSU IT resources.

Academic Integrity

It is important that you understand what student actions are defined as academic misconduct at Oregon State University. The OSU Libraries offer a tutorial on academic misconduct, and you can also refer to the OSU Student Code of Conduct and the Office of Student Conduct and Community Standards for more information. More importantly, if you are unsure if something will violate our academic integrity policy, ask your professors, GTAs, academic advisors, or academic integrity officers.

Academic misconduct, or violations of academic integrity, can fall into seven broad areas, including but not limited to: cheating; plagiarism; falsification; assisting; tampering; multiple submissions of work; and unauthorized recording and use.

Use of Machine Learning (“AI”) Tools

Submission of work containing any content generated by Machine Learning tools such as, but not limited to, ChatGPT, Github Copilot, Grammarly AI, etc. is strictly prohibited. This reflects widespread prohibition in the software development industry due to serious and legitimate concerns, such as,

  • Intellectual Property Rights and Authorship/Attribution

  • Code Quality and Reliability

  • Lack of Transparency

  • Dependency and Lack of Skill Development

  • Regulatory and Compliance Issues

  • Ethical and Social Implications

It is relatively easy for experienced programmers to recognize code generated by LLMs like ChatGPT, due to a variety of unusual, inhuman, characteristics, such as poor cohesiveness, repetitiveness, and many other factors that I will not disclose. These traits can be quantified and demonstrated to a sufficient degree for students to be found responsible of Academic Misconduct by an independent investigator. The same holds true for other written works.

Similarity Analysis

All assignment submissions will be reviewed for similarity to other students’ submissions, both past and present, as well as against a large repository of online resources. All work that you submit will be retained for this purpose. We use the same tools that are routinely used in legal cases to demonstrate copyright infringement.

External Learning Resources

You are encouraged to seek out external learning resources that aid in your development as a skilled computer scientist. However, any resource which directly relates to an assignment, such as other students’ work, or others’ implementations of programs that are significantly similar to your assignment, is prohibited. Use good judgement, and keep in mind that it is difficult to devise unique solutions to a problem once you have seen how someone else did it.

Caution

Be wary of online tutorials on social media (youtube, reddit, blogs) and other resources with nonexistent quality control like Geeks for Geeks. Skilled computer scientists’ time is very valuable, and rarely will they take the time to explain what they consider basic concepts, for free. As a result many free online resources are produced by complete novices and contain a litany of outright wrong information and poor programming practices. If you find a particularly useful resource, feel free to ask a staff member to review it.

Sharing Work

You have a responsibility to keep your work private[1]. If you share your work publicly, or with another student, and someone else submits the same work, you may be found responsible for misconduct, even if you did so unintentionally. Please ensure that any GitHub repositories you create are made private, and have no collaborators. Please double check that any IDE you use to work on assignments is not configured to automatically push your work to a public repository.

After the course ends and final grades have been entered, you may publicly share your Portfolio Project (BigShell) in the course. Additionally, you are free to privately share any other assignments with prospective employers, etc. While rare, the office of student conduct can “reach back” into a completed course and assign retroactive penalties for misconduct related to later sharing of completed assignments.

Note

If you publicly share your portfolio assignment, please consider giving the repository a name that won’t be easily found by students searching for “CS374”, “BigShell”, etc.

Code Citation

All work that you submit must be your own, original work. However, there will be situations where you derive the general idea or approach for a portion of your code from an external resource. You are encouraged to cite these resources so that we can more easily filter out spurious similarity reports. A simple comment with a URL or the name of the resource suffices for this purpose.

Collaboration

You are encouraged to openly collaborate with other students to discuss general approaches, testing strategies, edge cases that caught you by surprise, and other things that are incidental to assignments. Additionally, you may share any code snippets, even whole programs, with other students as long as the code is not directly related to or derived from your work on an assignment. This includes, for example, discussing example programs that aren’t directly part of an assignment. You may also openly discuss any aspects of ungraded assignments.

Additionally, you may select up to two other students in the class to collaborate with on BigShell. Each of you must put a comment at the top of any source files you worked on together, with your collaborators’ names (e.g. // Collaborator: Benny Beaver and // Collaborator: Donny Duck). This requirement is intended to prevent situations where one student claims to have collaborated with another student that they simply copied from without consent. You must each still submit your own work on the assignment (there are no group submissions).

Resubmission of Prior Work

Assignments change significantly and subtly between terms. Resubmission of prior work is not advised.

Statement Regarding Student with Disabilities

Accommodations for students with disabilities are determined and approved by Disability Access Services (DAS). If you, as a student, believe you are eligible for accommodations but have not obtained approval, please contact DAS immediately at 541-737-4098 or at http://ds.oregonstate.edu. DAS notifies students and faculty members of approved academic accommodations and coordinates implementation of those accommodations. While not required, students and faculty members are encouraged to discuss details of the implementation of individual accommodations.

Accessibility of Course Materials

All materials used in this course are accessible, or will be made so on demand. If you require accommodations, please contact Disability Access Services.

Additionally, Canvas, the learning management system through which this course is offered, provides a vendor statement certifying how the platform is accessible to students with disabilities.

Academic Calendar

All students are subject to the registration and refund deadlines as stated in the Academic Calendar

Student Bill of Rights

OSU has twelve established student rights. They include due process in all university disciplinary processes, an equal opportunity to learn, and grading in accordance with the course syllabus.

Statement Regarding Religious Accommodation

Oregon State University is required to provide reasonable accommodations for employee and student sincerely held religious beliefs. It is incumbent on the student making the request to make the faculty member aware of the request as soon as possible prior to the need for the accommodation. See the Religious Accommodation Process for Students.


This course is offered through Oregon State University Ecampus. For more information, visit ecampus.oregonstate.edu.

This course was developed by Ryan Gambord <Ryan.Gambord@oregonstate.edu>.