Stan Kurkovsky, PhD
HomeTeaching › Introduction to Systems Programming

Introduction to Systems Programming

CS 355 - Fall 2011

2009/10 Catalog description

Prerequisites: CS 153 and 254. Introduction to the design of systems software. Topics include comparative machine organizations, the design of assemblers and loaders, an introduction to operating systems and an introduction to compiler design.

Logistics

Instructor
Dr. Stan Kurkovsky, Professor of Computer Science
Office
MS 303-08
Phone
(860) 832-2720
Fax
(860) 832-2712
E-mail
kurkovskysta@ccsu.edu
Office hours
MW 2:00 - 3:00pm and TR 3:00 - 4:30pm or by appointment
Class meetings
TR 4:30 pm - 5:45 pm @ TBA

Textbook and other reference materials

Learning outcomes

Program objectives and outcomes are supported by the following learning outcomes achieved by students upon a successful completion of this course:

  1. Understand the role of systems programming (a);
  2. Have hands-on knowledge of the basic principles of Unix system calls (b,c,i,j,k);
  3. Have hands-on knowledge of the basic principles of Unix file system (b,c,i,j,k);
  4. Have hands-on knowledge of the basic principles of Unix IO system (b,c,i,j,k);
  5. Design and implement system-level applications for open-source operating systems (b,c,i,j,k).

Tentative schedule

Please note that this schedule may change as we progress through the course material

Reference: M - Molay, Understanding Unix/Linux Programming: A Guide to Theory and Practice

Week 1: August 29 - September 2

  • Lecture: Introduction; course overview and objectives.
    Reading: none
  • Lecture: Unix Systems Programming: The Big Picture
    Reading: M 1
  • Lab 0 (not for grade): Running a Linux box

Week 2: September 5 - September 9

  • September 5 - Labor Day
  • Lecture: Users, Files, and the Manual
    Reading: M 2
  • Lab 1: ex. 2.11, 2.15 (pp. 69-70)

Week 3: September 12 - September 17

  • Project 1: cat (switches: -E, -b, -n)

Week 4: September 19 - September 23

  • Lecture: Directories and File Properties
    Reading: M 3
  • Lab 2: ex. 3.13, 3.14 (p. 106)

Week 5: September 26 - September 30

  • Project 2: touch (switches: -a, -m, -r; optional: recursive version to process subdirectories)

Week 6: October 3 - October 7

  • Lecture: Focus on File Systems
    Reading: M 4
  • Lab 3: ex. 4.16, 4.20 (p. 138)

Week 7: October 10 - October 14

  • Project 3: multicolumn ls (ex. 3.10, p. 105; hint on p. 164)

Week 8: October 17 - October 21

  • Midterm
  • Project 4: find (usage: find subdirectory search_pattern)

Week 9: October 25 - October 28

  • Lecture: Connection Control
    Reading: M 5 

Week 10: October 31 - November 4

  • Lab 4: ex. 5.22, 5.23 (p. 168)
  • Project 5: wall

Week 11: November 7 - November 11

  • Lecture: Terminal Control and Signals
    Reading: M 6
  • Lab 5: ex. 6.7, 6.8, 6.10 (pp. 195-196)

Week 12: November 14 - November 18

  • Lecture: Event-Driven Programming
    Reading: M 7
  • Lab 6: ex. 7.9, 7.10 (p. 247)

Week 13: November 21 - November 25

  • Project 6: snake
  • November 23 - 27: Thanksgiving Recess - No Classes

Week 14: November 28 - December 2

  • Lecture: Processes and Programs
    Reading: M 8

Week 15: December 5 - December 8

  • Lab 7: ex. 8.8, 8.9 (p. 281)

Final: December 13

  • Final exam: Tuesday, December 13, 4:30 - 6:30 pm

Linux

Students are required to have access to a Linux computer in order to fulfill all requirements of this course. There are many Linux distributions offering live CDs that do not require a physical installation on the target system - you can boot to Linux straight off a CD. These include Knoppix, Ubuntu, Suse, and others. A full list of all known live CD distributions of Linux with their ratings is also available.  Many computers on CCSU campus (including those in MS 314) can boot off these CDs. Students are also welcome to bring and use their laptops running Linux or Mac OS. Another alternative includes running a Linux installation inside of virtualization software, such as VirtualBox.

Helpful introductory notes by Mike Graff

Midterms

Midterms are non-cumulative and are designed as elementary evaluation devices and to prompt the student to stay abreast of assigned topics. Each test will take 50 minutes. Make-up tests may only be given if a student can provide a written proof of a serious reason for missing a test (such as illness or accident).

 Questions on a test may include:

  • True/false questions,
  • Multiple choice questions,
  • Fill in the blank questions,
  • Short answer questions.

Final exam

Final exam is a cumulative objective test of representative content of the entire semester's course offerings.

Labs and lab projects

During the labs students will work on hands-on problems focusing on the material covered in class lectures and reading assignments. Students can work on lab assignments individually or in teams of two. Deliverable for each lab is due no later than two weeks after the lab date. Labs in the schedule refer to exercises in the main textbook.

Academic misconduct

All students are expected to demonstrate integrity in the completion of their coursework. Academic integrity means doing one's own work and giving proper credit to the work and ideas of others. It is the responsibility of each student to become familiar with what constitutes academic dishonesty and plagiarism and to avoid all forms of cheating and plagiarism. Students who engage in plagiarism and other forms of academic misconduct will face academic and possibly disciplinary consequences. Academic sanctions can range from a reduced grade for the assignment to a failing grade for the course. From a disciplinary standpoint, an Academic Misconduct Report may be filed and a Faculty Hearing Board may impose sanctions such as probation, suspension or expulsion.

For further information on academic misconduct and its consequences, please consult the Student Code of Conduct and the Academic Misconduct Policy.

Attendance

All students are expected to attend class sessions regularly. However, recognizing individual differences, each student is responsible for his/her own attendance and for making-up any missed study or work. Limited assistance will be offered to those with plausible reasons for absences; unexcused absences will result in the student being totally responsible for the make-up process.

Help with computers

The University offers some student assistants who may be of value in helping students with basic computer functionality only, not with program writing.

Students with disabilities

Any student who feels s/he may need an accommodation based on the impact of a disability should contact me privately to discuss your specific needs. I will need a copy of the accommodation letter from Student Disability Services in order to arrange your class accommodations. Contact Student Disability Services, Room 241, Copernicus Hall, if you are not already registered with them. Student Disability Services maintains the confidential documentation of your disability and assists you in coordinating reasonable accommodations with your faculty.

Grades and evaluation

Students will be evaluated regularly during the semester and should be aware of their progress continuously during the semester. The final course grade will be reported according to the stated University policy.

The final course grade will be calculated according to the following distribution of points:

Labs, 7 @ 4 points each            28
Projects, 6 @ 6 points each        36
Midterm    15
Final exam 15
Class participation 6
Total 100

Course letter grade will be determined as follows:

A A- B+ B B- C+ C C- D+ D D- F
95-100 90-94 87-89 84-86 80-83 77-79 74-76 70-73 67-69 64-66 60-63 0-59