CMSC160:  Introduction to Algorithmic Design I

 

Fall 2006  (Online)

 

Instructor:  Dr. R. P. Webber

Office location and hours:  Ruffner 332.  MWF 10 – 10:50, MF 2 – 2:50, T 2 – 3:15, and by appointment or coincidence.

Telephone:  434-395-2192

 

Email:  webberrp@longwood.edu

 

How to contact me:  Email works best.  If you are on campus, feel free to stop by my office. 

 

Course description and prerequisite:  An introduction to problem solving and algorithmic design using a modern high level language.  Topics include problem solving techniques, high level structures, subprograms and modularity, user defined types, and fundamental algorithms.  No prerequisite.  3 credits. 

 

Text:   Cohoon and Davidson, C++ Program Design Third Edition.  McGraw Hill, 2002.  ISBN 0-07-241163-5.  

 

Course objectives:

 

  1. Utilize appropriate control structures.
  2. Successfully implement good program design.
  3. Make appropriate use of local and global data.
  4. Understand and use addressing techniques.
  5. Master the basic syntax of C++.

 

 

Course requirements and grading:  This is a programming course, and your grade will be based on the assignments that you do.  There will be approximately  12  assignments, counted equally.  There will be no tests and no exam.  The grade scale is as follows.

 

90-100 A; 80-90 B;  70-80 C;  60-70 D;  below 60 F

 

Assignments will be posted on Blackboard.

 

 

 

Assignments and working with others:  Assignments will consist of nonprogramming and programming exercises.  It is OK to work with others on the logic of a program and to help others debug a program or understand an error message.  Everyone should contribute approximately equally to the work.  If somebody tries to freeload, don’t work with him or her, and tell me if the person persists.  Furthermore, everyone is to write up his or her own solutions.  I don’t want to see duplicate code or solutions.  In general, it’s all right to brainstorm about how to do an assignment, but the details of carrying it out are to be done individually. 

 

Each assignment will have a due date.  It is due by 12 midnight on that date.  Failure to hand it in on time will result in a penalty of 25% for each calendar day it is late.  No excuses will be accepted for late programs.  I’m sorry, but such things as computer failure, sickness, etc., are not excuses!  I strongly urge you not to wait until the last minute to submit your assignments.  No assignment will be accepted after midnight on the last day of the term for any reason.

 

Nonprogramming exercises will be graded on a partial credit basis.  Click here to see the rubric for grading programs.

 

 

What to submit:  For nonprogramming exercises, type your answers and submit them in a file.  For programming exercises, submit a Notepad file with your source code.  I will compile and run it on my machine.  For all exercises, make the first line a comment with your name, the assignment number, and (for programs) a brief account of what the program is supposed to do.

 

 

How to submit:  Send your assignments to me

  • as attachments to an email (not embedded in the body of an email), or
  • through Blackboard’s digital drop box.

 

Make sure that programs compile, run, and produce correct output before submitting them.  As stated in the grading rubric, if a program doesn’t compile, I assign it a grade of  0  and grade no further.  Make sure it works before sending it to me for grading!

 

Of course, I will be glad to help you debug a program that does not work.  Send me a file with the code, and send me a description of what happens when you try to compile or run it.  Do this before the due deadline so that you’ll be able to correct it before it is due.

 

If you submit program via email, don’t put the code in the body of the email.  Rather, put it in a Notepad file (not a Word file) and send each program as a separate attachment.  Similarly, if you are using Blackboard’s digital drop box, use Notepad, and put each program in a separate file.

 

 

 

 

 

Tentative Schedule:

 

Week 1  Aug 28 – Sep 1

Ch.1:  Introduction; Computing and object oriented design; get C++ compiler running

Week 2  Sep 6 - 8

Ch. 2:  C++ fundamentals

Week 3  Sep 11 – 15

Ch. 3:  Introduction to objects

Week 4  Sep 18 – 22

Ch. 3, 4:  Objects; decision statements

Week 5 Sep 25 – 29

Ch. 4:  Loops

Week 6 Oct 2 – 6

Ch. 5:  Functions

Week 7 Oct 9 – 13

Ch. 6:  Parameters

Week 8 Oct 18 – 20

Ch. 6:  Finish up functions

Week 9 Oct 23 – 27

Ch. 7:  Classes and OO design

Week 10  Oct 30 – Nov 3

Ch. 7, notes:  OO design; binary numbers

Week 11  Nov 6 – 10

Ch. 8:  Abstract data types

Week 12  Nov 13 – 17

Ch. 9:  Arrays

Week 13  Nov 20

Ch. 9:  Arrays

Week 14  Nov 27 – Dec 1

Ch. 9:  Searching and sorting

Week 15  Dec 4 – 8

Ch. 10:  A close look at an API

 

 

Honor Code:  The teacher subscribes to the Longwood College Honor System, which, among other things, assumes you do not cheat and that you take responsibility to see that others do not.  Infractions will be dealt with harshly.  A student who is convicted of an Honor Code offense involving this class will receive a course grade of F, in addition to penalties imposed by the Honor Board.

 

Computer:  You are expected to do your programs and assignments on your own computer.  You will want to put a copy of C++ on your PC.  I recommend Borland C++ version 5.5.  It is free, and instructions for downloading it will be in Course Documents on Blackboard.  You may use other versions of C++ if you wish, but you will not be able to get help from me in implementing them.  Programs must run correctly on Borland 5.5 to be acceptable for this class.