Skip to Main Content
Mobile Menu

CS253 Introduction to Systems Programming

Spring 2019

Instructor:  Jim Conrad

Slides:  https://drive.google.com/open?id=1sgGgeM0l9MsduLx_ljO0a3PgJJ1Qip2k
Piazza:  https://piazza.com/class/jqmvs8s1e2hh9 
Kount Tutoring Center Schedule:  https://coen.boisestate.edu/cs/computer-science-tutoring-center-cstc/
Syllabus: S19CS253Syllabus

Getting Assistance and Tutoring Schedule

Most student questions are of general interest to the whole class as others have or will have the same issue.  Please consider posting your questions on our piazza site.  Many it-doesn’t-work questions benefit from screenshots illustrating how your program fails as well as a snippet of your suspicious source code.  I consider posts to piazza to be the same as in-class questions, not cheating, as the question, discussion and answer enlighten the entire class.

A few questions, especially those that require interactive use of the debugger, can’t be easily answered on-line.  You’ll want to take these to the Kount Tutoring Center (CCP241).  The CS253 tutoring schedule is posted online.  Warning:  The tutors are often swamped with questions in the days before assignments are due.

Textbooks

Instructor’s Notes

  • The CS-HU 153 prereq and CS-HU 250 coreq are important!
  • The Kernighan and Ritchie book is widely known as “K&R” and is required.  There is a Kindle edition.
  • We use the piazza site for discussing the reading materials, projects, and conducting in-class polls.  Please bring to class a laptop, or a phone with the piazza app installed, to earn extra credit from the polls.
  • We use blackboard for the in-class quizzes.  Please bring your laptop or a phone with the blackboard app to class on quiz days.

Schedule

DayDateReadingTopicQuizAssigned
1January 15, 2019Syllabus, K&R Ch1Syllabus, review and helloworldP1 - cch
2January 17, 2019Intro to C Programming LanguageQ1: Syllabus
3January 22, 2019Meclenburg Ch1 and Ch2Makefiles and gcc
4January 24, 2019K&R Ch2Variables, strings, pointers and fgetsQ2: L01..L03
5January 29, 2019Types, strings, arrays, const & bitwise opsP2 - match
6January 31, 2019K&R Ch4Functions and Program StructureQ3: Makefiles
7February 5, 2019K&R Ch5Pointers and Arrays
8February 7, 2019Function PointersQ4: K&R Ch1..2
9February 12, 2019N/ABuffer OverflowP3 - sed253
10February 14, 2019Debugging and String Manipulation ExamplesQ5: K&Amp;R K&R Ch4 and Function Pointers
11February 19, 2019K&R Ch6Structures
12February 21, 2019K&R Ch6StructuresQ6: K&R Ch5
13February 26, 2019K&R Ch7Input and OutputP4 - smash1
14February 28, 2019K&R Ch8Input and OutputQ7: K&R Ch6
15March 5, 2019Debugging and Valgrind
16March 7, 2019Processes, fork, exec, stack, heap, text, dataQ8: K&R Ch7 and Ch8
17March 12, 2019https://www.gnu.org/software/libc/manual/html_node/Processes.html#ProcessesProject 5P5 - smash2
18March 14, 2019Signals, alarms, segfault
19March 19, 2019Spring Break
20March 21, 2019Spring Break
21March 26, 2019https://www.gnu.org/software/libc/manual/html_node/Signal-Handling.html#Signal-Handling
22March 28, 2019https://www.gnu.org/software/libc/manual/html_node/Pipes-and-FIFOs.html#Pipes-and-FIFOsPipes, IPCQ9: Processes
23April 2, 2019http://tldp.org/HOWTO/Program-Library-HOWTO/shared-libraries.htmlLibraries, makefiles P6 - smash3
24April 4, 2019ThreadsQ10: Signals
25April 9, 2019https://computing.llnl.gov/tutorials/pthreads/Project 7
26April 11, 2019Synchronization, races, corruption, deadlock, livelockQ11: Pipes & Libraries
27April 16, 2019P7 - smash4
28April 18, 2019Q12: Threads
29April 23, 2019
30April 25, 2019
31April 30, 2019
32May 2, 2019
Final