CSC 4304

Systems Programming

Fall 2010

 

Instructor:

Prof. Tevfik Kosar

Office: 292 Coates Hall (and 333 Johnston Hall)

Phone: 578-9483

Email: kosar@csc.lsu.edu

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

 

Teaching Assistant:

Sharma Thankachan

Email: thanks@csc.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 2010 on Tue & Thu between 12:10pm – 1:30pm at 212 Coates 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 (CS4304@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

Title

Notes

Aug 24

Introduction to Systems Programming (2spp)

Read K&R Ch.1

Aug 26

Basics of C Programming (2spp)

Read K&R Ch.2-4

Aug 30

Advanced Structures in C (2spp)

Read K&R Ch.5-6

Sep 2

File I/O – I (2spp)

Read Stevens Ch.3&5; HW-1 out

Sep 7

File I/O – II (2spp)

 

Sep 9

Files & Directories (2spp)

Read Stevens Ch.4; HW-1 due

Sep 14

Unix Process Environment (2spp)

Read Stevens Ch.7; Project-1 out

Sep 16

Process Control  (2spp)

Read Stevens Ch.8;

Sep 23

Signals – I (2spp)

Read Stevens Ch.10; HW-2 out

Oct 5

Signals – II (2spp)

Project-1 due Oct 3rd

Oct 7

Midterm Review (2spp)

HW-2 due

Oct 12

MIDTERM EXAM

 

Oct 14

Midterm Discussion

 

Oct 21

 

 Fall Holiday

Oct 28

Concurrent Programming – I (2spp)

 HW-3 out

Nov 2

Concurrent Programming – II (2spp)

 

Nov 4

 

 HW-3 due

Nov 9

Network Programming – I (2spp)

Stevens Ch.15.5-15.6; Project-2 out

Nov 11

Network Progr. – II / Daemon Processes (2spp)

 

Nov 16

 

 

Nov 18

 

 

Nov 25

 

Thanksgiving Holiday

Nov 30

Interprocess Communication (2spp)

Stevens Ch.14

Dec 2

Final Review

Final Class; Project-2 due (3rd)

Dec 6

FINAL EXAM

5:30pm - 7:30pm