CSE 232: Programming Skills Workshop

Professor: Chris Gill
Office Hours: Urbauer 116, Tue and Thu 2:30-4pm for the first 4 weeks of September 2008, or in Bryan 506 by appointment
Contact Info: phone: (314) 935-7538 e-mail: cdgill@cse.wustl.edu

Fall 2008

This page is available through: http://classes.cec.wustl.edu/~cse232/
and through: http://www.cse.wustl.edu/~cdgill/courses/cse232/


Course Description

This course is intended to give an overview of, and hands-on experience with, practical implementation and debugging skills to help beginning C++ programmers. Topics for discussion and practice exercises will include compilation and linking, debugging, memory management, pointers and references, and using code libraries provided with C++.


Times and Locations

All meetings of this course will be held in the Urbauer 116 Lab, from 2:30pm to 4pm on Tuesdays and Thursdays for the first 4 weeks of September, 2008.


Discussions/Lectures

The discussions/lectures will consist of a cycle of presentation, a hands-on exercise, and discussion and follow up questions. Each of the eight sessions will focus on a particular theme in C++ programming, and each session will build on material covered in the previous sessions. Slides from the presentations, and other relevant materials, will be linked to this web page in the section below, and also in the CSE 232 section of the Course Management System at "https://cms.engineering.wustl.edu/sites/cmslanding/" as we progress through the eight sessions of the course.

Date Topic Slides and Other Materials
Tue, Sep 2 C++ programming and the Linux shell

Presentation slides:
C++_unix_environment.ppt

Source code files: hello.cc and listargs.cc

Script files: build_hello.sh and build_listargs.sh

Makefile
Thu, Sep 4 Moving information into and out of C++ programs   Presentation slides:
C++_io_manipulation.ppt

Example code:
io_exercise0.cc
io_exercise1.cc
io_exercise2.cc
io_exercise3.cc
io_exercise4.cc
io_exercise5.cc
Tue, Sep 9 C++ programming in Visual Studio

Presentation slides:
C++_programming_in_Visual_Studio.ppt

Thu, Sep 11 Moving data within a C++ program Presentation slides:
moving_data_within_a_C++_program.ppt

Tue, Sep 16 Memory access in C++   Presentation slides: C++_pointers_and_references.ppt

Example code:
array_exercise0.cc
array_exercise1.cc
array_exercise2.cc
Thu, Sep 18 Memory management in C++ Presentation slides: C++_memory_management.ppt

Example code: array_exercise0.cc
array_exercise3.cc
array_exercise4.cc
Tue, Sep 23 Memory management in C++, part II   Presentation slides: C++_memory_management_II.ppt

Example code:
array_exercise5.h
array_exercise5.cc
Thu, Sep 25 Debugging tools and techniques Presentation slides:
C++_debugging_in_Visual_Studio_and_emacs.ppt

Example code:
Makefile

(for the first part of the lab)
prefix_adder.h
prefix_adder.cc


(for the second part of the lab)
bad_prefix_adder.cc



Texts and Other Resources

There will not be a required text for this course, but if you're looking for one that strikes a good compromise between completeness and readability, one the optional texts for CSE 332 is worth considering:

Other information sources:


Grading

Grading in this course will be based entirely on attendance at, and active participation in, the eight course meetings. If you are unable to attend one of the sessions for any reason, please contact the professor as soon as possible to arrange to make up the exercises, and to get help with any questions, for that session.