CSCI 2410 Systems Programming
| Instructor | Jie Zhou |
|---|---|
| jie.zhou@gwu.edu | |
| Office | SEH 4590 |
| Lectures | Tue & Thur 2–3:15 p.m. at SEH 1300, 1400, & 1450 |
| Labs | Wed 2:10–3:25 p.m. & Fri 9–10:15 a.m. at TOMP 405 |
| Office Hours | TBD |
| TA | TBD |
| TA Office Hours | TBD |
Description
Most software, such as messaging, shopping, banking applications, are directly facing regular users. This software is high-level: users are not expected to understand how computer works in order to use it. But high-level software cannot stand by its own. It ultimately runs on hardware and it relies on low-level software, such as operating systems, cryptographic libraries, and web servers, which provide foundational services needed to manage resources and interact with hardware. Developing such low-level software is called systems programming. This course focuses on the fundamentals of systems programming using the C programming language.
Learning Goals
Upon completion of this course, student are expected to:
- Design and implement C programs and use the associated development tools.
- Understand the basic means of constructing applications from libraries and communication with services.
- Demonstrate an understanding of composition as a fundamental design concept for advanced functionalities.
- Understand representations of programs and processes.
- Apply UNIX abstractions for processes, process control, IPC and file systems.
Fundamentally, students will understand that processes are manipulable data, that processes control and manage other processes, and that applications are composed out of libraries and processes.
Credits and Copyright
This course is based on material provided by Sibin Mohan and Gabriel Parmer, taught at the George Washington University.
All teaching materials in this class, including slides, homework, assessments, and quizzes, are copyrighted by the George Washington University. Reproduction, redistribution is not permissible without explicit permission, such as uploading any or part of these materials to public or private websites without the instructor’s explicit consent or the copyright holder. Violating this copyright policy will be considered an academic integrity violation.