Course Schedule
DATE
TOPIC
EXERCISES
HOMEWORK
Week 1
Mon, Sep 22
HDAY
Summer Break
Wed, Sep 24
LEC 01
Introduction, Getting Started in C
Slides:
pdf
Code:
args.c
,
args.c2
,
sum_badorder.c
,
sum_betterorder.c
,
sum_declared.c
Thu, Sep 25
SEC 01
C, Pointers, Gitlab
Materials:
slides
worksheet
sec01-worksheet-soln
Fri, Sep 26
LEC 02
C: Arrays and memory
Slides:
pdf
Code:
all_even.c
,
arraysum.c
,
buggy_copyarray.c
,
copyarray.c
,
📁 extra
,
outparam.c
,
ptr_poll.c
,
sumnum.c
,
sumstore.c
,
swap.c
Ex 0 Due
Soln
Week 2
Mon, Sep 29
LEC 03
C: Pointer Menagerie
Slides:
pdf
Code:
boxarrow.c
,
boxarrow2.c
,
brokenswap.c
,
📁 extra
,
map.c
,
pointerarithmetic.c
,
swap.c
Ex 1 Due
Soln
Wed, Oct 01
LEC 04
C: Heap and Structs
Slides:
pdf
Code:
arraycopy.c
,
complexstruct.c
,
📁 extra
,
leaky.c
,
memcorrupt.c
,
segfault.c
,
simplestruct.c
,
structarg.c
,
structassign.c
Ex 2 Due
Soln
HW0 Due
Thu, Oct 02
SEC 02
Structs, Debugging
Materials:
sec02-slides
sec02-worksheet-soln
sec02-worksheet
Code:
📁 reverse
,
wordcount.c
,
wordcount_soln.c
Fri, Oct 03
LEC 05
C: Modules
Slides:
pdf
Code:
cpp_example.c
,
cpp_example.h
,
example_ll_customer.c
,
📁 external_linkage
,
📁 external_static_functions
,
📁 extra
,
ifdef.c
,
📁 include_problem
,
📁 internal_linkage
,
ll.c
,
ll.h
,
static_extent.c
Ex 3 Due
Soln
Week 3
Mon, Oct 06
LEC 06
C: Final details & File I/O
Slides:
ink
pdf
Code:
buffered_hi.c
,
cp_example.c
,
📁 extra
,
unbuffered_hi.c
Ex 5 Due
Soln
Wed, Oct 08
LEC 07
Syscalls & POSIX I/O
Slides:
pdf
Code:
readN.c
,
readN.c
Ex 6 Due
Soln
Thu, Oct 09
SEC 03
POSIX I/O
Materials:
sec03-slides
sec03-worksheet-soln
sec03-worksheet
HW1 Due
Fri, Oct 10
LEC 08
Syscalls details & Makefiles
Slides:
ink
pdf
Code:
Makefile
,
main.c
,
shout.c
,
shout.h
,
speak.c
,
speak.h
Week 4
Mon, Oct 13
LEC 09
C++: Intro
Slides:
pdf
Code:
Makefile
,
concat.cc
,
echonum.cc
,
📁 extra
,
helloworld.c
,
helloworld.cc
,
helloworld2.cc
,
helloworld3.cc
,
manip.cc
,
msg.cc
Ex 7 Due
Soln
Wed, Oct 15
LEC 10
C++: refs, const, classes
Slides:
ink
pdf
Code:
Makefile
,
Point.cc
,
Point.h
,
brokenpassbyrefconst.cc
,
constmadness.cc
,
passbyreference.cc
,
pointer.cc
,
poll1.cc
,
poll2.cc
,
reference.cc
,
styleguide.cc
,
usepoint.cc
Ex 8 Due
Soln
Thu, Oct 16
SEC 04
C++ Intro, HW2 Q&A
Materials:
sec04-slides
sec04-worksheet-soln
sec04-worksheet
Fri, Oct 17
LEC 11
C++: classes, constructors and copies (oh my!)
Slides:
pdf
Code:
Point.cc
,
Point.h
,
SimplePoint.cc
,
SimplePoint.h
,
📁 complex_example
,
📁 extra-problems
,
test.cc
Week 5
Mon, Oct 20
LEC 12
C++ class details, heap
Slides:
pdf
Code:
Point.cc
,
Point.h
,
Point_2011.cc
,
Point_2011.h
,
arrays.cc
,
📁 extra-problems
,
heappoint.cc
,
sanepoint.cc
,
sanepoint_2011.cc
,
📁 str
Wed, Oct 22
LEC 13
C++ templates
Slides:
pdf
Code:
Makefile
,
Pair.cc
,
Pair.h
,
📁 compare_problem
,
📁 compare_soln_one
,
📁 compare_soln_two
,
functiontemplate.cc
,
functiontemplate_infer.cc
,
usepair.cc
,
valuetemplate.cc
Ex 9 Due
Soln
Thu, Oct 23
SEC 05
C++ classes, dynamic memory
Materials:
sec05-slides
sec05-worksheet-soln
sec05-worksheet
HW2 Due
Fri, Oct 24
LEC 14
STL
Slides:
pdf
Code:
Amoeba.cc
,
Amoeba.h
,
Makefile
,
📁 extra-problems
,
listexample.cc
,
mapexample.cc
,
test.cc
,
vectoralgos.cc
,
vectorcap.cc
,
vectorfun.cc
,
vectoriterator.cc
,
vectoriterator_2011.cc
Week 6
Mon, Oct 27
EXAM
Midterm Exam
Wed, Oct 29
LEC 15
C++ Inheritance (start)
Slides:
ink
pdf
Code:
📁 inherit
,
📁 initial
,
vtable.cc
Ex 10 Due
Soln
Thu, Oct 30
SEC 06
HW3, Hex Files, C++ Inheritance
Materials:
sec06-slides
sec06-worksheet-soln
sec06-worksheet
Fri, Oct 31
LEC 16
C++ Inheritance (concl.), casting
Slides:
ink
pdf
Ex 11 Due
Soln
Week 7
Mon, Nov 03
LEC 17
C++ smart pointers (start)
Slides:
pdf
Ex 12 Due
Soln
Wed, Nov 05
LEC 18
C++ smart pointers (cont'd)
Slides:
ink
pdf
Code:
Makefile
,
animals.cc
,
copysemantics.cc
,
📁 extra-problems
,
movesemantics.cc
,
sharedbug.cc
,
sharedexample.cc
,
sharedvec.cc
,
strongcycle.cc
,
📁 toyptr
,
unique1.cc
,
unique2.cc
,
unique3.cc
,
unique4.cc
,
unique5.cc
,
uniquefail.cc
,
uniquemap.cc
,
uniquevec.cc
,
uniquevecsort.cc
,
usingweak.cc
,
weakcycle.cc
Ex 13 Due
Soln
Thu, Nov 06
SEC 07
C++ Smart Pointers, Casting
Materials:
sec07-slides
Fri, Nov 07
LEC 19
Networking Intro
Slides:
pdf
Week 8
Mon, Nov 10
LEC 20
Sockets, addressing and DNS
Slides:
pdf
Code:
Makefile
,
dnsresolve.cc
,
genaddr.cc
,
genstring.cc
,
net-toy.cc
Ex 14 Due
Soln
Wed, Nov 12
LEC 21
Client side networking
Slides:
pdf
Code:
Makefile
,
connect.cc
,
📁 extra-problems
,
sendreceive.cc
,
socket.cc
Thu, Nov 13
SEC 08
Client-side networking
Materials:
sec08-slides
sec08-worksheet-soln
sec08-worksheet
Code:
connect.cc
,
dnsresolve.cc
,
sendreceive.cc
HW3 Due
Fri, Nov 14
LEC 22
Server side networking
Slides:
pdf
Code:
Makefile
,
📁 extra-problems
,
server_accept_rw_close.cc
,
server_bind_listen.cc
Ex 15 Due
Week 9
Mon, Nov 17
LEC 23
HTTP
Wed, Nov 19
LEC 24
Concurrency (intro)
Ex 16 Due
Thu, Nov 20
SEC 09
HW4, HTTP, and Boost
Fri, Nov 21
LEC 25
Threads
Week 10
Mon, Nov 24
LEC 26
Processes
Wed, Nov 26
HDAY
Thanksgiving-eve
Ex 17 Due
Thu, Nov 27
HDAY
Thanksgiving
Fri, Nov 28
HDAY
Native American Heritage Day
Week 10
Fri, Nov 28
LEC 27
TBD
Mon, Dec 01
LEC 28
TBD
Thu, Dec 04
SEC 10
Course Summary
HW4 Due
Fri, Dec 05
LEC 29
Class wrap-up