Systems II (CSC 407)
Sections 801 and 810, Winter 2016
Overview
This course is the second of a two-course sequence covering the
concepts underlying all computer systems and how they affect the
correctness, performance, and utility of application programming. We
will cover, in particular, the topics of optimizing program
performance, linking, processes and exceptional control flow,
system-level I/O and networking, concurrent programming, and finally
web services as a current example of distributed system technology.
Preconditions
You must have taken CSC 406 or an equivalent course that introduces
the Intel Assembly language, system-level programming in C, and
computer architecture from an application programmer's perspective
You must also have taken CSC 402 or an equivalent course that covers
basic data structures such as arrays, linked lists, stacks and
queues. I will assume that:
- You know how to create, debug, compile and run simple C code
on a Linux box, and you use a reasonable programming style (i.e.
your code is easy to read and concise).
- You understand how data (e.g. integers, strings, ...) is
represented and manipulated at machine-level.
- You can read, understand, and debug Intel Assembly code in GAS
(Gnu ASembler) format; you understand how programs are
represented at machine-level.
- You can manipulate pointers and understand basic
implementations of arrays, linked lists, stacks and queues.
Postconditions
After the successful completion of this course:
- you will improve your C programming skills;
- you will learn techniques for improving code performance;
- you will understand static and dynamic linking, and how to
avoid some common linking errors;
- you will understand the concept of exceptional control flow
and of a process, and how to use this knowledge when developing
applications such as shells and web servers;
- you will understand the basic concepts of UNIX I/O and how it
is used to develop networked applications and distributed
systems;
- you will know how to write concurrent programs and, in
particular, multi-threaded programs, and how to develop a
multi-threaded web server;
- you may take advanced, technical CSC and SE courses.
Course Calendar
[subject to change]
Instructor
Please send me an email if you need an appointment at another time.
Class Hours
| Section 801 |
M
|
5:45pm-9:00pm |
Lewis 1111
|
Section
810 (Online section)
|
|
Lecture
posted M after 9pm
|
|
Texts
-
Bryant & O'Hallaron, Computer
Systems:
A
Programmer's
Perspective,
2nd
Edition, Prentice Hall/Pearson, 2011.
ISBN: 978-0136108047
-
Kernighan & Ritchie, The C Programming Language, 2nd
Edition,
Prentice Hall, 1988. ISBN: 978-0131103627
Course web page
This syllabus, as well as the class lecture notes, homework
assignments, lab assignments, D2L and homework submission link, and
other links can be found on the course web page at
http://reed.cs.depaul.edu/lperkovic/csc407. Please check this
site and the discussion forum regularly.
Grading
The course grade will be apportioned as follows:
| homeworks |
20% |
labs
|
30%
|
| midterm exam |
25% |
| final exam |
25% |
There will be a total of 5 homework assignments, but only your best
4 count toward the final grade, so you may miss one homework
assignment with no penalty. Each homework assignment will consist of
several short programming assignments, and/or conceptual problems.
There will also be a total of 3 labs, each a major assignment
involving technical programming in C. All homeworks 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.
The midterm exam will be a two hour exam given on the day
indicated in the calendar.
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 course calendar, 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
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
This course will be subject to the university's academic integrity
policy. More information can be found at http://academicintegrity.depaul.edu/.
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