CSE1502 - Introduction to Software Development with C++

Matt Mahoney
Spring 2007


Lab instructors

Help Desk Schedule room EC272.

Schedule (Spring 2007)

Jan. 8 to Apr. 27, 2007. No class Jan. 15, Feb. 19, Mar. 5-9.

Lectures: Mon. and Wed., 12:00-12:50 PM, room A110 (Aeronautics auditorium), by Matt Mahoney.

Labs: Mon., Wed., and Fri., 8:00-8:50 AM, 10:00-10:50 AM,or 11:00-11:50 AM, depending on your section. Labs will be taught by the lab instructors. Room: Olin EC228/229 (combined rooms). You may switch sections if space is available.


C++, How to Program, 5th Ed., Deitel. Read chapters 1-8. Code examples.
Also read Introduction to C++.

Suggested exercises and programming examples
Homework Assignments

Mailing list

All students are expected to join the CSE 1502 mailing list. You are responsible for material posted to this list by instructors. You are also encouraged to post questions or answers about C++ or your homework here, because other students might have the same questions.

Grading policy

Exams (40% of grade)

Your exam grade is the average of the best three grades after dropping the lowest grade. There are no makeup exams for any reason. All exams are weighted equally. If you miss an exam (including the final), then that is your drop. All exams are open book and open notes, but no computers or electronic devices are allowed.

Fall 2006 exams
Exam 3
Final exam

Lab assignments (30% of grade)

Lab assignments are short programs written and tested in class (EC228/229) on the provided computers and graded automatically by the submit server. Assigmments are pass/fail with no partial credit. The submit server requires exact output. You will be given practice exercises before your first graded assignment. Your grade will be the percentage of assignments passed after dropping up to two failed or missed assignments. Labs will be scheduled, assigned, and graded by the lab instructors. There are no makeups for missed labs for any reason.

Homework (30% of grade)

Homework assignments will be longer programming assignments graded manually for correct design, function, documentation, and neatness. Partial credit is given based on my subjective opinion of how well you understand and describe the problem in comments (the specification), your approach (design), and testing (whether it works or gives appropriate error messages for unusual or unexpected inputs). Grading depends on human readability as well as machine readability. Code should be indented using the style in the book. Major sections should be commented. Variable names should be self documenting or their purpose should be commented as appropriate. Your homework should include your name and email address in the comments.

Homework must be submitted by email by midnight of the due date. Late assignments are penalized 20% per day. You may submit homework early for me to comment on, and submit revised versions later without penalty. I will grade only the best version.

You must cite all sources of outside help in your comments, including help received from other students or the Internet. Copying code or allowing your code to be copied is not allowed. Group assignments are not allowed. You are expected to know the CS department policy on academic honesty. Penalties for cheating can range from a zero on the assignment to expulsion from the university.

Final grade = (average of top 3 exams) * 0.4 + (average of lab assignments with lowest two dropped) * 0.3 + (average of homework grades) * 0.3.
90-100=A, 80-89=B, 70-79=C, 60-69=D, 0-59=F.

Fall 2006 syllabus with homework and exam solutions.


You will need a C++ compiler for your home computer. You may use any standard ANSI C++ (released since 1999) compiler under any operating system (Windows, UNIX, Linux, Mac). I recommend (but don't require) MinGW g++ for Windows or GNU g++ for other operating systems. All of the following are free under Windows:

MinGW g++. This runs from a command window only. Download and run the installer (MinGW_Toolbox_Setup.exe, 23 MB). Add C:\mingw\bin to your PATH.

Visual Studio 2005 Pro or Standard. You will need a TRACKS account and be registered for this class to download it. This has a GUI and lots of features. The Pro version download is 2.8 GB (DVD image). Not recommended for older machines or slower connections. To install, download the 4 .rar files, unrar e *.rar, then burn a DVD from the .iso file or use the provided program to mount the .iso to disk and run vs\autorun.exe as administrator.

Borland C++ 5.5. This runs from a command window only. Works on old machines. Click on "compiler", register, and download the installer (8.7 MB). After installing, add C:\Borland\BCC55\bin to your PATH and create the file C:\Borland\BCC55\bcc32.cfg exactly as shown below:


Digital Mars C++ Compiler 8.49. This runs from a command window only. Works on old machines. Unzip stlport.zip (2 MB) and dm849c.zip (3 MB) in C:\ to install in C:\dm and add C:\dm\bin to your PATH.

Be sure to test your compiler by writing a simple program, compiling, and running it, e.g.

// Paste this file into notepad and save as hello.cpp
// To compile from a command window:
//   MinGW:   g++ hello.cpp -o hello.exe
//   Borland: bcc32 hello.cpp
//   Mars:    dmc hello.cpp -IC:\dm\stlport\stlport
// To run: hello
// In Visual Studio: create new project, select Win32 console application, 
//   uncheck "precompiled headers", delete the supplied code, replace with this code
//   and click Build project, Debug/Start debugging.
#include <iostream>
using namespace std;
int main()
  cout << "Hello world\n";
  return 0;