COMS 3157 Advanced Programming

Fall 2022 Course Overview

Class time: Tuesdays and Thursdays 4:10pm–5:25pm

Class location: 417 International Affairs Building (IAB)

Recitations:

Instructor: John Hui

Instructor office hours:

Exams

There will be three synchronous, in-person exams:

All registered students must take the exams at those times. There are no make-up or alternate exams. If you cannot make any of those exams, please take the course next semester.

Labs

Course Essentials

Course Schedule

Note: schedule for upcoming lectures are subject to change.

Lecture 1: Tuesday Sep 6

Course overview slides and lecture notes

Lecture 2: Thursday Sep 8

Lecture notes

Recitation 1: Weekend of Sep 9

Lecture 3: Tuesday Sep 13

Lecture notes

You can obtain a sample project built using Make on CLAC by running:

git clone ~j-hui/cs3157-pub/examples/myadd

Reading: K&R chapter 1

Lecture 4: Thursday Sep 15

Lecture notes

Reading: K&R chapters 2, 3, 4

Recitation 2: Weekend of Sep 16

Recitation notes

Lecture 5: Tuesday Sep 20

Lecture notes

Reading: K&R chapter 5

Lecture 6: Thursday Sep 22

Lecture notes

Reading: K&R chapter 5

Recitation 3: Weekend of Sep 23

Recitation notes

Lecture 7: Tuesday Sep 27

Lecture notes

Reading: K&R chapter 5

Lecture 8: Thursday Sep 29

Lecture notes

You can obtain sample code for a linked list of integers from CLAC:

git clone ~j-hui/cs3157-pub/examples/int-list

Reading: K&R chapter 6

Recitation 4: Weekend of Sep 30

Recitation notes

Midterm 1 Review: Tuesday Oct 4

Midterm 1: Thursday Oct 6

Recitation 5: Weekend of Oct 7

Recitation notes

Lecture 9: Tuesday Oct 11

Lecture notes

You can obtain sample code for a basic numbers library from CLAC:

git clone ~j-hui/cs3157-pub/examples/libnumbers

Lecture 10: Thursday Oct 13

Lecture notes

Reading: K&R chapter 7

See also: lecture note 11

You can obtain the source code for printf-test, scanf-test, and fprintf-test (featured in lecture note 10) from CLAC:

git clone ~j-hui/cs3157-pub/examples/stdio-tests

Recitation 6: Weekend of Oct 14

Recitation notes

Lecture 11: Tuesday Oct 18

Lecture notes

Reading: K&R chapter 7

You can obtain the demo code for output buffering from CLAC:

git clone ~j-hui/cs3157-pub/examples/output-buffering

You can obtain the source code for ncat from CLAC, in here:

git clone ~j-hui/cs3157-pub/examples/file-io-examples

Lecture 12: Thursday Oct 20

Lecture notes

Reading: K&R chapter 8

See also: lecture note 11

Recitation 7: Weekend of Oct 21

Recitation notes

Lecture 13: Tuesday Oct 25

Lecture notes

Reading:

Examples:

Lecture 14: Thursday Oct 27

Lecture notes

Reading:

John’s CLAC homepage URL: http://clac.cs.columbia.edu/~j-hui/cs3157/

Recitation 8: Weekend of Oct 28

Recitation notes

Lecture 15: Tuesday Nov 1

Lecture notes

You can find code for the sockaddr puzzle here:

git clone ~j-hui/cs3157-pub/examples/sockaddr-puzzle

Lecture 16: Thursday Nov 3

Lecture notes

You can find examples demonstrating fork(), waitpid(), and exec() on CLAC, here:

git clone ~j-hui/cs3157-pub/examples/fork-exec-demos

Election Day Holiday: Tuesday Nov 8

Lecture 17: Thursday Nov 10

Lecture notes

You can find examples demonstrating sigaction() on CLAC, here:

git clone ~j-hui/cs3157-pub/examples/sigaction-demos

Recitation 9: Weekend of Nov 11

Recitation notes

Midterm 2 Review: Tuesday Nov 15

Midterm 2: Thursday Nov 17

Recitation 10: Weekend of Nov 18

Recitation notes

TA Chat: Tuesday Nov 22

Thanksgiving Holiday: Thursday Nov 24

Lecture 18: Tuesday Nov 29

Lecture notes

You can find the code for the jsh demo on CLAC, here:

git clone ~j-hui/cs3157-pub/examples/cmdline

Lecture 19: Thursday Dec 1

Lecture notes

You can find the gtg-fast and list-vs-vector demos on CLAC, here:

git clone ~j-hui/cs3157-pub/examples/gtg-fast
git clone ~j-hui/cs3157-pub/examples/list-vs-vector

Recitation 11: Weekend of Dec 2

Recitation notes

Lecture 20: Tuesday Dec 6

Guest lecture: Andreas Kellas

Wrap-up: Thursday Dec 8

Epilogue slides

Recitation 12: Weekend of Dec 9

Recitation notes

Additional Material

Cats:

forkherd:

Final exam: Tuesday Dec 20

4:20pm–6:20pm

Cumulative; topics covered: