Skip to content
This organization was marked as archived by an administrator on Apr 17, 2024. It is no longer maintained.

Operating Systems I

  • Course Number: CS 344
  • Course Term: Winter 2023 (1/9/23 – 3/24/23)
  • Credits: 4
  • Instructor: Sanghyun Hong
  • Instructor Email: [email protected]

Contact information for teaching assistants is available on the syllabus page in Canvas.

Office Hours Schedule

Office hours will be held on Zoom. The office hour schedule and connection details will be given on the first page within Canvas.

Catalog Description

Introduction to the basics of modern operating systems using UNIX as the case study.

Prerequisites: CS 261 with C or better and (CS 271 [C] or ECE 271 [C])

Communication

Please post all course-related questions in Course Discord Server so that the whole class may benefit from our conversation. Please contact me privately for matters of a personal nature. We will strive to reply to course-related questions within 48 business hours. We will endeavor to grade your assignments within one week of the due date.

Lecture Times

MW 12 pm - 1:50 pm in Learning Innovation Center (LINC) 200

Technical Assistance

If you experience any errors or problems while utilizing Canvas, contact the 24/7 support resources (available via the Help link that’s located 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 IS Service Desk online.

Measurable Student Learning Outcomes

At the completion of the course, students will be able to:

  1. Justify the need for a multi-programmed OS and explain the general structure of it.
  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.

Learning Resources

Textbook:

  • Michael Kerrisk, The Linux Programming Interface (TLPI), No Starch Press, 2010,

ISBN: 978-1-59327-220-3. (Available as an eBook from the OSU library) For C, the following material is freely available online:

  • The Linux man-pages project for documentation of system calls and C library functions
  • Carl Burch. C for Python Programmers, Hendrix College, 2011
  • Mike Banahan, Declan Brady, and Mark Doran. The C Book, Addison Wesley, 1991
  • Jens Gustedt. Modern C, Manning Publications. 2019, ISBN 978-1-61729-581-2

For Rust, the following material is freely available online:

  • Steve Klabnik and Carol Nichols. The Rust Programming Language, No Starch Press, 2019, ISBN 978-1-71850-044-0

Evaluation of Student Performance

Final grades will be comprised of the following weighted components:

  • 60% 5 Online Programming Assignments
  • 40% 4 Online Midterm Quizzes (un-proctored)
  • ~20% Extra point opportunities (refer to Canvas for a list of available opportunities)

Final Letter Grades

Grade Percent Range
A 93 or higher
A- 90-92.99
B+ 87-89.99
B 83-86.99
B- 80-82.99
C+ 77-79.99
C 73-76.99
C- 70-72.99
D+ 67-69.99
D 63-66.99
D- 60-62.99
F 0-59.99

Course Content

  • Topics: The course divides into four sections. (Sec 1) Topics in this section are: processes, threads, context switching, and scheduling basics. (Sec 2) It will cover topics: files, I/O, and file system basics. (Sec 3) The section will discuss: inter-process, remote- process communications, computer networks, and OS features enabling networking. (Sec 4) Here we will cover these topics: signal, semaphore, monitor, and deadlock.
  • Programming language(s): The online programming exams will use Bash script and C programming language. The course expects students to have some familiarity with C (Pre-req. CS261). No prior experience with Bash is required.
  • Course material: The instructor will offer two types of course materials. (1) Presentation slides that the instructor will cover the topics listed above, and (2) Canvas modules, the culmination of each being a specific, detailed programming assignment geared towards the material covered.

Course Policies

Late Work Policy

All online programming assignments must be submitted in Canvas prior to the due date. If you ignore this requirement, you will receive a 0 on the programming exam.

Revision Grace Period

The "revision grace period" policy is for online programming exams.

1st Chance

If you are unable to fulfill an online programming exam requirement to your satisfaction before the due date for any reason, you may notify the TAs and instructors (via a Canvas comment, along with an initial on-time submission) that you plan to submit a revision. You may then submit a revision within 72 hours (3 days) of the assignment's original due date. If you:

  1. Submit a partial fulfillment of the requirements before the due date AND
  2. Post a Canvas comment (on the original submission) that explains your intention to submit a revision AND
  3. Resubmit a revised version of your work within the 72-hour grace period,

...your grade will reflect only your final submission. There will be a 5% deduction for every 24 hours during the three days of grace periods. Your initial submission will be graded if you do not resubmit within the required timeline.

2nd Chance

If you are unable to submit programming online exams after the 72-hour grace period, you may submit it until the end of the term (Mar. 22nd, Wed.). In this case, there will be a 50% deduction for any late submission. Your initial submission will be graded if you do not resubmit within the required timeline.

The Online Midterm Quizzes:

You will have three chances to retake each midterm quiz on Canvas. The quiz cannot be submitted later than the posted due date.

Makeup Exams

Makeup exams will be given only for missed exams excused in advance by the instructor. Excused absences will not be given for airline reservations, routine illness (colds, flu, stomach aches), or other common ailments. Excused absences will generally not be given after the absence has occurred, except under very unusual circumstances.

Incompletes

Incomplete (I) grades will be granted only in emergency cases (usually only for a death in the family, major illness or injury, or birth of your child), and if the student has turned in 70% of the points possible (in other words, usually everything but the final exam). If you are having any difficulty that might prevent you completing the coursework, please don’t wait until the end of the term; let me know right away.

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.

Guidelines for a Productive and Effective Online Classroom

(Adapted from Dr. Susan Shaw, Oregon State University)

Students are expected to conduct themselves in the course (e.g., on discussion boards, email) in compliance with the university’s regulations regarding civility. Civility is an essential ingredient for academic discourse. All communications for this course should be conducted constructively, civilly, and respectfully. Differences in beliefs, opinions, and approaches are to be expected. In all you say and do for this course, be professional. Please bring any communications you believe to be in violation of this class policy to the attention of your instructor.

Active interaction with peers and your instructor is essential to success in this online course, paying particular attention to the following:

  • Unless indicated otherwise, please complete the readings and view other instructional materials for each week before participating in the discussion board.
  • Read your posts carefully before submitting them.
  • Be respectful of others and their opinions, valuing diversity in backgrounds, abilities, and experiences.
  • Challenging the ideas held by others is an integral aspect of critical thinking and the academic process. Please word your responses carefully and recognize that others are expected to challenge your ideas. A positive atmosphere of healthy debate is encouraged.

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.

Academic Integrity

Integrity is a character-driven commitment to honesty, doing what is right, and guiding others to do what is right. Oregon State University students and faculty have a responsibility to act with integrity in all our educational work, and that integrity enables this community of learners to interact in the spirit of trust, honesty, and fairness across the globe.

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.

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 Standard’s website 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.

Students are allowed to share ideas, troubleshoot snippets of code, and collaborate while studying. However, I do require that your code submissions and test answers be YOUR OWN WORK; do not complete any assignment as a group project.

You may not turn in work that has a substantial amount of someone else's program code, except for template code that we provide to you. If you do submit such work anyway, your submission will be reported to the College of Engineering for disciplinary action, and a preliminary 0 grade will be entered in for that assignment. The assignment grade will be finalized only when the College makes its ruling (which might not be for a few months).

We will automatically compare what you turn in against all other submissions, including this term, previous terms, other sections, and from online sources. Do not seek out previous submissions on GitHub (or other sources), even if you're only looking for inspiration.

To be clear: do not download someone else's code, change it, and then submit it, even if you cite what you are doing. This is not acceptable, and your submission will be reported to the College of Engineering for academic dishonesty.

Statement Regarding Students 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.

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 at oregonstate.edu/ReachOut. If you are in immediate crisis, please contact the Crisis Text Line by texting OREGON to 741-741 or call the National Suicide Prevention Lifeline at 1-800-273-TALK (8255)

Student Evaluation of Courses

During Fall, Winter, and Spring term the online Student Evaluation of Teaching system opens to students the Wednesday of week 8 and closes the Sunday before Finals Week. Students receive notification, instructions, and the link through their ONID. They may also log into the system via Online Services. Course evaluation results are extremely important and used to help improve courses and the hybrid learning experience for future students. Responses are anonymous (unless a student chooses to “sign” their comments, agreeing to relinquish anonymity) and unavailable to instructors until after grades have been posted. The results of scaled questions and signed comments go to both the instructor and their unit head/supervisor. Anonymous (unsigned) comments go to the instructor only.

Pinned Loading

  1. opportunity3 opportunity3 Public archive

    Opportunity 3: Multi-process Data Loader

    Python

Repositories

Showing 8 of 8 repositories
  • opportunity3 Public archive

    Opportunity 3: Multi-process Data Loader

    CS-344-nilsstreedain/opportunity3’s past year of commit activity
    Python 0 0 0 0 Updated Mar 20, 2023
  • opportunity2 Public archive

    Opportunity 2: Build a ML Classifier

    CS-344-nilsstreedain/opportunity2’s past year of commit activity
    Python 0 0 0 0 Updated Mar 20, 2023
  • program5 Public archive

    Assignment 5: Multi-threaded Producer Consumer Pipeline

    CS-344-nilsstreedain/program5’s past year of commit activity
    C 0 0 0 0 Updated Mar 20, 2023
  • program4 Public archive

    Assignment 4: One-Time Pads

    CS-344-nilsstreedain/program4’s past year of commit activity
    C 0 0 0 0 Updated Mar 20, 2023
  • program3 Public archive

    Assignment 3: smallsh (Portfolio Assignment)

    CS-344-nilsstreedain/program3’s past year of commit activity
    C 0 0 0 0 Updated Mar 20, 2023
  • program2 Public archive

    Assignment 2: Files & Directories

    CS-344-nilsstreedain/program2’s past year of commit activity
    C 0 0 0 0 Updated Mar 20, 2023
  • program1 Public archive

    Assignment 1: Movies

    CS-344-nilsstreedain/program1’s past year of commit activity
    C 0 0 0 0 Updated Mar 20, 2023
  • .github Public archive
    CS-344-nilsstreedain/.github’s past year of commit activity
    0 0 0 0 Updated Jan 12, 2023

Top languages

Loading…

Most used topics

Loading…