22C:30, 22C:115 Computer Science III
10:30-11:20 MWF Room 321 CB
Instructor:
Sriram V. Pemmaraju
101G MLH, sriram@cs.uiowa.edu, 319-353-2956
Office Hours: MWF 11:30-12:30
This is the third in the sequence of core undergraduate computer science
courses and is required for all computer science majors and minors.
It builds on the first two courses, Computer Science I (22C:16) and
Computer Science II (22C:20) and is concerned mainly with data structures,
algorithms for accessing and manipulating data structures,
and the application and uses of data structures.
C++ is the programming language of choice for this course.
Syllabus document,
Information about TAs,
Announcements,
Homeworks and Exams,
Sample code,
Online Resources
There are two TAs for the course: Michael Decoster and Justin Miller.
They will lead 2 discussion sections each.
Section Time Location TA
A02 10:30-11:20 Tuesday 218 MLH Michael Decoster
A03 9:30-10:20 Tuesday 114 MLH Justin Miller
A04 4:30-5:20 Tuesday 218 MLH Justin Miller
A05 11:30-12:20 Thursday 151 SH Michael Decoster
Contact information and office hours for the TAs are as follows:
Name Email Office and Phone Hours
Michael Decoster mdecoste@cs.uiowa.edu 101J, MLH, 353-2549 9-10 M, 8-9 W, 9-10 F
Justin Miller jier@cs.uiowa.edu B20J, MLH, 335-3650 5:30-6:30 T, 1:30-2:30 W, 2:30-3:30 Th
- homework 1. Due on Monday, 9/15. See
announcements below for any additional information on homework 1.
- project 1. Due on Tuesday, 10/7.
- Solution to homework 1.
- Information on Exam 1.
- Exam 1 (pdf).
- Exam 1 Solution.
- homework 2. Due on Friday, 10/17.
- project 1 solution.
- project 2. Due on Friday, 11/7.
- Clarifications on Project 2.
- Homework 2 Solution.
- Exam 2 Solution.
- homework 3. Due on Monday, 11/17.
- homework 3 extra credit. Due on Monday, 12/1.
- The header for the queue class in Problem 2, Homework 3 is
incomplete. It is missing a constructor and a destructor. Here is the complete header.
- A new timer class: atimer.h, atimer.cxx and a program that tests this class: atimertest.cxx. A student in our class, Amir Elaguizy, has
contributed this timer class. It provides the same functionality as the
timer class I provided a link to in Homework 3, but provides better precision. He has tested it on Linux machines in the lab.
- project 3. Due on Wednesday, 12/10.
- Homework 3 Solution.
- For common problems with your solutions to Homework 3.
- project 2 solution.
- Homework 3 Extra Credit Solution.
- Common problems with your solutions to Homework 3 extra credit.
- project 3 submission guidelines. The project is due on Wednesday, 12/10.
- homework 4. Due on Wednesday, 12/17.
- Instructions for producing pdf for Windows applications. part 1 and
part 2. Thanks to Fadi Towfic.
- Information on the Final Exam.
- The discussion sections will not meet during the first week (8/25-8/29)
of classes
- One of our TAs, Justin Miller is placing notes from his discussion section
meetings here.
- To use the BigInt class for homework 1, you need the following
definition of a vector class: tvector.h and
tvector.cxx.
- Read Section 5.1 for material related to the vector class.
- Read Sections 12.1 and 12.2.3 for material related to the graph class.
- Next week (9/22-9/26) the discussion sections will focus on project 1.
- Exam 1 will take place on Friday, September 26th in our usual classroom (321 CB) at our
usual classtime (10:30-11:20 am). Here is some information
about the exam.
- Preliminary information on exam performance.
- How to submit your projects.
- Grading guidelines for Project 1.
- We have assigned 4-digit class IDs to students. We will use these to post
your grades. Please stop by during my office hours or between 10 am and 11 am
(Tuesday or Thursday) this week (10/13-10/17) to pick up your class ID.
- More examples of recursion will be covered in your discussion sections
this week (10/13-10/17).
- The discussion sections will focus on Project 2, this week (10/20-10/24).
- Grades thus far (posted: 10/20).
- Project 1 solution has been slightly updated (10/27). Download and
use the latest version.
- Exam 2 is this Friday (10/31).
Here is some information about the exam.
- Common problems in your solutions to homework 2.
- Grading guidelines for Project 2.
- The discussion sections will focus on running time analysis, this week (11/10-11/14).
- Read Chapter 3 from the textbook for more information on running time analysis.
- Grades thus far (posted: 12/2), with tentative
letter grades. Please report any errors.
- Project 3 is due on Wednesday, 12/10 (not Monday 12/10) as was
announced earlier.
- Grades thus far (posted: 12/10). These are
up-to-date pre-final grades. Please report any errors.
- The two errors in Homework 4 have now been corrected (12/14).
- I will have office hours on Monday (12/15) between 11:30 and 12:30.
- Final exams are graded. You may pick these up on Friday (12/19); I'll be available all day.
- Final Grades (posted: 12/21).
- Version 1 of the graph class from my spring 2002 offering of CS III: graph1.h,
graph1.cxx, node1.h, node1.cxx, edge1.h, and edge1.cxx.
- The new apvector class, downloaded from Astrachan's page and modified slightly to make sure that it compiles
without warnings in newer compilers:
apvector.h,
apvector.cxx.
Here is some information on how to
compile the apvector class and programs that use it.
- The node class and the linked list toolkit are defined here: listNode1.h, listNode1.cxx.
- The matrix class: matrix.h, matrix.cxx and a program that tests this class: testMatrix.cxx.
- A new timer class: atimer.h, atimer.cxx and a program that tests this class: atimertest.cxx. A student in our class, Amir Elaguizy, has
contributed this timer class. It provides the same functionality as the
timer class I provided a link to in Homework 3, but provides better precision. He has tested it on Linux machines in the lab.
- Past offering of the course:
Spring 2003, Professor Lawrence,
Fall 2002, Professor Pemmaraju.
- Text book webpage:
Data Structures and Algorithms in C++.
- C++ resources:
A Quick Introduction to C++,
Java
to C++ Tutorial,
Another C++ Tutorial,
C++ Resources for CS1 and CS2,
C++ Programming HOW-TO
- General Unix resources:
UNIX Help,
Commonly used UNIX
commands
- Unix editors:
Introduction to vi,
Introduction to emacs
- Miscellaneous:
Michael Main's homepage,
FTP Site for GNU Compiler for Windows
- On AVL Trees:
Notes from San Diego State,
Notes from Australia