# CS 3113 Spring 21

This is the web page for Operation Systems at the University of Oklahoma.

View the Project on GitHub oudalab/cs3113sp21

# Introduction to Operating Systems (Spring 2021)

Class hours: Tuesday/Thursday 11:00 - 12:15pm
Location: Zoom

### Instructors

Dr. Christan Grant

• Email: cgrant@ou.edu
• Office Hours: TBD
• Location: TBD

### Teaching Assistant

Yunlong Liu

• Email: yl.l@ou.edu
• Office Hours: Wed/Fri 2:00pm-3:30pm
• Location: https://oklahoma.zoom.us/j/8758050447?pwd=VE5ZN3UrU3dFUHRMVzhDYjZwTVZCUT09

Note: Any email messages to the professors or teaching assistants must include cs3113 in the subject line. Any email without this string in the subject line will likely be filtered as junk.

Email may be sent to the instructors and TAs using the following address: cs3113@googlegroups.com.

#### External Tutors

The William Kerber Teaching Scholars will be available for questions and help for several CS topics.

Nathan Huffman, Jennifer Pham, Jack Schwarz, Ethan Womack are available at the following times:

Day Times
Mondays 12p - 4p
Tuesdays 9:00a - 10:45a
12:30p - 4:30p
Wednesdays 12p - 4p
Thursdays 9a - 10:45a
12:30p - 4:30p
Fridays 12:00p - 3:20p

The Zoom ID is 930-4068~6553.

cstutoring is the code word.

The above times are subject to change.

## Prerequisites

The prerequisites for this course are CS 2413 - Data Structures and CS 2613 - Computer Organization (or ECE 3223). (If you have not taken these courses, you will need instructor permission to take 3113.) You are expected to have a working knowledge of C and C++, including a familiarity with its basic data types and control structures, and an understanding of computer organization. This course will introduce students to operating systems theory and cover the principles of systems programming.

## Course Details

Successfully learning operating systems means understanding both theory and system programming. This operating systems course will include activities to support both. As a computer scientist or a computer engineer, this course will be extremely beneficial, but will also be a lot of work. Students should be prepared to spend several hours a week outside of class studying and working on assignments. It is ill-advised to take this course with other programming heavy courses.

Lectures will be a mix of traditional lectures, class discussions, videos and other activities. Participation is required to get the most out of the class.

### ABET Student Outcomes

• C: An ability to design, implement, and evaluate a computer-based system, process, component, or program to meet desired needs.
• E4: An understanding of security issues and responsibilities.
• I: An ability to apply mathematical foundations, algorithmic principles, and computer science theory in the modeling and design of computer-based systems in a way that demonstrates comprehension of the trade-offs involved in design choices.

### Learning Management System

We will use the Canvas learning system. This course website can be reached through canvas.ou.edu. Please check this system regularly to keep informed of all announcements, updates, and changes.

### Course Materials

Required Textbooks:

• Operating Systems: Concepts, Tenth Edition, John Wiley & Sons, Inc.(ISBN 978-1-118-06333-0)

### Computer Accounts and Software

Increasingly, software is developed and executed in “the cloud”. This semester the class will make heavy use of a popular cloud infrastructure. Students will be able to deploy virtual machines with various configurations, on the fly. Credentials for using this infrastructure will be distributed after the first week of class. For questions and issues using this software, students should use the in-class discussion board. All students enrolled in class should also have a CS account and access to a Linux-based systems in the CS department. For most computer science students, an account will be automatically created. If not, you can send an email to cs3113@googlegroups.com. All code written for this course MUST run using the compilers or interpreters that will be specified for the assignments. It is your responsibility to ensure that your code runs on these systems. For compatibility reasons, we recommend developing and testing on a Linux-based machine.

### Course Policies

• Attendance: You are expected to attend all of the class lectures.

• Readings: For each lecture day, the course schedule lists a set of readings. You are responsible for this material before class begins.

• Laptop Computers: It is the responsibility of each student in this class to have a working laptop computer with ample battery (at least 2 hours of life under moderate usage) and wireless Internet connectivity. You must bring the laptop computer to class. If your computer requires repair during the semester, it is your responsibility to make arrangements to have another computer available and to get the necessary software installed. There exist campus resources (including financial help) to repair broken computers; please see the instructors if you would like information about these programs. Note that temporarily borrowing a computer from a fellow student in the class can present a number of problems, including the potential for academic misconduct.

• Newsgroups and Email: The newsgroup on Canvas should be the primary method of communication (outside of class). This allows everyone in the class to benefit from the answer to your question, and provides students with more timely answers since the TAs and instructors check Canvas at least once a day. Matters of personal interest should be directed to email instead of to the newsgroup, e.g. informing the instructors of an extended personal illness.

• Incompletes: The grade of “I” is intended for the rare circumstance when a student who has been successful in a class has an unexpected event occur shortly before the end of the class. We will not consider giving a student a grade of “I” unless the following three conditions have been met:

1. It is within two weeks of the end of the semester.
2. The student has a grade of C or better in the class.
3. The reason that the student cannot complete the class is properly documented and compelling.
• Religious Holidays: It is the policy of the University to excuse the absences of students that result from religious observances and to provide without penalty for the rescheduling of examinations and additional required classwork that may fall on religious holidays.

• Classroom Conduct: Because cell phones and laptops can distract substantially from the classroom experience, students are asked not to use either during class, except in cases in which they are required as part of a classroom exercise. Disruptions of class will also not be permitted. In the case of disruptive behavior, we may ask that you leave the classroom and may charge you with a violation of the Student Code of Responsibilities and Conduct. Examples of disruptive behavior include:

• Allowing a cell phone or pager to repeatedly beep audibly.
• Playing music or computer games during class in such a way that they are visible or audible to other class members.
• Exhibiting erratic or irrational behavior.
• Behavior that distracts the class from the subject matter or discussion.
• Making physical or verbal threats to a faculty member, teaching assistant, or class member.
• Refusal to comply with faculty or teaching assistant direction.

• Feel free to discuss all assignments with the instructors or the TAs.

• Code (projects and homework): you may discuss code solutions with other students. However:
1. You may not look at or share code with others;
2. If you discuss a solution with anyone, you must document their names in your assignment;
3. If you use an external resources (e.g. StackOverflow.com) you must document this in your code.
• Quizzes, Exams, In-Class Exercises: unless otherwise stated, you may not communicate with others about solutions to these assignments.

• Make sure that your computer account is properly protected. Use an appropriate password, and do not give your friends access to your account or your computer system. Do not leave printouts, computers or thumb drives around a laboratory where others might access them.

• Programming projects will be checked by software designed to detect collaboration. This software is extremely effective and has withstood repeated reviews by the campus judicial processes.

• Upon the first documented occurrence of inappropriate collaborative work or of taking a solution from a network resource, the instructors will report the academic misconduct to the Campus Judicial Coordinator. The procedure to be followed is documented in the University of Oklahoma Academic Misconduct Code (http://integrity.ou.edu). Both the provider of a solution and the receiver of a solution will be treated equally in the misconduct process.

Points for this class will come from a variety of sources. The different components are weighted as follows:

Percentage
Assignments 30%
Projects 40%
Midterm 15%
Final 15%
100%

To perform well, active participation in in-classactivities is required. In-class exercises will be often and possibly will be unannounced. These exercises may include group discussion or individual problem-solving. Students can waive one in-class activity without penalty.

The homework assignments will be assigned approximately bi-weekly. Homework types include coding assignments, essay questions, online discussions and other similar questions. Homework will generally be submitted through Canvas or Gradescope. Most homework assignments will be due at 11:45 pm CST on the night of class. Students can waive one homework assignment without penalty.

A total of five Projects will be given over the course of the semester. Other than Project 0, the projects will be nontrivial, requiring a substantial amount of planning, programming and debugging. We encourage you to budget your time well for these. The projects will be due at 11:45 pm CST on the day indicated in the class schedule

#### Submission Format

For written student submissions should only be .txt files, portable document format .pdf, or Markdown.md. Files of type .doc, .docx, or .rtf will not be accepted. Compressed files should be of type .gz or .tar.gz. Files of the .rar format will notmbe accepted. Other file types, particularly coding files, may be used in the class. The expected file type will be stated. Often, files packaged under non-Unix/Linux flavored operating systems, such as Windows, have a non-negative number of compatibility issues with our grading systems. If the graders cannot open files for these reasons, the project will not receive credit.

#### Late Policy

Any project may be turned in up to 24 hours late for a 10% penalty. After this time window, no late work will be accepted.

Other assignments will not be accepted late.

#### Midterm and Final Exams

As required by the university, the course will have both a midterm and a comprehensive final exam. The final exam will take place on Wednesday, May 8, from 8:00–10:00 am in Dale Hall, 0112.

Grade cut-offs will be at or below the traditional 90, 80, 70, etc. cut-offs.

• Projects/homework/in-class assignments: Grading questions for projects should first be brought to the instructor/TA that originally did the grading. If talking to the TA does not resolve your question, please see one of the instructors. All grading questions must be brought to our attention within one week of them being graded.
• Exams: All grading questions must be addressed within one week of the graded exam being returned.

Please note that when an exam/assignment is brought with grading questions, we may examine the entire exam/assignment and your final grade may end up lower.

Canvas has a grade book that is used to store the data that are used to calculate your course grade. It is the responsibility of each student in this class to check their grades on Canvas after each assignment is returned. If an error is found, bring the graded document to any of the instructors or TAs, and we will correct Canvas.

# Miscellaneous

## Specific Outcomes of Instruction

By the end of the semester, the students will increase their:

• Ability to apply knowledge of computing and mathematics appropriate to the discipline.
• Ability to analyze a problem and identify and define the computing requirements appropriate to its solution.
• Ability to design, implement, and evaluate a computer-based system, process, component, or program to meet desired needs.
• Understanding of ethical issues and responsibilities.
• Recognition of the need for and an ability to engage in continuing professional development.
• Ability to use current techniques, skills, and tools necessary for computing practice.
• Ability to apply mathematical foundations, algorithmic principles, and computer science theory in the modeling and design of computer-based systems in a way that demonstrates comprehension of the trade-offs involved in design choices.
• Ability to apply design and development principles in the construction of software systems of varying complexity.

## Course Evaluations

The College of Engineering utilizes student ratings as one of the bases for evaluating the teaching effectiveness of each of its faculty members. The results of these forms are important data used in the process of awarding tenure, making promotions, and giving salary increases. In addition, the faculty uses these forms to improve their own teaching effectiveness. The original request for the use of these forms came from students, and it is students who eventually benefit most from their use. Please take this task seriously and respond as honestly and precisely as possible, both to the machine-scored items and to the open-ended questions.

## Reasonable Accommodation

The University of Oklahoma is committed to providing reasonable accommodation for all students with disabilities. Students with disabilities who require accommodations in this course are requested to speak with the professor as early in the semester as possible. Students with disabilities must be registered with the Office of Disability Services prior to receiving accommodations in this course. The Office of Disability Services is located in the University Community Center at 730 College Avenue; the phone is 405-325-3852 or TDD only is 403-325-4173.

Should you need modifications or adjustments to your course requirements because of documented pregnancy-related or childbirth-related issues, please contact one of the instructors as soon as possible to discuss. Generally, modifications will be made where medically necessary and similar in scope to accommodations based temporary disability. Please see http://www.ou.edu/eoo/faqs/pregnancy-faqs.html for commonly asked questions.

## Title IX Resources

For any concerns regarding gender-based discrimination, sexual harassment, sexual misconduct, stalking, or intimate partner violence, the University offers a variety of resources, including advocates on-call 24.7, counseling services, mutual no-contact orders, scheduling adjustments and disciplinary sanctions against the perpetrator. Please contact the Sexual Misconduct Office 405-325-2215 (8-5) or the Sexual Assault Response Team 405-615-0013 (24.7) to learn more or to report an incident.

## Technical Support

For OU IT support, please phone (405) 325-HELP. For help with issues pertaining to any CS department machine (in room DEH 115). There is a OU SharePoint site that you can use for reference https://sooners.sharepoint.com/sites/OUCSTutorials.

## Key Class Resources

Dates and details in the syllabus and schedule are subject to frequent change, please check regularly. Major changes will be announced on Canvas.