Systems Programming

Spring 2008

Description
¡@

This course is designed for sophomore CS-major students and serves as the introduction system-level course. In this course, students will learn how to write the programs using system services in Unix-like systems. The following are the goals of this course.

1.      To be familiar with the UNIX-like systems.

It means to know how to make use of many tools/services provided by the system: commands, library calls or system calls. It also means that you understand the model of computation that Unix presents.

2. To become good system programmers.

It means that you should know how to write a descent C program in Unix/Linux as the semester is over. However, this course should not limit yourself in writing system programs in Unix/Linux. The learning process that you will have in this course should teach you how to program in any other operating systems which you might use later in your career.

At the end of the semester, you may want to go through this list again to see if the goals are met. We will appreciate if you could provide us your comments regarding the class at the end of the semester. (Well, you can send us your comments at any time. However, I guess that it is more reasonable to review the class at the end of the semester.)

The topics covered in this course include:

¡@

Instructor

Pu-Jen Cheng

Email: pjcheng@csie.ntu.edu.tw,

Homepage: http://www.csie.ntu.edu.tw/~pjcheng

Office hours: R323, 9:00 am ~ 12:00 am, Friday

Class Hours: 9:10 am ~ 12:10 am, Wednesday

Classroom: CSIE Room 102

PrerequisitesData structure and basic C/C++ programming

Websiteshttp://oris.csie.ntu.edu.tw/courses/claroline/course/index.php?cid=SP2008,

                       http://www.csie.ntu.edu.tw/~pjcheng/course/sp2008

Textbook

Advanced Programming in the Unix Environment, 2nd Edition, by Richard Stevens and Steven A Rago, Addison-Wesley, 2005

References

Grading: (tentative)

Assignments (30%)

Midterm Exam (35%)

Final Exam (35%)