Systems Programming Syllabus

Spring 2016

Course: CS 43203/53203 Spring 2016
Call Number: 12434/12450  
Time: 3:45pm-5:00pm TH Location: 120 MSB
Paul A. Farrell Office : 258
Phone : 672-9060 Mail address : farrell@cs.kent.edu
Office Hours : 2:30pm - 3:30pm Tue Thurs and by appointment  
Grader: Fatema Nafa Mail address:fnafa@kent.edu

Description: The objective of this course is to provide you with a basic understanding of the issues involved in writing system programs on a Linux or Unix system, manipulating system processes, system io, system permissions, files, directories, signals, threads, sockets, terminal, etc. Since the operating system discussed will be Linux, an intermediate knowledge of the Linux Operating System is assumed. In addition, students are expected to have an intermediate knowledge of the C (or C++) programming language and knowledge of the theory of multiprocessing operating systems.

Prerequisites:

CS 33211 Operating Systems, ( CS 33001 Computer Science II - Data Structures And Abstraction and CS 35101 Computer Architecture)

Recommended Text:

Understanding UNIX/LINUX Programming: A Guide to Theory and Practice Bruce Molay, Prentice Hall, 2003, ISBN-10: 0130083968

Optional Texts:

Class Software:

  • gcc (or g++)

Course Outline:

Topics to be covered include:

  • Overview of systems programming
  • Users, files and manuals
  • Directories, file properties and file systems
  • Terminal control and signals
  • Event driven programming
  • Processes and programs
  • i/o redirection and pipes
  • Servers and sockets
  • Threads
Assesment:
  • Mid-term and possibly Final xamination: 30%
  • Assignments: 70%
Notes:
  • Assignments will primarily be programming assignments, although some may include written questions. The class assignments are designed to make you think about the class material. As such they will not be mechanical modifications of class examples. Nonetheless it is expected that most coding assignments will be derived from an example presented or referenced in the class notes.
  • Assignments are to be completed by the student without assistance from or collaboration with other persons. The grader may ask students to explain the details of their programs and the logic behind them. Up to 50% of the grade for each assignment may depend on the explanation given.
  • You are encouraged to seek help from the instructor if you are having difficulty with the assignment and have made an honest attempt to solve it. Such help should be sought well in advance of the due date. No help or input will be given after the due date.
  • There will be a penalty for unauthorized late assignments which may amount to up to 10% per day.
  • The Midterm examination will be in the 7th, 8th, 9th or 10th week of term, and will be an in class closed book examination.
  • The final examination is nominally scheduled for Monday May 9, 7:45am to 10am. The final also may be a take-home examination or programming assignment with this as the submission time.
  • Important Dates : Every class has its own schedule of deadlines and considerations. To view the add/drop schedule and other important dates for this class, go to the Students Tools and Courses tab in FlashLine and choose either View or Print Student Schedule. To see the deadlines for this course, click on the CRN or choose the Drop or Add a Course link and click on the green clock next to the course under Registration Deadlines.
  • This syllabus and aditional information on the course will be available using the WWW. The home page for the course is: http://www.cs.kent.edu/~farrell/sp/index.html
  • Other Information: Read the University Cheating and Plagiarism Policy and Help for students with disabilities.

Additional Requirements: