CS116 Winter Quarter 2001: Introduction to Programming II (C++)

People Books Downloads

People

Instructor

François FLEURET (fleuret@cs.uchicago.edu)
Office : Ryerson 156
Tel : 834-1477
Office hours : After class and by appointments
Courses : In Ryerson 276, 12:30pm-13:20pm, on Monday, Wednesday and Friday
Midterm exam : In Ryerson 276, 12:30pm-13:20pm, friday 02/09/01
Final exam : In Ryerson 276, 12:30pm-13:20pm, friday 03/09/01

Teaching assistants

Pradyut SHAH (pradyut+cs116@cs.uchicago.edu)
Office : Ryerson 163
Office Hours : 4:00pm-5:00pm on Wednesday and by appointment
Tutorial : In Ryerson 277, 4:30pm-5:30pm, on Tuesday

Lingyun YANG (lyang@cs.uchicago.edu)
Office Hours : In the Linux lab, 4:00pm-7:00pm, on Thursday and Tuesday

Tiger FENG (songyanf@cs.uchicago.edu)
Office Hours : In the Linux lab, 6:00pm-9:00pm, on Monday and Wednesday

Grader

Robert BRENART (rfbrenar@cs.uchicago.edu)

Books

C++ Primer, 3rd edition, by Stanley Lippman and Josee Lajoie
Addison-Wesley publishers, ISBN# 0201824701

Ruminations on C++, by Andrew Koenig and Barbra Moo
Addison-Wesley publishers, ISBN# 0201423391

Downloads

Under Linux, you can download a given file either with netscape or with the wget command. For example to download and view the slides for the lecture notes of 01/03/01, you can do :

> wget http://people.cs.uchicago.edu/~fleuret/CS116/downloads/cs116-010301.ps.gz
> gv cs116-010301.ps.gz

The filenames are the same form for other dates. You can view and print postscript files with gv, and PDF files with either gv or acroread.

Introduction

Informations about the course PS PDF

Lecture notes and homeworks

Week #1
01/01/01 No course
01/03/01 Memory, CPU, files PS PDF
01/05/01 Linux shell, basic C++ statements (variable declarations) PS PDF
Homework, due 01/12/01 (UNIX commands and basic loops) PS PDF
Week #2
01/08/01 Expressions, functions (1) PS PDF
01/10/01 Functions (2), arrays, pointers, pointers to arrays PS PDF
01/12/01 Dynamic memory allocation, misc. about non-OO syntax PS PDF
Homework, due 01/19/01 (functions, polynomial evaluation, matrix product) PS PDF
Functions to create and delete matrices iomatrix.cc
Week #3
01/15/01 Notion of algorithm costs, big-O notation, sort algorithms (1) PS PDF
01/17/01 Sort algorithms (2), introduction of the class keyword PS PDF
01/19/01 Member functions, constructors, destructors PS PDF
Homework, due 01/26/01 (big-O, quick-sort, Mandelbrot set) PS PDF
Week #4
01/22/01 Details about classes, copy constructor, = operator, a matrix class PS PDF
A matrix class matrix.cc
01/24/01 Details about member operators, implicit conversions, a linked list class PS PDF
A linked list class linkedlist.cc
01/26/01 Usage of member functions, overloading the stream operators, first steps in inheritance PS PDF
Homework, due 02/02/01 (polynomial class) PS PDF
Week #5
01/29/01 Inheritance, details about constructor/destructor calls and memory organization PS PDF
01/31/01 "Find the bugs" and "what is printed" exercices (1) PS PDF
The quick-sort source code qsort.cc
The mandelbrot tracer source code mandel.cc
02/02/01 "Find the bugs" and "what is printed" exercices (2) PS PDF
Homework, due 02/09/01 (drawing complex mesh) PS PDF
A complex-number class complex.cc
Week #6
02/05/01 No course
02/07/01 Midterm exam preparation PS PDF
02/09/01 Midterm exam PS PDF
Week #7
02/12/01 Virtual functions, pure virtual functions, example of graphical layout PS PDF
Some graphical layout using virtual functions glayout.cc
02/14/01 Box and arrows exercices, usage of virtual classes for mathematical functions PS PDF
Mathematical functions defined with virtual classes functions.cc
02/16/01 "What does it do" exercices with virtual classes, references to virtual classes PS PDF
Homework, due 02/26/01 (z-buffer) PS PDF
Some formulas to help for the z-buffer homework PS PDF
Week #8
02/19/01 Notion of abstract iterator (1), smart copies with reference-counting PS PDF
02/21/01 Formal derivation of mappings, dynamic cast, summary about classes PS PDF
02/23/01 string class, abstract iterator (2), exercices about iterators and mapings PS PDF
Iterators iterators.cc
Week #9
02/26/01 Homework, due 03/05/01 (ray-tracing) PS PDF
02/28/01 Templates PS PDF
03/02/01 Tree structures, implementation, and a bit of design pattern PS PDF
The tree class and template stack class trees.cc
Week #10
03/05/01 Final exam preparation : question session
03/07/01 Summary of everything, exercice : write a picture class PS PDF
03/09/01 Final exam (with solutions) PS PDF

The CS116 library and include files

I wrote two simple classes to play around with sockets (network connections) and graphics. This library and include files are available only for GNU/Linux and SUN computers.

CS116 library for graphics & network for GNU/Linux libcs116.tgz
CS116 library for graphics & network for SUN libcs116-sun.tgz

You can download and unarchive the file with :

> wget http://people.cs.uchicago.edu/~fleuret/CS116/downloads/libcs116.tgz
> tar zxvf libcs116.tgz
README
libcs116.a
swindow.h
ssocket.h
>
The README file gives you simple instructions to test the library.

This page is weblint compliant. Mail comments to François Fleuret