| Instructor: | Paul Lalli |
| 004 Lally, 518-276-8988 | |
| e-mail lallip@cs.rpi.edu | |
| Texts: | C++ How to Program (3rd Ed.) |
| H. M. Deitel & P. J. Deitel | |
| Prentice Hall, 2000 | |
| Class Time: | M/T/W/R 10am - 11:50pm |
| Office Hours: | Tuesday/Thursday 1pm-2pm |
| Quizzes passed | Final Grade |
|---|---|
| 22-23 | A |
| 19-21 | B |
| 16-18 | C |
| 13-15 | D |
| 0-12 | F |
June 6 - Beginning Monday, June 10, 2002, class will be permanently moved to Sage 4510
May 23 - Online Quiz-Taking is now available. Details to be given in today's class.
Prerequisites: The prerequisite for the course is Computer Science I or the equivalent or extensive programming experience and knowledge of fundamental programming concepts. In particular, students should have mastered the following topics: one and two dimensional arrays, nested loops, function calls, parameter passing and scope of variables in C, C++, Java, or Pascal. Students are not expected to know the C++ programming language, but it is assumed that they can learn the basic syntax of C++ quickly.
Course structure and grading: The primary goal of the course is to make students excellent programmers, and programming is something that one learns by doing, not by listening to someone talk about it. Thus, there will be very limited formal lecturing in the course; the course will consist of a series of 23 worksheets. Most worksheets will have reading assignments associated with them, and will contain several exercises which must be done at the computer outside of class. Each worksheet is designed so that a conscientious student can do the reading and the exercises in about three hours outside of class.
Class time will be spent doing exercises (quizzes) based on the previous worksheet. Most of these will be programming exercises, but some will be paper and pencil. In general, programming exercises are open book/open notes, but paper and pencil exercises may be closed book/closed notes. Exercises will be graded on a pass/fail basis. You must work independently on each in-class exercise. You will have between 10am and 12pm to complete each quiz. For most quizzes, if you fail (or fail to complete it in the alotted time), you will have the opportunity to take another quiz on the same worksheet, up to four times.
You must pass all 23 quizzes to get an A. Students who pass 20-22 exercises will get a B, students who pass 17-19 exercises will get a C, students who pass 14-16 exercises will get a D.
Topics: Here are the worksheet topics. This list may change as the course progresses. The in-class exercises will be done on the date shown.
| 5/20 | Intro. to C++, Compiling, Control structures (D&D Ch 1,2) (no graded exercise) |
| 5/21 | Data Types, (ints, floats, chars, arrays) (D&D 4.1 - 4.4) |
| 5/22 | Functions and function calls (D&D 3.1-3.11, 4.5) |
| 5/23 | Pointers (D&D 5.1-5.10) |
| 5/27 | NO CLASS |
| 5/28 | More on pointers, strings (D&D 5.12) |
| 5/29 | Still more on pointers |
| 5/30 | Defining your own data types, classes (D&D 6.1-6.7) |
| 6/3 | More on classes (D&D Ch 7) |
| 6/4 | Good Program Design, debugging, the string class |
| 6/5 | Operator Overloading (D&D Ch 8) |
| 6/6 | The copy constructor, overloading the assignment operator |
| 6/10 | Inheritance (D&D Ch 9) |
| 6/11 | I/O, files (D&D 11.1 - 11.4, 14.1 - 14.6) |
| 6/12 | Templates (D&D Ch 12) |
| 6/13 | Algorithm Analysis |
| 6/17 | Abstract Data Types |
| 6/18 | Linked Lists (D&D 15.1-15.4) |
| 6/19 | Recursion |
| 6/20 | Trees |
| 6/24 | The Standard Template Library (D&D 20) |
| 6/25 | More on the Standard Template Library |
| 6/26 | More trees |
| 6/27 | Hash Tables |
| 7/1 | Choosing the best data structure |
Policy on Academic Dishonesty: Students are allowed to (and in fact are encouraged to) work on the exercises of the worksheets together.
However, all quizzes must be done independently, without consulting with other students. In addition, students are not allowed to discuss the quizzes with other members of the class or to let other students know the nature of the questions on the quizzes. Placing a solution to any quiz in a public directory, mailing a solution to another student, or showing the solution to another student is not permitted. Students found violating this policy will be penalized two letter grades for the first incident, and will fail the course for the second incident.
If two or more students submit very similar or identical code, it will be assumed that one copied from the other. I will not attempt to determine who copied from whom, both students will be penalized. If another student in the class asked to see your solution to a quiz, you must always refuse.
After a quiz has been graded, you may save it in a private subdirectory of your RCS home directory (the H drive) or a private directory on your PC. If you are on a public workstation, you must delete the source file(s) from the workstation, so that another student will not have access to your work. It is your responsibility to make sure that your code is not available to other students. Leaving your code in a public directory can be construed as a violation of the academic integrity policy.
Any use of a chatting service, (Instant Messenger, ICQ, chat, irc, etc), during a quiz will constitute cheating on that quiz and will result in the immediate failure of that quiz. In the event that this occurs, the student will not be allowed to make-up that quiz. Use is defined as having the service running even if no chatting is actively taking place, or if the chatting is not about the course.