Systems I (CSC 406)
Sections 702 and 711, Fall 2021
Overview
This course is the first of a two-course sequence covering the
concepts underlying all computer systems and how they affect the
correctness, performance, and utility of application programming.
This course focuses on C programming and machine representation of
information and programs.
Preconditions
You must have taken CSC 401 or an equivalent intro to programming
course. I will assume that:
- You know how to create, debug, compile and run programs in a
general-purpose language (Python, Java, C, C++,...) and use a
reasonable programming style (i.e. your code is easy to read and
concise).
- You know how to use basic data types (integer, boolean, and
string) including fundamental container data types (arrays or
lists).
- Your are familiar with execution control structures such as if/else,
for, and while statements.
- You are familiar with basic formal logic.
Postconditions
After the successful completion of this course:
- you will have basic C programming skills;
- you will understand how integers, strings, arrays and other
structures are represented and manipulated at the machine level;
- you will understand how programs are represented at the
machine-level;
- you will be able to read, understand, and debug 64-bit Intel
Assembly code in GAS (Gnu ASembler) format;
- you will know how to take advantage of the parallelism in
modern CPUs to optimize program performance;
- you will be able to take CSC 407, the follow-up systems
course.
Course Calendar
[subject to change]
Modality
In order to optimize the experience of students in both in-person
and online sections and to provide the maximum flexibility in the
current uncertain times, this course will be delivered as follows:
- Main course website: The main course web site is https://reed.cs.depaul.edu/lperkovic/courses/csc406.
I will post there the lecture slides, the async lecture video
recordings, the live lecture recordings, and the homework/lab
assignments.
- Async lecture recordings: The weekly lecture
slides and high-quality, previously recorded, lectures are
posted on the course website. These lectures cover new material
and will offer the best lecture experience if you are not
attending class in-person.
- Live recorded lectures: The live lectures for students
attending class in-person cover the same material as the above
async lecture recordings. The live lectures will be recorded and
posted on the course website as well. The live lectures will
have additional content: I will discuss the lab assignments in
detail and will also review the homework assignments and labs
due that week; therefore students not attending class
in-person should view at least these parts of the live lecture
recordings.
- Class Linux VM: We will be using a Linux VM to
illustrate systems concepts and all homework and lab assignments
will be done on the Linux VM. Instructions on how to access your
Linux VM account and work within the Linux shell are provided in
the week 1 lecture.
- Getting help: I have set up a Discord server for the
class. Please use it to ask questions regarding the weekly
topics and problem set. Feel free to answer the questions if you
can! The Discord server invite is posted on D2L. I am also making
available one-on-one Zoom meetings with me during my Zoom office
hours. The Zoom office hours meeting link is also posted on D2L. If you need to
contact me privately and outside of office hours, feel free to
email me directly, of course.
Instructor contact info
Please use Discord for course/material related questions and email
for personal questions.
Texts
-
Bryant & O'Hallaron, Computer
Systems:
A
Programmer's
Perspective,
3rd Edition, Prentice Hall/Pearson, 2016. ISBN:
9780134092669
-
Kochan, Programming in C, 4th Edition, Prentice
Hall/Pearson, 2015. ISBN:
9780321776419
Course web page
This syllabus, as well as the class lecture notes, lecture
recordings, homework assignments, lab assignments, discussion forum
links, homework submission link and other links can be found on the
course web page at
https://reed.cs.depaul.edu/lperkovic/courses/csc406. Please
check this site and the discussion forum regularly.
Grading
The course grade will be apportioned as follows:
| homeworks |
10% |
labs
|
40%
|
| midterm exam |
20% |
| final exam |
30% |
There will be a total of 4 homework assignmentss, but only your best
3 count toward the final grade, so you may miss one homework with no
penalty. Each homework assignment will consist of several short
programming assignments, and/or conceptual problems. There will also
be a total of 4 labs, each a major assignment involving long
hours of technical work. All homework assignments and labs must be
submitted by the deadline and no later. Any homework or lab not
handed in by the deadline will receive 0 points, without any
exceptions.
To do well in this course, you should follow the class regularly,
participate in the discussion, read the chapters in the book each
week as indicated in the homework assignments, start working on
the homework and labs early, and talk to me promptly if you have
any problems. The answers to the homework and exam questions, as
well as your code, should be written in a way that is rigorous,
clear and concise.
Policies
Lateness and Absence
No late homework or lab will be accepted. If you don't hand in a
homework/lab in time, you will receive 0 points for the
homework/lab. Midterm and final exams makeups must be arranged at
least one week in advance, barring extreme situations.
Deadlines for adds, drops, and withdraws
See the deadlines here.
Changes to Syllabus
This syllabus is subject to change as necessary during the quarter.
If a change occurs, it will be thoroughly addressed during class,
posted under Announcements in D2L and sent via email.
Online Course Evaluations
Evaluations are a way for students to provide valuable feedback
regarding their instructor and the course. Detailed feedback will
enable the instructor to continuously tailor teaching methods and
course content to meet the learning goals of the course and the
academic needs of the students. They are a requirement of the course
and are key to continue to provide you with the highest quality of
teaching. The evaluations are anonymous; the instructor and
administration do not track who entered what responses. A program is
used to check if the student completed the evaluations, but the
evaluation is completely separate from the student’s identity. Since
100% participation is our goal, students are sent periodic reminders
over three weeks. Students do not receive reminders once they
complete the evaluation. Students complete the evaluation online
in CampusConnect.
Academic Integrity and Plagiarism
All students are expected to abide by the University's Academic
Integrity Policy (which you can find at http://academicintegrity.depaul.edu/)
which prohibits cheating and other misconduct in student
coursework. Publicly sharing or posting online any prior or current
materials from this course (including exam questions or answers), is
considered to be providing unauthorized assistance prohibited by the
policy. Both students who share/post and students who access or use
such materials are considered to be cheating under the Policy and
will be subject to sanctions for violations of Academic Integrity. If you have any questions be sure to consult with
your professor.
Academic Policies
All students are required to manage their class schedules each term
in accordance with the deadlines for enrolling and withdrawing as
indicated in the University Academic Calendar.
Information on enrollment, withdrawal, grading and incompletes can
be found at http://www.cdm.depaul.edu/Current%20Students/Pages/PoliciesandProcedures.aspx.
Students who feel they may need an accommodation based on the impact
of a disability should contact the instructor privately to discuss
their specific needs. All discussions will remain confidential. To
ensure that you receive the most appropriate accommodation based on
your needs, contact the instructor as early as possible in the
quarter (preferably within the first week of class), and make sure
that you have contacted the Center for Students with Disabilities
(CSD) at:
Lewis Center 1420, 25 East Jackson Blvd.
Phone number: (312)362-8002
Fax: (312)362-6544
TTY: (773)325.7296
COVID-19 Health and Safety Precautions
Keeping our DePaul community safe is of utmost importance in the
pandemic. Students, faculty and staff are expected to:
- Wear a mask as required at all times while indoors on campus;
- Refrain from eating and drinking in classrooms;
- Keep current with their COVID-19 vaccinations or exemptions;
- Stay home if sick;
- Participate in any required COVID-19 testing;
- Complete the online Health and Safety Guidelines for Returning
to Campus training;
- Abide by the City of Chicago Emergency Travel Advisory.
By doing these things, we are Taking Care of DePaul, Together. The
recommendations may change as local, state, and federal guidelines
evolve. Students who do not abide by the mask requirement may be
subject to the student conduct process and will be referred to the
Dean of Students Office. Students who have a medical reason for not
complying with any requirements should register with DePaul’s Center
for Student with Disabilities (CSD).