ECE322 T (Systems Programming) Autumn 2020
Tues, Thurs at 5:05 pm in MM-100

The Book

Examinations:

Assignments

Submit by email to grader322 at rabbit.eng.miami.edu with subject line = your name + which assignment,
code, comments, and basic demonstration of it working, in one happily readable document.

     1   Due Sat 12 Sept.
     Interact with a linked list of named places.   
2 Due Sun 11 Oct.
A very basic shell
3 Due Sun 1 Nov.
Your own version of ls
4 Due Sun 15 Nov.
A better shell
5 Due Wed 2 Dec.
An even better shell, with pipes and redirects
Deadline - Last day anything (except the final project) can be accepted for grading: Wed 2 Dec.

Class History

Class 1  ‑ Tue 18‑8‑2020   Quick introductions.
A brief overview.
Class 2  ‑ Thur 20‑8‑2020 Programming in C as opposed to C++.
Class 3  ‑ Tue 25‑8‑2020 Programming in C: a hash table.
Coding some string functions.
Class 4  ‑ Thur 27‑8‑2020 More string functions,
Tokenizing a string with something like a vector.
Class 5  ‑ Tue 1‑9‑2020 Building a tree, simulating a reference parameter,
FILE * functions, the point of stderr.
Class 6  ‑ Thur 3‑9‑2020 The unix input and output functions,
a basic example using most of them.
Class 7  ‑ Tue 8‑9‑2020 A plain-text data file.
Creating a binary file,
Binary chop search on a file (using C functions),
The same using Unix functions.
Class 8  ‑ Thur 10‑9‑2020 Comparing two trees using communicating subprocesses, part 1.
Class 9  ‑ Tue 15‑9‑2020 Comparing two trees using communicating subprocesses, part 2.
Capturing the output from the "ls -l" command (unfinished).
Class 10  ‑ Thur 17‑9‑2020 Getting input from the command line,
Capturing the output from the "ls -l" command,
Redirecting standard output to a file,
prog1.c, prog2.c, connecting two programs with a pipe.
Class 11  ‑ Tue 22‑9‑2020 Separate compilation and .h files.
Signals - sending and receiving.
Handling signals,
Reading and processing directory entries.
Class 12  ‑ Thur 24‑9‑2020 The struct stat,
Time functions,
User database.
Today's work, unfinshed.
Class 13  ‑ Tue 29‑9‑2020 Attempt to finish last class' project, Here it is, corrected.
How the shell processes the command line.
Class 14  ‑ Thur 1‑10‑2020 Review day
Class 15  ‑ Tue 6‑10‑2020 Test Day
Class 16  ‑ Thur 8‑10‑2020 Bit operations: & | ~ << >>
Packing data into small spaces.
Class 17  ‑ Tue 13‑10‑2020 Going over the test
The test, The answers.
Class 18  ‑ Thur 15‑10‑2020 ^
Logarithmic counting ones and leading zeros.
Class 19  ‑ Tue 20‑10‑2020 The last answer, corrected.
Internet functions.
A sample TCP server and client.
We made a very super-basic internet server.
Class 20  ‑ Thur 22‑10‑2020 We converted our server to a very unsafe web server,
and made a very basic web client.
Class 21  ‑ Tue 27‑10‑2020 UDP communications: receiver, sender.
qsort() and the void-star.
setjmp and longjmp.
Class 22  ‑ Thur 29‑10‑2020 Shell commands and shell script programming.
Class 23  ‑ Tue 3‑11‑2020 Some practice: a little backup utility.
Class 24  ‑ Thur 5‑11‑2020 Review of bit operations and shell programming. $status and $<
Class 25  ‑ Tue 10‑11‑2020 Second Test, A sample, Some additional questions.
Possible topics: Bit operations, internet, shell commands and script programming.
Class 26  ‑ Thur 12‑11‑2020 Links, reference counts, and I-nodes.
Regular Expressions: egrep, The syntax, and
an example of regcomp and regexec, and with multiple matches.
grep and egrep.
Class 27  ‑ Tue 17‑11‑2020 A brief introduction to sed and awk.
Pthreads and sempahores.
Class 28  ‑ Thur 19‑11‑2020 Test one, test two.
Today's scratchy notes.