Textbook abbreviation: UNP - Unix Network Programming and APUE - Advanced Programming in the UNIX Environment.
Lecture 1: Syllabus
Lecture 2: Miscellaneous UNIX/C concepts
Programming assignment No. 1: Poor Man's Parallel Program Launchpad, A package with sample executable for linprog4 and supporting files. Due date: May 29 (Friday). Project 1 demo schedule, Project 1 grading sheet
Lecture 3: Process management
Lecture 4: File operations and pipes
Lecture 5: File meta data and directories
Programming assignment No. 2: mymake , Project package (sample executable for linprog with partial implementation, sample testing files and instruction), Due June 12 (firm). Demo schedule, Project 2 grading sheet
Lecture 6: Signal and terminal I/O
Lecture 7: Job Control and Process Relationship
Lecture 8: Inter-process Communication
Lecture 9: Pthread
Lecture 10: Pthread (continue)
Lecture 11: OpenMP
Programming assignment No. 3: Multi-process, multi-thread, and OpenMP implementations of the Game of Life, the single-thread code, Sample executable (proj3_seq.c compiled with -O3), Program output and final world file for command './a.out 1000 1000'. Some hints, demo schedule, grading sheet, Due July 8.
Lecture 12: TCPIP Overview
Lecture 13: Basic TCP Socket API
Lecture 14: TCP Client and Server implementation
Term project, Due July 30/August 4. The test0 file is on c5570-1, c5570-2, c5570-3, c5570-4, c5570-5 as /home/cop5570a/test0. The corresponding output is on c5570-1 as /home/cop5570a/output_test0.txt. The test1 file is on c5570-6, c5570-7, c5570-8, c5570-9 as /home/cop5570a/test1. The corresponding output is on c5570-9 as /home/cop5570a/output_test1.txt. Current Top Performer, Term Project Presentation Schedule, Please email your sorting software to me on July 30 before class (including a readme file describing how to run your program, and your best time on test0 and test1). Term Project presentation grading sheet.
, Programming assignment No. 4: Online tic-tac-toe server, Due July 24. Sample servers are running on crux ports 5555, 6666,7777,8888,9999 (try 'telnet crux 5555' from linprog). Grading sheet, Project Demo Schedule.
Lecture 15: More server design options
Lecture 16: UDP
Lecture 17: Broadcast and Multicast and Socket options
Lecture 18: DNS and system information and
Lecture 19: Nonblocking IO and Signal driven IO
Term project presentations on July 30 and August 4. Here is the Term Project Presentation Schedule and Term Project presentation grading sheet.
Term project software due on July 30 before class. Please email your sorting program to me on July 30 before class (including a readme file describing how to run your program, and your best time on test0 and test1).
Term project report due August 4. The report length is expected to be 5 to 10 pages double space, 12 point font.
Final exam to be held on August 6 during the class time. The exam is comprehensive, but the materials before midterm will only account for about 10% of the points. The programming questions are related to Programming Assignments 3 and 4.
Term Project final times