UCSD Extension CSE 40028: Introduction to Programming
Philip J. Mercurio

Note: I am not currently teaching this class. This page refers to the last time I taught it, in Winter of 2002.
The full course notes are now available from the course notes page below.

Winter 2002
Section #032340

Introduction to Programming is divided into 8 topic areas. The table below shows the topics for each lecture, along with the reading assignments in Rescued By C++ (3rd edition) (RBC):

Lecture 1
Wednesday, January 16

Computers & Data
RBC 1-5


Lecture 2
Wednesday, January 23

Instructions
RBC 6


Lecture 3
Wednesday, January 30

Flow
RBC 8-10


Lecture 4
Wednesday, February 6

Objects
RBC 20, 23-28


Midterm

Lecture 5
Wednesday, February 13

Pointers & Arrays
RBC 18, 19, 22


Midterm Due

Lecture 6
Wednesday, February 20

Input/Output & Events
RBC 7


Lecture 7
Wednesday, February 27

Algorithms
_


Final

Lecture 8
Wednesday, March 6

Libraries & Languages
_


Final Due

Textbooks:

rbc.gif (5052 bytes) notes.gif (2961 bytes) hcpw.gif (9030 bytes)
Rescued By C++
Kris Jamsa

3rd ed., 1997 Jamsa Press
ISBN 1-884133-59-2

Required

Introduction to Programming Course Notes
Philip J. Mercurio

Course notes page

Required

How Computer Programming Works
Daniel Appleman

2nd ed., 2000 APress
ISBN 1-893115-23-2

Recommended

Reading Assignments: The chapters in RBC listed above, along with the corresponding section of the course notes, are required reading for each week. Type in the example programs presented in the readings, get them to run on your computer, and experiment with them to make sure you understand the key concepts.

Grading Policy : Attendance at each of the lectures is worth 1 point (no excuses for missed classes are accepted). Please make sure you sign the attendance sheet each week. There are two take-home, open-book, open-note programming projects. You will need access to a computer and a C++ compiler to work on the projects. You may even get help from an experienced programmer when working on the projects, but you may not collaborate with another student. The midterm project is worth 4 points, and the final project is worth 11, for a grand total of 23 points. A total of nine points is required to pass the class.

Obtaining a C++ Compiler: Each student will need access to a C++ programming environment (often called a compiler). There are many compilers available for each operating system. Of those I'm familiar with, here are my recommendations for students in this course:

Windows 95/98: Al Stevens, a writer for Dr. Dobb's Journal, has written a freely-available C++ programming environment called Quincy. Quincy is based on the GNU compiler:

http://www.alstevens.com/quincy2002/index.html

I'll be using Quincy in demonstrations during class.

Note: the 3rd edition of Rescued By C++ includes a copy of the Turbo C++ Lite compiler on CD-ROM. Unfortunately, I've tested this compiler and it is too buggy to be useful for this class. One bug in particular makes it impossible to complete the final project.

Macintosh: I've only used one Mac compiler, so it's the only one I can recommend: Metrowerks' Code Warrior, at:

http://www.metrowerks.com

Code Warrior is a commercial product, it is not freely available.

Unix and other OSes: First check with your system administrator to see if there is a C++ compiler already installed. If not, I recommend the GNU Compiler, GCC:

http://gcc.gnu.org