CPSC 225: Introductory Programming
Department of Mathematics and Computer Science Hobart and William Smith Colleges Spring, 2003. Instructor: David J. Eck (eck@hws.edu) Monday, Wednesday, Friday, 1:55 -- 2:50 PM. Room Lansing 300. Course Handout: http://math.hws.edu/eck/courses/cpsc225_s03.html
General Information
- About your Linux account
- Programming style requirements for this course.
- About the g++ Compiler
- A first sample C++ program
- Short Introductions to Strings and Files
- A handout on binary trees in C++
Programming Assignments
- Assignment 1: Craps, Due January 22.
- Assignment 2: CGI, Part 1, Due January 29.
- Assignment 3: CGI, Part 2, Due February 7.
- Assignment 4: Decoding with files and arrays, Due February 17.
- Assignment 5: Game of Life, Part 1, Due February 26.
- Alternative Assignment 5: Bar Chart, Due on or before March 21.
- Assignment 6: Game of Life, Part 2, Due March 26.
- Assignment 7: Maze Solving, Due April 2.
- Assignment 8: Trees and Lists, Due April 28.
Assignments and other information about this
course, will be posted on this page as it is taught
during the Spring term of 2003.
End of Term: April 28 and May 6
Monday, April 28, is the last day of class. We will finish up the term by looking at how stacks and queues can be used instead of recursion. The final exam will be given on Tuesday, May 6, at 1:30 PM. It will be in our regular classroom. An information sheet about the exam is available, including a list of my office hours for the last week of the term. The exam is cumulative, so you shouldn't forget about material that was covered on the three in-class tests. Information sheets are still available for the first, second, and third tests.
Fourteenth Week: April 21, 23, and 25
We will finish inheritance and polymorphism (Chapters 14 and 15) on Monday and will move on to the next topic, templates. We will spend the rest of the term on templates and on stacks and queues, which we will cover as examples of templates. Templates are covered in the text in Chapter 16. Stacks and queues are in Section 17.2, although we will probably cover them in a little more depth that they are covered in the book.
The final assignment of the term is due next Monday, April 28.
Thirteenth Week: April 14, 16, and 18
We will continue working with the more advanced aspects of C++. You should read Chapter 8 and Section 10.3, which cover operator overloading, friends, copy constructors, this, and overloading the assignment operator. There are a few other things that are covered in short sections elsewhere in the text (inline functions on page 284, and initialization sections for constructors on page 261). We covered much of this material last week, and we will finish it on Monday and Wednesday of this week. Before the end of the week, we will move on to inheritance, derived classes and polymorphism. These are covered in Chapters 14 and 15.
The final assignment is available. It is due on the last day of classes, April 28. By the end of class on Monday, we will have covered everything that you need to know to do this assignment.
Twelfth Week: April 7, 9, and 11
Because of the weather and power loss this weekend, the test that was scheduled for April 7 is postponed until Wednesday, April 9. An information sheet is available for the test.
Aside from the test this week, we will finish up binary trees and begin covering some of the more detailed and advanced aspects of using classes in C++, including: inheritance, virtual functions, calling a constructor from a base class, copy constructors, operator overloading, friends, operator overloading.
Eleventh Week: March 31; April 2 and 4
We will move on from linked lists to binary trees this week. The reading is a handout on binary trees. (The section of the textbook on binary trees uses templates, so we will avoid it for now. It also covers less material than I would like to cover.)
There is a test on Monday of next week, April 7.
Tenth Week: March 24, 26, and 28
We will finish with recursion on Monday, and the next programming assignment will be on recursion. On Wednesday and Friday, we will be covering linked lists. The reading from the text is Chapter 17, pages 690 to 710. Notes that the rest of Chapter 17 uses templates, which we have not yet covered, so you should not try to read past page 710 at this time.
Ninth Week: March 17, 19, and 21
Class on Wednesday will be in Gulick 208, to begin work on Assignment 6.
If you are doing Alternative Assignment 5, remember to turn it in by Friday of this week.
The plan for the next few weeks is to work on recursion and linked data structures. These are the main topics that will be covered on the next test (April 7). For this week, you should read 13, which covers recursion. You should be familiar with the examples in this chapter, but I will do several more advanced examples in class. Recursion will be a major tool for working with linked data structures, especially binary trees. If you would like some additional information on recursion, note that Section 11.1 of my on-line Java text covers recursion.
Eighth Week: March 3 and 5
There is a test on Monday, March 3. An information sheet is available.
There is no class on Friday this week, because of Spring break. Classes resume on Monday, March 17.
Seventh Week: February 24, 26, and 28
You should read Chapter 9. We will continue working on Chapter 10 this week, and will look briefly at some of the material in Chapter 9. (Much of Chapter 9 deals with C++ strings, which we have already covered. It also introduces C-style strings). I will not cover all the details of the material in Chapters 9 and 10.
There will be a test on Monday of next week. The fifth assignment is due this Wednesday. There will not be another assignment until after Spring Break, but I strongly recommend that you work on some of the self-test exercises and think about some of the programming projects from the text.
Sixth Week: February 17, 19, and 21
You should have read Chapter 6 and Section 7.1 last week. This week, we will start discussing pointers. You should read Chapter 10. The fifth programming assignment is due next Monday. [Postponed until Wednesday.]
Fourth Week: February 3, 5, and 7
The first test of the term will be given on Wednesday. An information sheet about the test is available.
We will finish Chapter 5 this week and, hopefully, get started on Chapter 6.
Third Week: January 27, 29, and 31
You should read Chapters 4 and 5. On Wednesday, I will hand out the next assignmnent, and we will spend some time going over that. In particular, the assignment contains a lot of information that you should consider to be required reading. There is a test next week on Wednesday. The assignment will be due on Friday.
Second Week: January 20, 22, and 24
You should read the handout on files and strings. This will give you the basic information about these topics that you will need in the next few programming assignments. You should also read Chapter 3, which begins the study of functions in C++. This study will be continued in Chapter 4, which we might start by the end of the week.
First Week: January 13, 15, and 17
In the first week of the term, we will look at the basic structure of C++ programs and how they compare to Java programs. You should read Chapter 1 and Chapter 2 in Absolute C++. Also read Section 3.1, which is about predefined functions in C++. You might also want to look through C/C++ Programmer's Reference, to see how it is organized. The first programming exersice will be assigned before the end of the week.