Introduction
Announcements

Schedule
Labs
Assignments
TA office hours

Tests, exam

Topic videos
Some course notes
Extra problems
Lecture recordings

Discussion board

Grades so far

Week of May 31

Lecture:

Introduction to the C programming language

Mentioned unix man pages.

Lab:

Lab 04
There is a lab tutorial

Videos:

1) Finish whatever problems you want to try from both "arrays in C" items in probex.

2) Watch at least the first five videos about pointers in C. (These videos are much shorter than my shell videos.)

3) Watch videos about "struct" in C.

4) Less urgent than the others, if you have some further time this week you might want to watch the optional video about make, in preparation for part of next week's lab.


WeekTopicsPracticalThen watch videosAsmt
May 10 Course info; software tools Lab 01 unix command-line; software tools 01 and 02  
May 17 Software tools, shell programming Lab 02 shell 01, 02, 03, 04  
May 24 Shell programming, start talking about C Lab 03 introductory C, arrays in C  
May 31 introductory C, C data types Lab 04 the first five pointers in C videos; the struct videos; optionally the make video a1
June 7 other C matters; strings; files Lab 05 strings; files  
June 14 More "other C matters"; files, strings, argv Lab 06 malloc; processes 01 to 04.  
later June The unix filesystem (video only; no class) Lab 07 the unix filesystem; processes06; at some point watch C declarations  
July 5 Begin processes Lab 08 signals, bitwise operations a2
July 12 The rest of the material about processes Lab 09 the C pre-processor; select(); processes07  
July 19 Interprocess communication (sockets) Lab 10 shell 06; catch up with any above videos not already watched  
July 26 finish interprocess communication; introduction to concurrency; multitasking Lab 11 concurrency 02, concurrency 03 a3
August 2 POSIX threads, begin computer security Lab 12 optionally processes 08; optionally sockets videos  
August 9 finish computer security; exam information; concluding remarks Lab 13 none a4
exam Lab 13