CSCI 2270 Computer Science 2: Data Structures
Spring 2003
Karl Winklmann
 

Recent news items :

  1. Exemptions from final exam

    Anyone who has earned all 900 possible points so far can afford to get zero points on the final and would still get an A (not an A-) in the course. Such people can therefore afford not to show up for the final.

    Extending this exemption a bit further, we will assume that anyone who has earned 875 or more points so far would easily get 25 points or more on the final and hence get an A for the course. Such people can therefore also afford not to take the final and still get an A.

    Posted: Wednesday, April 30, 2003.

  1. A sample final exam is posted. Also solutions.

    Posted: Friday, April 25, 2003.

 

Home page

Monday, January 13, 2003 [Edited March 2 and March 14, 2003.]

 


Next page | Schedule and syllabus | Home Page | Bulletin Board | Current notes | Assad's Page | Programs | Table of contents | News archive | Dora

This page is on the web at http://www.cs.colorado.edu/~karl/2270.spring03/.

Purpose of course

This course will cover two subjects:

Data structures

Methods for organizing data in computer memory. How to choose the best methods depending on properties of the data and requirements for access and updates.

C++ 

Building structures from arrays and pointers. Using classes and objects to stay organized and create reusable software. Using library classes.

Staff

Instructor

Karl Winklmann, ECOT 725, karl@cs.colorado.edu, phone 303-492-6380. Office hours M 2:10-2:50 and W 2:10-3:20. For short questions, it is probably most convenient to catch me before or after class in the classroom.

Teaching Assistants

TA hours in ECCR 1B54/56 are as follows:
Mon  11:00-12:30  Alan    ECCR 1B54/1B56
Tue   1:30- 2:30  Damon   ECCR 1B54/1B56
Wed  11:00-12:15  Alan    ECCR 1B54/1B56
Wed   3:00- 5:00  Shea    ECCR 1B54/1B56
Thu   3:00- 5:00  Shea    ECCR 1B54/1B56
Fri   3:00- 4:00  Damon   ECCR 1B54/1B56
Fri   3:00- 5:00  Shea    ECCR 1B54/1B56
Note the location.

Recitations

All recitations are held in ECCH 105.
R011   T    0930AM-1045AM    ECCH 105    Alan
R012   T    1100AM-1215PM    ECCH 105    Shea
R013   T    1230PM-0145PM    ECCH 105    Shea
R014   T    0200PM-0315PM    ECCH 105    Assad
R015   T    0330PM-0445PM    ECCH 105    Assad

R021   R    0930AM-1045AM    ECCH 105    Alan
R022   R    1100AM-1215PM    ECCH 105    Shea
R023   R    1230PM-0145PM    ECCH 105    Assad
R024   R    0200PM-0315PM    ECCH 105    Damon
R025   R    0330PM-0445PM    ECCH 105    Damon
 

Textbooks

Required:

Michael Main and Walter Savitch, Data Structures and Other Objects Using C++, Second Edition, Addision Wesley, ISBN 0-202-70297-5.

Recommended:

Mike Loukides and Andy Oram, Programming with GNU Software, O'Reilly and Associates, Inc., ISBN 1-56592-112-7.

Schedule and syllabus

The timing of the lecture topics may shift somewhat depending on how quickly we cover some of the material. Due dates of assignments and exam dates normally don't change. [But due dates of Assignments 4 and 5 have changed, to bring their timing more in line with lecture topics.]
 

  Week of ... Class topics + reading assignments Recitations Assignments

1. January 13-17 Overview.
Objects and classes.
Logistics. Basic Unix commands. Assignment 1 handed out (using classes and objects).
2. January 21-24 Objects and classes, continued.
Read Chapter 2.
emacs, submission of assignments.
3. January 27-31 Container classes.
Read Chapter 3.
Finishing Assignment 1. Assignment 2 handed out (using container classes).
Assignment 1 due Friday, February 7.
4. February 3-7 Dynamic arrays.
Read Chapter 4, Sections 4.1-4.4.
Interactive debugging with gdb. Permissions, RCS.
5. February 10-14 Pointers and linked lists.
Read Chapter 5.
Finishing Assignment 2. Assignment 3 handed out (using linked lists).
Assignment 2 due Friday, February 21.
6. February 17-21 Queues, stacks and trees.
Covered in Chapters 7-10.
More gdb.
7. February 24-28 Recursion.
Heapsort (Sections 11.1 and 13.3).
Finishing Assignment 3. Assignment 4 handed out (using trees).
8. March 3-7 Binary search trees (Section 10.5). Sample exam problems. Assignment 3 due Friday, March 7.
9. March 10-14 Monday, March 10, Midterm Exam (about dynamic arrays, linked lists, heaps).

Wednesday and Friday: Parse trees. Discussion of Assignment 4.

Recursive tree drawing.
10. March 17-21 Various structures (B-trees, skiplists, ... ) Assignment 4 due Wednesday, March 19. [Note that this is a change from the originally posted due date.] [Further postponed to Friday, April 4, because of the snow closure.]

  March 24-28 Spring Break  
11. March 31-April 4 Graphs (Chapter 15).

Wednesday and Friday: Discussion of Assignment 5.

Sample lab exam. Assignment 5 handed out (about graphs).
Assignment 4 due Friday, April 4. [Once more postponed, to Monday, April 7, because of disk space problems in the lab.]
12. April 7-11 Graphs, continued. Lab exam 1 (extensions to Assignment 4). Assignment 4 due Monday, April 7.
13. April 14-18 Various sorting algorithms (Chapter 13).
Limits on sorting.
Linear-time sorting.
Finishing Assignment 5. Assignment 5 due Friday, April 18. [Note that this is a change from the originally posted due date.]
14. April 21-25 Hash tables (Sections 12.2 and 12.3).
Demos and review.
Lab exam 2 (extensions to Assignment 5).
15. April 28-May 2
Demos and review, continued.
  Final Exam
  • Saturday, May 3, 10:30AM-1PM, if you attended the MWF 11am lecture (in ECCR 245);
  • Tuesday, May 6, 1:30-4:00PM, if you attended the MWF 1pm lecture (in ECCR 200).
Exams take place in the room where the lectures were held (ECCR 245 and ECCR 200, respectively).

Grading policies

Due dates and late policy

Assignments are always due Fridays at 10PM (Correction: 11PM). You loose 20% of the points for each day of being late. You lose the whole 20% at the stroke of 10PM (Correction: 11PM). Weekends count as one day.

Assignments

There are a total of five programming assignments and two lab exams. On the programming assignments you are very much encouraged to collaborate but you have to write your own code.

Lab exams

There will be two "lab exams," where you will be asked to do some programming problems in your recitation and turn in your work electronically at the end of the recitation. The programming problems are always extensions of the previous programming assignment.

In-class exams

There will be one midterm and a final. These are held in the classroom.

Points and grades

The five programming assignments are worth 100 points each; each of the two lab exams is worth 150 points; the midterm and final are each worth 100 points. Thus there is a total of 1000 points.

Getting 900 or more points guarantees you an A, getting 800 or more points guarantees you at least a B, getting 700 or more points guarantees you at least a C, getting 600 or more points guarantees you at least a D, getting less than 600 points will get you an F.

+/- grades will be given to raise some grades. The extent to which this is done may differ among recitations since their lab exams may turn out to be of slightly different levels of difficulty (which we try to avoid but which can happen).

Collaboration

Again, you are very much encouraged to talk to each other about the programming assignments. You always have to write your own code, though.

The University of Colorado Academic Honor Code applies, of course.  


© Karl Winklmann               7:10 PM, Friday, May 2, 2003