University of Maryland/Asian Division

CMIS 140 - INTRODUCTORY PROGRAMMING IN C++

Term 2 DE
1 Nov 2004 - 5 Mar 2005

David Wills
http:///sensei.ad.umuc.edu/dwills/
dwills97@yahoo.com

PREREQUISITE: CMIS 102
taking CMIS 102 and 140 in consecutive terms is recommended. This course concentrates on structured programming and introduces object-oriented programming concepts. It covers detailed algorithm design, the implementation of simple data structures and complex data elements such as arrays, structures, and enumerated types. It introduces object-oriented constructs such as classes and encapsulation. The discipline, methodologies, and techniques of software development are studied. There will be programming assignments in C++.

102 is a real prereq. You are expected to know the material covered in it for this class. If you don't know the material from 102 you won't be able to manage this course. Specifically, chapters 1-6 of the textbook are expected to have been thoroughly covered in 102.

COURSE DESCRIPTION: The course provides the student with the opportunity to design solutions to problems and implement those solutions by writing computer programs in the C++ programming language. The course examines the essential features of C++ for writing programs to solve complex problems.

COURSE OBJECTIVES: On successful completion of this course, you will be able to:

  1. understand what computer programming is about by having done lots of it.
  2. design algorithms that represent solutions to a given problem.
  3. implement an algorithm by writing, testing and debugging programs in C++.
  4. Topics covered include:

REQUIRED TEXTBOOK:
Programming and Problem Solving with C++ 3rd Edition, by Dale, Weems, and Headington.

We will cover chapters 9, 7, 8, 10, 11 (part), 12, and 13 in the textbook (see the schedule below). Chapters 1 thru 6 are assumed to have been covered in CMIS 102. You are strongly encouraged to work the exercises at the end of the chapters.
Note: you should already have the textbook, since it's the one used in 102.
All the text's programs are available from the publisher in softcopy at www.jbpub.com/disks

In class, we'll use a set of notes that I will give you. The notes are available online at my web site.

You'll need access to a C++ compiler. UMUCAD computer labs will have a variety of C++ compilers installed, including VC++ and DevC++. You should probably already have a compiler from your 102 class.

A very good free Windows C++ compiler and IDE is Dev-C++ from bloodshed.net
I recommend this compiler, if you use MS Windows.
Why pay (and pay and pay for each "upgrade") $100-$300 for Microsoft's VC++? OK, it's your money, do what you want. The textbook comes with a student version of VC++.

Students who are interested in computing in general and CMIS in particular are encouraged to use Linux www.linux.org. Academic computer science is almost wholly done using the Unix operating system. I don't think MS-Windows is an appropriate OS for computer science in general, but it's sufficient for this class. Linux has everything you need for computing, and it's free and open source. The GNU C++ compiler is excellent, and free.

Only use the standard functions as defined in the textbook. Don't use functions or header files such as conio.h that are specific to the compiler because it probably won't work elsewhere, in particular when I grade your programs. This means no clrscr() function! Pet peeve of mine.

EVALUATION: Your final grade will be based on the proctored exam and four homeworks (programs) in the following proportions:

Homework                65%
Proctored Exam	  	35%

According to the UMUCAD catalog the grade of 'A' means 'Outstanding', 'B' is 'Good', 'C' is 'Satisfactory'. Grades are curved, based on the class average. There is no fixed grading of 90-100 is an A, etc. Significantly above the average is A-ish, above the average or maybe just above or at the average is B-ish, etc.

Examination: The exam is intended to measure your knowledge and ability with regard to the objectives of the course. Exam will be a combination of objective ("what is the value/output of this") and short programming exercises ("write a function with such and such arguments that does this and that"). I will give you a practice exam before the real one so that you have a strong idea of what it will be like.

To receive full credit, assigned work must be submitted on the scheduled due dates. Late assignments will be reduced one letter grade per every few days late. This is to "strongly encourage" you to keep up with the work. You will rapidly fall behind if you slack off. Plagiarized assignments, whether copied in whole or in part, will receive a grade of 0 (zero) for all parties concerned. Do not give or show anyone your programs, in either soft or hard copy. Programming can only be learned by hard work and hard thinking.

Homework can often take a shockingly large amount of time to complete due to the creativity required and the precision with which one must specify an algorithm, a precision that is usually not needed in other activities. And unlike other activities, the computer enforces rigorous thinking by immediately presenting us with the errors of our thought process.

DE/Tycho contacts

For administrative assistance, contact de@asia.umuc.edu
SDES students should contact de-remote@asia.umuc.edu
For Webtycho assistance, contact tycho@asia.umuc.edu
For proctored exam information, please visit the DE website at http://de.ad.umuc.edu and click on 'Proctored Exams'

CMIS 140 CLASS SCHEDULE.

This is approximate, actual homework due dates will be specified when the homework is assigned.
CMIS 140 DE


Week	Reading                      Homework due
----	-------		             ------------
Week 1
      Review Chapters 1-6
Week 2
      Dale Chapter  9	
Week 3
      Dale Chapter  9	
Week 4
      Dale 7 				1
Week 5
      Dale 7				
Week 6
      Dale 8				2
Week 7
      Dale 8				
Week 8
      Dale 10				3
Week 9      
      Dale 12				
Week 10
      Dale 12				
Week 11
      Dale 13				4
Week 12
   Proctored exam
Week 13
      Dale 13		
Week 14
      Dale 11				
Week 15
      Dale 11				5