CSc 3320 : System Level Programming
Fall 2026, August 24 to December 17
Lecture: 5:30 to 6:45 PM, Mondays and Wednesdays,
Urban Life 100
83931 recitation: 2:15 PM - 3:05 PM Thursdays, Langdale Hall Room: 518
83929 recitation: 11:00 AM - 11:50 AM Thursdays, Langdale Hall Room: 518
This course syllabus provides a general plan for the course;
deviations may be necessary.
Instructor: Dr. Michael Weeks
Computer Science Department
Office: 25 Park Place, room 754
Office Hours:
Office Hours: by appointment, and
I am in the office from 1-2 Mondays and Wednesdays.
Department Phone: (404) 413-5700 (does not do texts)
Put the course number (3320) in the subject line to make sure
that your e-mail does not get classified as spam. Do not expect an answer.
If it is important and/or urgent, come see me duing office hours.
Web page: http://hallertau.cs.gsu.edu/~mweeks/csc3320/
Teaching Assistants:
Pre-requisites
CSC 1302 or CSC 2310
(Principles of Computer Science II) with a grade of C or higher.
The department will strictly enforce all prerequisites. Students without
proper prerequisites will be dropped from the class, without any prior
notice, at any time during the semester.
Catalog Description
An introduction to programming at the level of the operating system.
Topics include editors, system calls, programming tools, files, processes,
interprocess communication, and shells.
Course Objectives
This course is designed to give students experience in using a high-level
language ( C ) to interface with an operating system (UNIX). Students will
learn fundamental UNIX concepts, including files, processes, interprocess
communication, and shells. They will also gain experience writing and testing
C programs using UNIX editors and programming tools.
Topics
- The terminal window, vi editor, man pages, and using gcc/g++
- Introducing C
- C Fundamentals (variables, comments, simple program)
- Formatted Input/Output (printf, scanf) plus security issues with these
- Expressions (arithmetic, assignment, inc/dec)
- Selection Statements (if, switch)
- Loops (while, do, for, break, continue)
- Basic Types (int, float, char, conversions)
- Arrays
- Functions
- Program Organization (local, external variables, scope)
- Pointers
- Pointers and Arrays
- Strings
- The Preprocessor
- The Standard Library
- Input/Output
- Systems Programming
- Low-level I/O
Required Texts
King, C Programming: A Modern Approach,
Norton,
2nd edition, 2008, ISBN-13: 978-0393979503.
Glass and Ables, Unix for Programmers and Users,
Prentice Hall, Third Edition (2003),
ISBN 0-13-046553-4.
Final Exam
The Final Exam will be given in the above classroom.
Wednesday December 10, 2025 16:15-18:45
Grading
-
3320 Students
-
Tests (2) will constitute 30% of the course grade.
- Any pop-quizzes will be factored into the above.
-
Assignments (about 4 or 5) will constitute 15% of the course grade.
-
Labs (about 14) will constitute 25% of the course grade.
-
Participation will constitute 10% of the course grade.
This may include assignments such as the TA checking your notes,
answering in-class polls/questions, leaving feedback for others,
and attendance.
-
The final exam will constitute 20% of the course grade.
Learning Outcomes
By the end of the semester, students will be able to:
- demonstrate knowledge of ssh and sftp to connect and transfer files
- use a Unix/Linux computer, especially shell commands
- apply C programming to solve problems
- demonstrate knowledge about pipe, fork, exec, and other process mechanisms such as wait and exit
- apply structs to access directory contents and/or process data, especially "struct dirent", "struct stat", and "struct task_struct" (Linux) / "struct proc" (BSD, Linux)