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 24

Lecture:

Material about shell programming; problems about shell programming; introduction to the C programming language; getchar() and putchar(); separate compilation.

Lab:

Lab 03
There is a lab tutorial

Videos:

1) If you know some C or Java, you might not need to watch most of the introductory C videos. To determine this, please try problems in "probex" as explained on the introductory C videos web page.
And as it notes, please watch introductory C part 2 video 4 whether you know much C or not, and certainly if you only know Java and not C.

If you haven't seen C or Java at all before, you probably need to watch at least some of the introductory C videos. Please watch the video suggested by probex and then do the suggested exercises.

2) In any case, please watch the "carray1" videos (arrays in C, part 1) as listed in probex. We will discuss arrays in C in depth in lecture next week; they're more complicated than illustrated in these introductory videos.


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