CSC 374 Computer Systems II
Summary
This course is a continuation of CSC 373 and here's what you will learn:
- Understand computer architecture and its impact on software.
- Learn memory hierarchy and how it affects performance.
- Develop system-level programming skills using C.
- Understand the compilation process from code to machine language.
- Study process control and concurrency, including handling race conditions and deadlocks.
- Explore virtual memory and address translation.
- Gain network programming skills for building client-server applications.
- Learn basic system security, including protection against vulnerabilities.
- Understand software-hardware interaction at a low level.
- Prepare for advanced systems and networking studies with a solid foundation.
Texts
Required Textbook
Computer Systems: A Programmer's Perspective, Third Edition, Bryant & O'Hallaron, Prentice Hall/Pearson, 2016, ISBN: 978-0134092669.
- This book really matters for the course!
- Electronics editions available.
Recommended Reading
The C Programming Language, Second Edition, Brian Kernighan and Dennis Ritchie, Prentice Hall, 1988, ISBN: 978-0131103627
- Valuable resource for learning the fundamentals of C, by the designers of the language.
- A little dated.
Grading
There will be 4 programming assignments, each worth 15% of the total grade and each taking about ~1.5 weeks to complete. These assignments must be completed individually. It is expected that students know the basics of C. These assignments must all work in a Linux environment (in which they will be graded in).
Final Exam will be worth 40% of the grade.
Prerequisites
Attendance Policy
Attendance is encouraged to enhance your learning experience, though it's not mandatory. Staying engaged will help you better understand the material and stay on track with the course.
- Course objectives
- Review of C
- Chapter 5 - Optimizing Program Performance
Chapter 6 - The Memory Hierarchy
Chapter 7 - Linking
Chapter 8 - Exceptional Control Flow: Exceptions & Processes
Chapter 8 - Exceptional Control Flow - Signals and Nonlocal jumps
Chapter 9 - Virtual Memory
Chapter 10 - System-Level I/O
Chapter 11 - Network Programming
Chapter 12 - Concurrent Programming
Future of computing
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.
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.
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.
All students are expected to abide by the University's Academic Integrity Policy 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.
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