CMPS 160


CMPS 160
 Computer Science
Hollins University -- Fall 2005
CRN: 90648


Instructor: Larry Blankenship;
(W): x-6487;   (H): 362-0785;
M, W -- Dana 111; F -- Dana 102
10:20 - 11:20;
102B Cocke (In the basement, in the back of the Finance Office);
Office Hours:


In General:
This is a "hands-on" course that is designed to teach you the fundamentals of computer science. You will write computer programs to solve realistic problems, both from the text and handouts. When the course is over, you will have learned how to write simple to medium complex Java programs. We will also look at logical thinking, problem solving, debugging and documentation.

The best way to learn how to write computer programs is to write a lot of code. This class will give you plenty of opportunities to do just that. Consequently, you will put in quite a bit of work outside of class. I intend keep any lectures short to maximize your in-class lab time. If you finish a Practice Problem, you may use any extra lab time to work on homework, programs or other CMPS 160 assignments.

I intend to use Textpad, Blackboard and Google with this course. If you are not familiar with these software packages, don't worry, we will go over what you need to know as the class progresses.

Our Text Book:
We will be using Java Programming Complete Concepts and Techniques by Shelly, Cashman & Starks.  ISBN 0789568322

Please bring your textbook to class every day.

The grade you earn from this course will calculated from many assignments -- weighted as follows:

                                                                    20% - Practice Problems
                                                                    20% - Homework                  
                                                                    40% - Chapter  Programs    
                                                                    10% - Final Project             
10% - Class Participation

Practice Problems:
Every chapter in our text contains step by step instructions for building a project. The instructions take you through the entire program life cycle. Generally, the first Practice Problem in every chapter will be to reproduce those results in the lab. Additional Practice Problems may be assigned as well. They could be small "snippets" of code that I ask you to debug or other tasks that will emphasize the material we are covering.  You are allowed to consult your classmates when working on practice problems, and you may choose to work by yourself or in teams of two. One person can be the reader, the other person can perform the tasks. If you decide to do this, please swap tasks occasionally with your teammate so that everyone gets the hands on experience. 

This work will consist of questions and problems, and will be available on Blackboard. No consulting, but you may ask for clarifications on the discussion board (discussed below in the Class Participation paragraph).

Chapter Programs:
In each chapter (except chapter 1), there will be one moderately complex program assigned that emphasizes the important techniques covered in that chapter. These programs must be your own work, no consulting allowed, but you may ask for clarifications or help with error messages on the discussion board.

Documenting your work:
The 6th step of the program development lifecycle is to create documentation. The need for useful documentation cannot be over emphasized Your programs for this course must be documented -- a program that runs and satisfies the requirements of the assignment will only earn you 75%. The rest of the grade will consist of documentation, good use of Java (eg. good variable names, clarity of code, etc), and readability. HINT: Write the documentation to remind yourself of how the program works, then keep the program after the course is over.

Final Project:
This program will exercise all techniques learned in class, and will be your own work. You must submit work showing all 6 stages of the Program Development Cycle.

Class Participation:
Although attendance is not mandatory it is highly recommended. Please let me know ahead of time when you must miss a class.  Please read assignments before coming to class and be prepared to discuss the material.

You will be expected to make a minimum of 2 contributions/chapter to the discussion board. These posts can be observations and discussions about the practice problems, general Java questions and answers, requests for help with error messages etc.

Submitting Program Files:
Please submit all java program files (or any other electronic files) with the "digital drop box" feature in Blackboard.

Optional Extra Credit (for cool stuff):
You may earn additional credit by making short presentations to the class. The presentations should last no longer than 1-5 minutes.  Pick something out of the web, or software that you think is cool or interesting, then show it to the class. Tell us where it is, what it is and why its cool. After all, computer science can be fun... Please check with me before making a presentation.

You may make 0-6 presentations for a maximum of 3%. This isn't a whole lot, but it will give you a chance to raise your grade by 1/3 of a letter grade (eg. "C+" to a  "B-" or an "A-" to an "A"). 100% is the maximum grade anyone can earn in this course.

I would like to thank Dr. Julie Clark,  Nancy Healy and Richard Carr for their help and patience. These folks are good -- you should consider taking as many classes as possible from them!