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
Soln
Week 9
Mon, Nov 17
LEC 23
HTTP; Beyond sockets
Slides:
pdf
Wed, Nov 19
LEC 24
Concurrency (intro)
Slides:
ink
pdf
Code:
📁 searchserver_sequential
Ex 16 Due
Thu, Nov 20
SEC 09
HW4, HTTP, and Boost
Materials:
sec09-slides
sec09-worksheet-soln
sec09-worksheet
Fri, Nov 21
LEC 25
Threads
Slides:
ink
pdf
Code:
Makefile
,
cthreads.c
,
pthreads.cc
,
📁 searchserver_threads
,
total.cc
,
total_locking.cc
,
total_locking_better.cc
Week 10
Mon, Nov 24
LEC 26
Processes
Slides:
ink
pdf
Code:
Makefile
,
fork_example.cc
,
fork_latency.cc
,
📁 searchserver_processes
,
thread_latency.cc
Wed, Nov 26
HDAY
Thanksgiving-eve
Ex 17 Due
Thu, Nov 27
HDAY
Thanksgiving
Fri, Nov 28
HDAY
Native American Heritage Day
Week 11
Mon, Dec 01
LEC 27
OS Components
Slides:
pdf
Wed, Dec 03
LEC 28
Profiling, Benchmarking, SIMD
Slides:
pdf
Thu, Dec 04
SEC 10
Course Summary
Materials:
sec10-slides
HW4 Due
Fri, Dec 05
LEC 29
Class wrap-up
Slides:
pdf