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.
Wk# | Monday |
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
- System Call Examples
- Python code examples
- LaTeX References
- AMS math guide
- LaTeX for Computer Scientists
- The Giant Book of Symbols
- Cool tool that lets you draw a latex symbol and
it will do pattern matching to look it up. Try it! Don't always pick the first symbol it picks.
- The Source for all things TeX and LaTeX
- A weird LaTeX example just doing lots of things. It requires the files: latexGraph.png, latexHyenaBib.bib, latexStripedHyena.jpg
Services
- 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.