[MSOE Homepage]

Dr. Taylor's MSOE homepage


Unix is a Four
Letter Word

Photo Album

Personal Homepage

Issues related to MSVC++ 5.0

Standard Template Library Info


Lab 1 -- Electronic Submission

Lab 2 -- MSOE C++ programming environment

Lab 3 -- Gas Mileage

Lab 4 -- Maze Program

Lab 5 -- Hamming Coder

Lab 6 -- Graphical User Interface

Final Project -- Image Processing

CS-182 - Computer Programming

Winter Quarter 1998-1999

Electrical Engineering and Computer Science Department
Dr. Christopher C. Taylor

S-331, 277-7339
t a y l o r@m s o e.e d u (remove spaces)

This course provides an introduction to software development using an object-oriented approach and the C++ programming language. Particular emphasis is placed on the design process and the reuse of existing software components, which are critical to the development of large software systems. (prereq: CS-100 or a high school programming course, MA-125 or equivalent) (3-3-4)


  • Understand and be able to apply the Standard Template Library (STL) vector and list classes.
  • Understand basic aspects of the object model.
  • Understand and apply basic high-level programming language syntax.
  • Be able to design and implement small C++ programs.
  • Understand and be able to apply selection and iteration in C++ programs.
  • Understand and be able to apply C++ functions.
  • Be able to use existing C++ class libraries.


C++ Program Design, An Introduction to Programming and Object-Oriented Design, 2nd Ed., by James P. Cohoon and Jack W. Davidson, McGraw-Hill, 1999.

My Schedule

11:00 CS285 S360 Office Hour CS285L CC61 CS285 S360 X
12:00 X CS285L S210 CS285L CC61 Office Hour Office Hour
1:00 DEPT MTG CS285L S210 CS285 CC05 Office Hour CS285 CC05
2:00 Office Hour CS182L S210 Office Hour Office Hour
3:00 CS182L S210
4:00 CS182 L307 CS182L S210 CS182 L307 CS182 L307
and by appointment.


A quiz will be given at the beginning of each lab period. The lowest quiz score will be dropped. No make-up quizzes will be given.


Each student must submit an individually written report for each laboratory assignment. Reports should include software code written as part of the lab project and should conform to the specified documentation standards. There is a 10% per business day late penalty for lab reports submitted after the scheduled due date. No reports will be accepted after 4:30pm, February 19, 1999.


There will be two hour exams and a comprehensive final in this course. It is your responsibility to be present for all exams. Please contact me in advance if you have a valid conflict with a scheduled exam.


Quizzes: (Weekly)


Lab projects:


Exams (Dec. 17 and Jan. 27):


Final exam: (TBA)





Attendance in class and lab is expected. If you decide to drop out of the course, it is your responsibility to notify the registrar. I will not drop you for missing class. If you stop coming to class without notifying the registrar that you are dropping the course, it is likely that you will receive an "F" grade.


Students are expected to act in a professional manner in dealing with all matters pertaining to this course. In particular, deceptive practices of any sort are unacceptable. Note that copying is not necessarily unprofessional; engineers copy good ideas from many sources all the time (subject to ethical and legal constraints). If you do copy something, you must give explicit credit to the source (e.g., article, book, web URL); also, be sure you understand anything that you copy, as I may choose to quiz you orally over that material.

Lab projects are to be your own work. This does not mean that you cannot discuss ideas and approaches with other students or faculty, but the final product must be yours alone. At times it may be difficult to know where to draw the line between beneficial cooperation and parasitic freeloading. For this course, it is not legitimate to collaborate to the extent of sharing a solution to all or part of a particular lab project. In particular, you should never be in possession of a copy (in any form) of all or part of another student's source code. If you have any question as to what types of cooperation are acceptable, please talk to me.


You are responsible for assignments and announcements made in class or lab. In addition, you should periodically check your email account and the Web pages for this course.

Special Needs

If you have special educational needs, it is your responsibility to meet with me in my office in the first three weeks of the quarter to discuss them.

Feedback Wanted

I am interested in your feedback on how I can make this course better. Please feel free to stop by my office, send me email, or drop an anonymous note in my departmental mailbox with suggestions on how I can make this a better class for you. Don't wait until evaluation time because I won't see those comments until the quarter is over.

Electronic Submission Procedure

All laboratory reports for this course must be submitted electronically. You are responsible for ensuring that each report is emailed to me. In particular, it is your responsibility to make sure you type in the correct email address, etc... All reports will be graded and returned to you by email. The graded reports will be in Adobe Acrobat's Portable Document Format (PDF).

Tentative Schedule