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:

Postconditions

After the successful completion of this course:

Course Calendar

[subject to change]
Week 1
1/4
Class cancelled
Week 1
1/7
Unix and C overview (make-up recorded class, students welcome, CDM 230)
Week 2
1/11
Caching
Week 3
1/18
Martin Luther King Day - University closed
Week 4
1/25
Processes, exceptions, and signals
Week 5
2/1
Virtual memory, dynamic memory allocation
Week 6
2/8
Midterm exam (1.5 hours) + dynamic memory allocation (1.5 hours)
Week 7
2/15
System-level I/O and networks
Week 8
2/22
Network programming and web servers
Week 9
2/29
Concurrent programming and synchronization
Week 10
3/7
Optimizing program performance
Week 11
3/14
Final exam for section 801 (5:45pm-7:15pm)

Instructor


Office  Office Hours  Phone  Email 
Ljubomir Perkovic CDM 713 M 4:30-5:30pm in CDM 713
Tu 10:30am-12:30pm in Daley 502
312-362-8337  lperkovic@cs.depaul.edu
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 with Disabilities

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