layout table
 

Course Outline CS 231A

Spring 2007

Section A: M, W, F: 12:50 pm - 1:50 pm
Section AL: M, W: 2:00 pm - 3:00 pm
Class Room: Science Annex 102
Office: Science Annex 128
Office Hours: M, W: 11:30 am - 12:30 pm
T, Th: 1:00 - 2:30; 4:15 - 5:45 pm
F: 11:30 am - 12:30 pm; 2:00 - 3:00 pm
And by appointment also
Phone: 386-481-2689
EMail: BethelmyD@cookman.edu
URL: www4.cookman.edu/faculty/bethelmy

Booklist

Text Author(s) Publisher ISBN
Object-Oriented Programming in Java
A Graphical Approach
Sanders and van Dam Pearson/Addison-Wesley 0-321-24574-1
Beginning Java 5 Game Programming Harbour Thomson/Course Technology 1-59863-150-0

Required Hardware:

A memory stick (Jump Drive, Flash Drive, etc.).

Course Description:

This course is a continuation of the CS 1 programming course (CS 230). It will be taught in Java since the previous class was taught in Java. You need to have a Java background to be able to do the work in this class. The class will continue to stress object-oriented design and introduce students to object-oriented concepts of inheritance and polymorphism. Other topics will include exception handling, 2D and 3D arrays (of primitive and object types), file input/output, GUI and event-driven programming, recursion, and an introduction to abstract data types such as linked lists, stacks, and queues. The course will continue to use Sun's Java Software Development Kit referred to as Java 5.0.

To make the material more appealing, we will be using Game Programming as a vehicle for learning the aforementioned topics. Each student will have to design an "original" game by the end of the semester. This game will count as the student's final project which replaces a final exam.

This course has a laboratory component and each student must be registered for both lecture and lab to get credit.

Prerequisite:

At least a C in CS 230.

Course Objectives

A student who successfully completes this course should be able to design and write programs that are reasonably complex, well-designed, relatively long by student standards (a few hundred lines at least), object-oriented, and made up of several files. The student should also be completely proficient in the fundamentals of the Java language. Ideally, a student who receives at least a B should be hireable at the entry level by a software firm.

Assessment of Academic Achievement:

Homework Quizzes Exam I Exam II Exam III Final Exam
20% 5% 15% 20% None 40%
Programming exercises. Given at random and can be written or hands-on 2/21/07
Written AND Hands-On
4/18/07
Written ANDHands-On
  Presentation of Semester's Completed Game Project
on one of the days from 4/24 - 4/26
As an incentive, bonus points will be awarded to EVERY EXAM grade (EXCEPT THE FINAL, QUIZZES, AND HOMEWORK) as follows:
50% - 59%:

2 points
60% - 69%:

4 points
70% - 79%:

6 points
80% - 89%:

8 points
90% - 100%:

10 points

Grading scale:

A: 90-100%, B: 80-89%, C: 70-79%, D: 60-69%, F: 0-59%

Things to note about this class

  • You will be required to design and write Java programs and I expect you to do your programming on your own. Any copying detected on a programming project will result in zeros for ALL parties involved. Continuous copying will result in automatic F's for the semester for ALL parties involved.
  • You should use the text by Sanders and van Dam as the reference for Java and the game programming text as the source for game design and theory.
  • You should make a supreme effort to study the textbooks very carefully with the aim of understanding the material so that you can retrieve what you have learnt without the aid of the books. (Ideally, you should be reading ahead of me. I can help you learn how to study so, please, see me for help.) Try as many of the self-test exercises at the end of each section in the Java text.
  • You should try to do your homework, especially programming, without your book open. Why? The exams/quizzes don't let you use the book. (This does not mean that you cannot check the book if you get stuck. What it does mean is that you should try to learn the material before doing your work so that you can see if you retained what you learnt. DO NOT START FROM THE QUESTION AND LOOK BACK FOR AN EXAMPLE. THIS WILL KILL YOU ON MY EXAMS.)
  • You should attempt every question given for homework and see me as soon as you can't do any of them.
  • When you are given a programming project you will be given a due date and a late date. You should try to get the program submitted by the due date for full credit. Programs submitted after the late date will NOT be awarded full credit.
  • I will not cover the material in the texts by reading either of the texts to you.
  • Learning to program is an extremely time-consuming task by its very nature. You need to read the background material carefully, design your solution to a problem before going to the computer, write out your solution on paper before going to the computer, hand check your solution and make corrections before going to the computer, type in your solution into the computer, compile, execute, and test your solution thoroughly. (I figure an average of 9 hours outside of class per week depending on your ability to understand programming concepts.) I know that the list of things to do sounds like too much and a waste of time but it is my experience that those students who fail to follow the steps as laid out end up spending much more time than expected without getting positive results.
  • That said, I believe that the concepts are within everyone's grasp and everyone has the potential to do well in this class if you just do what is required.
  • You cannot pass this class by attendance only but missing classes will cause you to do poorly on my exams/quizzes.
  • In-class exams will have a written component to be held during the lecture time and a hands-on component to be held during the lab time. None of the exams is open-book.
  • If you miss a class, you need to find out what assignments and reading have been given BEFORE coming to the next class.
  • If you miss a quiz, there is no makeup. Besides, quizzes are there to help you monitor your progress in the class so why miss them?
  • If you miss an exam, you will need a documented excuse from a legally valid source (doctor, lawyer, coroner, etc.) for me to consider giving you a makeup.
  • You need to get started immediately. You should have already obtained the books. You cannot survive in this class without having frequent access to BOTH texts. (I realize that books are expensive and that you may not have the finances right away but there are other things that can be done to ease the burden. See me for suggestions.)
  • I am here to help and I prefer that you hunt me down for such help. I know how I think better than anyone else.
  • I will send information to you via your Cookman email accounts.
    Please check all sources daily, especially before class.

Topics that I hope to cover

(The topics may not be covered in the order given and it is possible that only parts of some chapters will be covered. You will need to stay informed of which parts of which chapters are being covered.)

  • Exceptions and Assertions
  • Arrays, ArrayLists, HashMaps, TreeMaps
  • Searching and Sorting
  • File I/O
  • Object-oriented concepts of overloading, overriding, inheritance, polymorphism, interfaces
  • GUI and Event-Driven Programming
  • Recursion