Course Description

Time: MWF 2:30-3:30
Final: TBD
Location: TLC 249
Textbook: None (some recommended ref books)

Estimated Syllabus

This syllabus is an estimate of what we might cover this semester. The class varies from semester to semester to reflect new and interesting topics and the rate at which the class is absorbing material.


of that

Topics/Links Assignments Comments
1 Aug 21 class intro, unix history, kernel and layers of software, POSIX standard, Linux   NO CLASS MONDAY
2 Aug 28 shell programs, system calls, sh and bash, file as a stream of characters model, hierarchical file system, unix philosophy: lots of little specialized programs that work on character files and can be pieced together, no hand holding (user beware), uname, man, ls, mkdir, ps, who, whoami, id, date, wc, cat, echo, cd, pwd, files: dot and dot-dot, typing aids: filename completion, history and up and down
3 Sep 4 Piping, I/O redirection (<, >), appending (>>) and here documents: (<<), standard in, standard out, standard error, cp, mv, rm, file globbing, -r/-f options, standard in as "-" argument, "--" argument, more, sleep, mkdir, rmdir, absolute and relative pathnames.   NO CLASS MONDAY (LABOR DAY)
4 Sep 11 paste, head, tail, dictionaries (/usr/share/dict), file typing with "file", destructive piping, LANG=C and collating order, cksum, vi, variables assign and use, quotes, $PATH, which, chmod, exit and exit codes, $?, writing simple shell scripts Assignment 1  
5 Sep 18 Writing more complex shell scripts, test, if-then-fi, if-then-else-fi, && connective, $*, $@, $#, $$, return code and $?, exit, backward quotes (`), /bin/sh -x, for-do-done, grep, egrep, tr, sort, cut, uniq, diff, sdiff, find, expand/unexpand, tar    
6 Sep 25 Compiling C++ code, #include, header files, multiple compilation units, making .o files, making libraries with ar, using g++. make including how dependency driven build works, writing makefile files, using make to make targets, phoney targets like "all" and "clean", what make knows how to build. gdb, how to compile to debug, and basic gdb commands. gprof and how to compile to profile, how to read a profile report.  
7 Oct 2 Source code control models such as distributed and centralized source code control. The advantages of source code control. git and local repository commands, add and commit, branches, remote repositories and push and pull.

Process commands. ps, kill, fg, bg commands. Intro to system calls. man pages sections 1, 2, and 3 comparison, system calls: time, localtime, gettimeofday.

Assignment 2  
8 Oct 9 file I/O, redirect via file descriptors, open, read, write, append, close, stat Assignment 3  
9 Oct 16 Python Part I    
10 Oct 23 Python Part II  
11 Oct 30 Use Python to write UNIX tools. Assignment 4  
12 Nov 6    
13 Nov 13 Assignment 5  
14 Nov 20 NO CLASS THIS WEEK   Fall Break
15 Nov 27    
16 Dec 4 Assignment 6  
17 Dec 11     FINALS WEEK;

References and Resources

General References


  • Due to a situation beyond my control, the homework submission page will no longer be used. We will be using BBLearn for the rest of the semester.

Policies and Processes