Syllabus: CS 3113: Introduction to Operating Systems (Fall 2019)
An Operating System is the layer of software that sits between
your application programs and the hardware components that make up your
computer. This layer provides an important set of abstractions that
make modern computing possible. These abstractions include: files and
directories, processes, and reliable communication between processes
and between computers.
Successfully learning operating systems means understanding computer
science theory, algorithms, data structures and system-level
programming. This operating systems course will include activities to
support all of these. 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.
Lectures will be a mix of traditional lectures, class discussions,
live programming examples and other activities. Participation is
necessary to get the most out of the class.
Topics
- C programming
- Low-level representation of data
- File systems: abstraction to implementation
- Processes
- Threads
- CPU Scheduling
- Synchronization of processes and threads
- Deadlock
- Memory management and virtual memory
- Virtual machines
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.
General Information
- Meeting time: Tu/Th 1:30 - 2:45pm
- Location: Nielsen Hall 170
- 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++, including a familiarity with
its basic data types and control structures, and an
understanding of computer organization.
-
Textbook: Silberschatz, Galvin and Gagne (2018) Operating Systems
Concepts, Tenth Edition, ISBN-13: 9781119320913
-
Course web page:
http://www.cs.ou.edu/~fagg/classes/cs3113
- We will make heavy use of
Canvas
- Instructor: Dr. Andrew H. Fagg
- Teaching Assistant: Dorian Selimovic
- Teaching Assistant: Gregory Maddra
Course Policies
- Attendance: We will discuss concepts and examples in
class that are not in the assigned readings. Another student's notes
are an inadequate substitute for class attendance. You are
responsible for everything that is announced in class.
- Readings: You are responsible for the
material contained within the readings on the day
that they are indicated on the class
schedule. I will typically address questions about these
at the beginning of the lecture. The lecture material and/or
in-class assignment/quiz for the day will assume that you have
read these materials.
- Class Web Page: Most of the material that you will need
can be found on the class web page located at:
http://www.cs.ou.edu/~fagg/classes/cs3113
- Canvas: This class will also use Canvas for course management, located at:
http://canvas.ou.edu
Login with your 4+4, using your standard OU password. If you
have difficulty
logging in, call 325-HELP. This software provides a number of useful
features, including announcements, the grade book, discussion areas
and quizzes.
I may update the main web site and the Canvas page several
times a week. When I update either site in any significant way, I will
post an announcement on Canvas telling you what has been added
and where it is located. You are responsible for things posted on the
sites within 48 hours of the post.
- Class Communication:
- The class period will be a mixture of lecture, programming examples and
exercises. Your active participation will result in a more salient experience.
- Outside of class, the discussion group on Canvas should
be the primary method of communication. This
allows everyone in the class to benefit from the answers to
your questions, and provides students with more timely answers
since the TAs and I check Canvas at least once a day.
- Matters of personal interest should be directed to email instead of to
the newsgroup, e.g. informing me of an extended personal
illness. The email address cs3113
at googlegroups.com will direct your email to all
teaching personnel. You may also send email to one of
the teaching personnel. See the the office
hours page for a full list of our email addresses.
Note: Any email messages to the professors or teaching
assistants must include "CS 3113" in the subject line.
- Announcements by the instructor or the TA will
be posted to the Canvas announcement board. It is your responsibility to
have Canvas configured so that you receive these messages in a
timely fashion.
Note that Canvas can be configured so that it will
forward messages, discussion posts and announcements directly to
your email address.
- If you need assistance in configuring Canvas, contact OU IT at 325-HELP.
- Examinations: There will be a midterm and a final
examination. The dates are given in the
class schedule. During examinations, students are expected to
sit in assigned seats. Missing an examination without a
previously approved excuse will result in a grade of zero for
that examination. The final is comprehensive, as required by
College of Engineering policy. No final examinations can be given
early, except as required by University policy.
- Academic Conduct:
- Feel free to discuss any assignments or exercises with the instructor
or the TAs.
- You may make use of the Internet as a reference as you are working
on homework and projects. However, downloading or copying specific
exercise or project solutions from the Internet is considered cheating.
- Homework assignments and in-class quizzes: do
not discuss, look at, or copy another student's solution to an
assignment, as this is considered cheating.
- Projects: you may discuss a solution of a project with
other students in the class. If you do so, then you
must document in your submission the nams of these students. However, do not
look at or copy another student's solution to a project,
as this is considered cheating.
-
Make sure that your computer accounts are properly protected. Use a strong password, and do not
give your friends access to your account or your computer system. Do not leave printouts,
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, I 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).
- Tutors: Tutors can be an excellent source of
support for students who are having difficulty in the
class, but only if the tutor is aware of the distinction
between teaching students the material so that they can
do their own work, and doing work for students. Tutors
who do work for students are not only failing to help
the students learn, they are abetting academic
misconduct. Examples of misconduct include:
- If your tutor is sitting behind you while you are
typing and methodically telling you what to
enter, he or she is abetting academic
misconduct.
- If your tutor is emailing files containing partial
or complete programming projects to you, you will
commit academic misconduct if you use those lines
in your program.
A more effective use of tutoring services is to do problems that are similar to the assigned work,
instead of doing assigned work. For example, it would be fine to work unassigned problems from
the textbook with a tutor. This requires significant discipline, both on the part of the tutor and the
part of the student. Copying from a tutor is as unacceptable as copying from another student. If
your tutor doesn't know how to teach properly, please ask them to call or visit me and I will provide
training and guidance. If you are tutoring someone else in the class, you can be accused of
academic misconduct if this person copies your work.
- 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. I will not consider giving a student a grade of
"I" unless the following three
conditions have been met:
-
It is within two weeks of the end of the semester.
-
The student has a grade of C or better in the class.
-
The reason that the student cannot complete the class is properly
documented and compelling.
-
Accommodation of Disabilities: 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 Goddard Health Center, Suite 166, phone 405/325-3852 or TDD only 405/325-4173.
- Classroom Conduct: Because cell phones and laptops can
distract substantially from the classroom experience, students
are asked not to use either during class, except where these are
required as part of a classroom exercise.
Disruptions of class will also not be
permitted. 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 direction.
In the case of disruptive behavior, I may ask that you leave the classroom and may charge you
with a violation of the Student Code of Responsibilities and Conduct.
- 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 should bring the laptop
computer to class so that you can follow along with the live
programming exercises and can participate in the in-class quizzes
and other activities. 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.
- Backups: Back up your class data on a regular basis in
case you need to drop back to an older version of your code or
you need to shift your class activities to another computer.
Make sue to secure these backups.
Grades
Grades will be computed according to the following distribution:
- Midterm exam: 15%
- Final exam: 15%
- Homework assignments: 15% (equally distributed across N exercises; keep N-1)
- In class quizzes and activities: 15% (equally distributed across M quizzes/activities; keep M-1)
- Projects: 40% (equally distributed across 5 projects)
Although the lowest grade in the homework and quiz categories will be
dropped, explicitly skipping an assignment or exercise is unwise, as
you miss out on the experience of doing the exercise and you may
perform even worse on a future exercise.
Grading notes:
- Final grades: the cut point between letter grades will be
decided at the end of the semester. Cut points will not be any
higher than the traditional 90/80/70 scheme, but they do tend
to be close to these values.
- Grade questions: All grade questions should first be
brought to the individual who performed the assessment (the TA
or the instructor). Questions that are not resolved with the
TA may then be brought to the instructor.
All concerns about
the grading of assignments must be brought to our
attention within one week of when the
item was returned/graded.
- Canvas Grade Summary: Canvas has a grade book
that is used to store the raw data that is 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 me
or the TA, and we will correct Canvas.
- Examination Grading Questions: Questions about
examination grading must be addressed within one week of the exam
being returned to the class.
Projects and Homework
- Homework assignments are intended to be short exercises that
are doable within an hour or two.
- 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.
- Due dates:
- Projects and homework assignments are due at 11:45pm on
the date that is listed in the "Due" column on the class schedule.
- Quizzes will be due in class.
- Hand-in procedure:
- We will use Canvas and Gradescope to hand in assignments.
See the corresponding assignment description for details.
- Late policy:
- Because late assignments will seriously impact your
ability to follow the next section of the course, you are
required to complete the homework assignments on time.
No late assignments will be accepted. Likewise, in-class quizzes and exercises cannot be made up.
-
Projects may be handed in late. If late by 0-24 hours, the
project grade will incur a 10% penalty; if late by 24-48 hours,
a 20% penalty will be imposed. Projects that have not been
handed in by 48 hours will receive no credit. Handing in a late
project should only be used in very dire circumstances (consider
the trade-off in the possible grades before you make this
choice).
Other Details
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 use 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.
Adjustments for Pregnancy/Childbirth Related Issues
Should you need
modifications or adjustments to your course requirements
because of documented pregnancy-related or childbirth-related
issues, please contact me as soon as possible to
discuss. Generally, modifications will be made where medically
necessary and similar in scope to accommodations based on
temporary disability. Please see
https://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.
Religious Observance
It is the policy of the University to excuse the absences of students
that result from religious observances and to reschedule examinations
and additional required classwork that may fall on religious holidays,
without penalty
(see the Faculty Handbook section 3.15.2).
Final Exam Preparation Period
Pre-finals week is defined as the seven calendar days before the
first day of finals. Faculty may cover new course material throughout
this week. For specific provisions of the policy please refer to OU's
Final Exam Preparation Period Policy.
Emergency Protocol
During an emergency, there are official university procedures that
will maximize your safety.
-
Severe Weather: If you receive an OU Alert to seek refuge or
hear a tornado siren that signals severe weather 1. LOOK for severe
weather refuge location maps located inside most OU buildings near the
entrances 2. SEEK refuge inside a building. Do not leave one building
to seek shelter in another building that you deem safer. If outside,
get into the nearest building. 3. GO to the building's severe weather
refuge location. If you do not know where that is, go to the lowest
level possible and seek refuge in an innermost room. Avoid outside
doors and windows. 4. GET IN, GET DOWN, COVER UP. 5. WAIT for official
notice to resume normal activities.
Links: Severe Weather Refuge Areas, Severe Weather Preparedness
-
Armed Subject/Campus Intruder: If you receive an OU Alert to
shelter-in-place due to an active shooter or armed intruder situation
or you hear what you perceive to be gunshots: 1. GET OUT: If you
believe you can get out of the area WITHOUT encountering the armed
individual, move quickly towards the nearest building exit, move away
from the building, and call 911. 2. HIDE OUT: If you cannot flee, move
to an area that can be locked or barricaded, turn off lights, silence
devices, spread out, and formulate a plan of attack if the shooter
enters the room. 3. TAKE OUT: As a last resort fight to defend
yourself.
Links: OU Emergency Preparedness,
Responding
to Gunshots
-
Fire Alarm/General Emergency: If you receive an OU Alert that
there is danger inside or near the building, or the fire alarm inside
the building activates: 1. LEAVE the building. Do not use the
elevators. 2. KNOW at least two building exits 3. ASSIST those that
may need help 4. PROCEED to the emergency assembly area 5. ONCE safely
outside, NOTIFY first responders of anyone that may still be inside
building due to mobility issues. 6. WAIT for official notice before
attempting to re-enter the building.
Links: OU Fire Safety on Campus
Registration and Withdrawal
If you choose to withdraw from this course, you must complete the
appropriate University form and turn the form in before the
deadline. If you stop attending the course and doing the coursework
without doing the required paperwork, your grade will be calculated
with missed homework and examination grades entered as zero. This
could result in receiving a grade of F in the course. Deadlines are
shown in the Academic Calendar, which is available from the Office of
Admissions and Records or online at http://www.ou.edu/admissions/home/academic_calendar.html
Copyright notice:
Many of the materials created for this course are the intellectual
property of Andrew H. Fagg.
This includes, but is not limited to, the
syllabus, lectures and course notes. Except to the extent not protected
by copyright law, any use, distribution or sale of such materials
requires the permission of the instructor.
This page is online at http://www.cs.ou.edu/~fagg/classes/cs3113/syllabus.html
Andrew H. Fagg
Last modified: Tue Oct 1 12:22:54 2019