CSC 4304

Systems Programming

Fall 2008

 

Instructor:

Prof. Tevfik Kosar

Office: 292 Coates Hall (and 333 Johnston Hall)

Phone: 578-9483

Email: kosar@csc.lsu.edu

Office hours: Wed 4:00pm-5:00pm (at 333 Johnston) & Thu 2:00pm-3:00pm (at 292 Coates)

 

Teaching Assistant:

Jia (Jacob) Cheng

Email: jacobch@cct.lsu.edu

 

 Course Description:

CSC 4304 is an introductory course to design and implementation of systems programs, which explains the structure of the Unix operating system and shows how to write system and network programs in Unix environment. It is appropriate for students who want to learn how to write system software and for students who want to learn about the structure of a multi-tasking and concurrent programming, multi-user operating system. The course covers the details of the file system and I/O, multi-tasking, interprocess communication, and network programming. CSC 3102 is a prerequisite of this course. CSC 4304 will be offered during Fall 2008 on Tue & Thu between 3:10pm – 4:30pm at 19 Allen Hall.

 

Textbooks:

Required text:

1.    Advanced Programming in the UNIX Environment, by Richard Stevens. Addison Wesley Press, 1993, ISBN 0-201-56317-7.

 

2.    The C Programming Language, by Kernighan and Ritchie. Prentice Hall, Second Edition, 1988, ISBN 0-13-110362-8.

 

Recommended text:

1.    Understanding UNIX/LINUX Programming: A Guide to Theory and Practice, by Bruce Molay. Prentice Hall, 2003, ISBN: 0-13-008396-8.

 

Grading:

The end-of-semester grades will be composed of:

-   Pop Quizzes: 5%

-   Homework: 10%

-   Projects: 30%     

-   Midterm: 25%

-   Final: 30%

 

There will be no formal attendance taken in the class. But, you are expected to attend the classes and actively contribute via asking and/or answering questions. There may be pop quizzes at the beginning of some classes. The questions in the quizzes will come mostly from the material discussed in the previous lecture(s) or homework assignment(s).

 

Class Mailing List:

There will be a mailing list (CSC4304@cct.lsu.edu) for the important course announcements including projects, homework assignments, and exams. Please make sure that you provide an active email address to the instructor, and check your email frequently.

 

Course Schedule:

This schedule is tentative and subject to change. Please check the course web site: http://www.cct.lsu.edu/~kosar/csc4304 regularly for the updates on the schedule; announcements on the projects, homework assignments and exams; and other news about the course.

 

Date

Lect.

Title

Notes

Aug 26

1

Introduction to Systems Prog. (2spp)

 Read K&R Ch.1

Aug 28

2

Basics of C Programming (2spp)

 Read K&R Ch.2-4

Sep 2

 

 

 LSU Closed

Sep 4

 

 

 LSU Closed

Sep 9

3

Advanced Structures in C (2spp)

 Read K&R Ch.5-6

Sep 11

4

File I/O – I (2spp)

 Read Stevens Ch.3; HW-1 out

Sep 16

5

File I/O – II (2spp)

 Read Stevens Ch.5

Sep 18

6

Files & Directories – I (2spp)

 Read Stevens Ch.4; Project-1 out

Sep 23

7

Files & Directories – II (2spp)

 

Sep 25

8

Unix Process Environment (2spp)

 Read Stevens Ch.7-8

Oct 2

9

Process Control (2spp)

 Project-1 due

Oct 7

10

Signals –I  (2spp)

 Read Stevens Ch.10

Oct 9

11

Signals – II (2spp)

 HW-2 out

Oct 14

12

Midterm Review (2spp)

 HW-2 due

Oct 16

 

MIDTERM EXAM

 

Oct 21

13

Midterm Discussion

 

Oct 23

14

Make Files & Libraries (2spp)

 

Oct 28

15

Debugging (2spp)

 

Nov 4

16

Sockets (2spp)

Project-2 out 

Nov 6

17

Daemons & Advanced I/O (2spp)

Read Stevens Ch.12-13

Nov 11

18

Concurrent Programming (2spp)

HW-3 out

Nov 18

19

Review – I

HW-3 due

Nov 20

20

Review – II

Read Stevens Ch.14

Nov 25

21

Interprocess Communication (2spp)

Project-2 due; Project-3 out

Nov 27

 

 

Thanksgiving

Dec 2

22

Network Programming (2spp)

 

Dec 4

23

Final Review (2spp)

 

Dec 12

 

FINAL EXAM

7:30am - 9:30am