| 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
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:
| 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
|