| On This Page |
|
|
| Instructor Information |
| Name |
Ed Parrish |
| Email |
See instructor's homepage. |
| Office location |
See instructor's homepage. |
| Office hours |
See instructor's homepage. |
| Phone |
See instructor's homepage. |
| Contacting Instructor |
If you have any questions about the course or need assistance, please contact me during office hours in person or by telephone, or at any time by e-mail. When contacting by e-mail, be sure to include the course number and your name. |
^ top |
| Catalog Information |
| Course title |
Introduction to Programming Using Games and Simulations |
| Course Number |
CS 12GP |
| Section Number |
51900 |
| Course description |
Presents an introduction to computer programming concepts and methodologies by developing games and simulations in the Java programming language. Topics include: algorithms, data types, declarations, expressions, selection, repetition, methods, recursion, libraries, arrays, classes, objects, 2D graphics, animation, sound, files and streams. Prepares students for CS 19 or CS 20 |
| Course dates |
02/05/07 through 06/01/07 |
| Location |
Room 2501 |
| Meeting day(s) |
Monday and Wednesday |
| Meeting time(s) |
10:00 AM to 12:10 PM |
| Prerequisite(s) |
An object-oriented programming language course such as CS-12J, CS-11 or equivalent experience.
|
| Recommended Preparation |
CS 20J or equivalent; Eligibility for ENGL 100 and READ 100 |
| Online option |
Students can elect to take this course "online". This means that you read the lecture notes, which are posted online, rather than attending class. You are still responsible for completing all the work by the scheduled times. Note that attendance is still required at three meetings: the first meeting (for orientation), the midterm exam and the final exam. If you are interested in this option, please contact the instructor for more information. |
^ top |
| Learner Outcomes |
| |
At the end of this course you will be able to:
- Display and animate two-dimensional images
- Transform images to produce visual effects
- Program sound effects and music for games
- Produce arcade-style video games
- Add "intelligent" behavior to sprites
- Optimize program performance
- Deploy games on multiple platforms
|
^ top |
| Who Should Take This Course |
| |
The following people will benefit from this course:
- Gamers who want to develop their own video games.
- Programmers who want to learn more about Java's graphics and sound producing capabilities.
- Computer Science students who want to expand their knowledge of graphics, animation and sound.
|
^ top |
| Student Preparation |
| Email |
All students are requested to have an e-mail account. |
| Internet Access |
You need Internet access to view course materials on my web site, to turn in assignments and to take quizzes. Internet access is available in the CTC for all students enrolled in this course. |
| Programming Skills |
Prior object-oriented programming education or experience is important preparation for this course. You should know how to develop computer algorithms and have experience coding methods (functions) and classes. If you are not familiar with Java syntax, then you can learn it during the Java language review portion of the course.
|
| Patience and Time |
If you have enough time to sit in class and in lab, but do not have 8-12 hours a week to devote to homework, drop this class. You will need time to experiment with the details of animation, sound processing, sprites and artificial intelligence, to design solutions to assignments, and to complete your course project. |
^ top |
| Textbooks and Other Materials |
| Required books |
Beginning Java 5 Game Programming, Jonathan S. Harbour, Course Technology PTR, ISBN 1-59863-150-0, book Web-site. This is the best Java game programming book for beginners and has a bargain price for a textbook as well. It is important that you have access to this book because there is required reading from the book, I test on material from the book, and it will help you get a better grade in the course.
|
| Recommended books |
Andrew Rollings and Ernest Adams on Game Design, Andrew Rollings, Ernest Adams, New Riders, ISBN 1-59273-001-9: Thoughtful and inspiring book on game design.
Killer Game Programming in Java, Andrew Davison, O'Reilly, ISBN 0-596-00730-2, book Web-site: An excellent, intermediate-to-advanced level, book on Java game programming.
Developing Games in Java, David Brackeen, apress, ISBN 1592730051, book Web-site: Another excellent, though more advanced, book on Java game programming. This is the instructor's favorite Java game programming book.
Murach's Beginning Java 2, JDK 1.5; Doug Lowe, Joel Murach and Andrea Steelman; Mike Murach & Associates, Inc.; ISBN 1-890774-29-4, book Web-site: Excellent introduction to, and reference for, Java. If you are new to Java, you should get this book.
|
| Other Materials |
Textbook applets and textbook examples source code from the author's web site. In addition, I provide numerous examples in my lecture notes. |
^ top |
| Teaching Methods |
| Assigned reading |
Each week you have assigned reading, which you are expected to complete before class. These readings come from the textbook and other sources. In addition, you are expected to skim the lecture notes before class. During class, you will be expected to join in the discussions and answer questions about the readings when called upon. For reading strategies see: Types of Reading and How To Read A Textbook |
| Lectures |
Important material from the text and outside sources will be covered in class. You should plan to take careful notes as not all material can be found in the texts or readings. Discussion is encouraged as is outside material relevant to topics being covered. |
| Assignments |
The programming assignments let you apply what you have learned to new situations, analyze problems and see the patterns in the programming language. You will turn in your programming assignment using the Assignment submission tool in WebCT. |
| Assessments |
About half-way through the course you will have the opportunity to take a midterm exam, covering the material from the first half of the course.
|
| Final Project |
The final result of this course is a 2D interactive computer game with animation and sound. You present your game project during the final exam period, demonstrating your mastery of the subject. |
| Internet |
All material will be distributed on the Internet. Class notes, instructional material, and student assignments will be posted on the class web site. Assessments and assignments are turned in using WebCT. Students are encouraged to go to both the web site and WebCT in order to obtain file downloads, submit completed work and to view items of interest throughout the semester. |
| Typical Class Session |
A typical class session is organized like the following:
| Time | Event |
| 10:00 AM | Announcements and discussion of questions that have short answers or broad interest within the class |
| 10:05 AM | Lecture, discussion and demonstration |
| 11:00 AM | Break |
| 11:10 AM | Lecture, discussion and demonstration |
| 12:00 PM | Exit classroom (10 min. for passing time) |
| 12:10 PM | Class officially ends |
|
^ top |
| Grading Policies |
| Assessed areas |
Your final grade is weighted based on your performance in the following areas:
| Homework assignments |
40% |
| Midterm Exam |
25% |
| Final Project |
35% |
|
| Homework assignments |
Homework assignments are usually due at the beginning of class, but the date and time shown on WebCT is the official due date and time. I will not accept late assignments for any reason because assignment solutions are both discussed in class and posted online. However, it is possible to improve assignment scores by completing extra credit work. Most assignments have some extra-credit suggestions.
If you are going to miss class, then you should arrange to turn in your assignments before class starts. Since we turn-in work online, you can submit your programs from any computer connected to the Internet.
|
| Midterm Exam |
The midterm exam must be taken when scheduled, except by prior arrangement with the instructor.
|
| Final Project |
The project counts as the final exam for the course and you must demonstrate your completed project to the instructor during the scheduled final exam time to pass the course. |
| Grade Interpretation |
Grading within each area is based on the following scale:
| Grade |
From |
To |
Description |
| A |
90% |
100% |
Outstanding work demonstrating mastery of the subject. |
| B |
80% |
89.9% |
Above average work with a solid understanding of the subject. |
| C |
70% |
79.9% |
Satisfactory work meeting all minimum requirements. |
| D |
60% |
69.9% |
Substandard work not meeting expectations in one or more areas. |
| F |
0% |
59.9% |
Unsatisfactory work. |
All your scores are posted in WebCT and you are responsible for reviewing them frequently. If you have questions about any of your scores, please contact me right away. I want to ensure both that you understand the material and that your grades are accurate and fair.
|
^ top |
| Alternate Grading and Incompletes |
| Credit/No Credit Option |
By default, everyone receives a letter grade. If you request the Credit/No Credit Option, you must complete the course work at a satisfactory (that is a "C") or better level. For more information, see the Cabrillo Academic Policies and Procedures document. |
| Incompletes |
You may request an incomplete from the instructor if you are "doing passing work and regularly attending at least 75% of a course, but are unable to take the final exam (or otherwise complete the course) because of illness or other unforeseeable emergency and justifiable reasons." (Quotation from the Academic Policies and Procedures document.)
|
^ top |
| Scholastic Dishonesty |
| |
Scholastic dishonesty is any act designed to give an unfair or undeserved academic advantage. Students who are scholastically dishonest hurt both themselves and other students. They rob themselves of both the knowledge of the course and the experience of learning how to learn. They harm other students as well because nobody can trust that the graduates of a course know the material and because they may unfairly get a higher grade.
Scholastic dishonesty includes:
- Cheating: Intentionally violating the rules of the course by possessing, communicating, using, or attempting to use materials or to take actions that the instructor has prohibited.
- Plagiarism: Use of distinctive ideas, words or code belonging to another person, without sufficiently acknowledging that person's contribution.
- Collusion: Unauthorized collaboration with another person in the preparation of an academic assignment offered for credit.
- Misrepresenting facts: Providing false information for academic advantage such as for postponing an exam or extending a deadline on an assignment.
For any work submitted in this course, you are not authorized to copy or use work from any source unless it is specifically stated in the assignment documentation. If you use distinctive ideas from another source, such as a book or the Internet, you must credit the source well enough so that it is easy for the instructor to find. Note that the instructor uses various services and tools to detect cheating by comparing your work with other students, books and the web.
Any person caught cheating, colluding, plagiarizing or misrepresenting facts will be given a grade of zero for the assignment or exam. The second offense will result in a no-pass or failing grade for the course. These offenses will be reported to the Dean of Student Services for inclusion in your academic record.
|
| Assignment Policies |
| |
In this course, you must personally complete all the assignments yourself. This means that you must write all your own Java code. You may discuss assignments with other people, but ultimately you must write the code yourself. Not writing all the code yourself is considered cheating.
If the assignment seems too hard to complete without more help, then you should contact me. My job is to help you understand the material. Also, you may discuss your assignment, and show your code to, another Cabrillo College Computer Science Instructor. We all have the knowledge and skills needed to help you understand the material.
You may still help other students, and receive help from other students, and I encourage you to do so. The following situations are intended to help clarify the rules about appropriate assistance for assignments:
Acceptable Help
- Showing others how to use, or solve problems with, computer applications such as compilers, text-editors and debuggers
- Discussing problems and ideas for solving problems with other students
- Describing your algorithms to other students using diagrams or natural-language statements
- Looking at another person's code and pointing out an error, as long as you do not write or type any information
Unacceptable Help
- Typing or writing any code for another person, or allowing someone to type or write code for you
- Looking at another person's solution while typing or writing your own solution
- Listening to someone else dictate the program code while typing or writing, or dictating to some else the program code to type or write
- Providing a copy of your code, or any portion of your code, to any person other than the instructor, including posting your code online or emailing it to someone until after the assignment due date has passed..
- Communicating your answer for an assigned problem to anyone by any means until after the assignment due date has passed..
These are not all-inclusive lists. If you have questions about what is permissible, please ask me.
Also, note that these rules do not prohibit you from sharing assignment solutions with other students after an assignment is due and turned in. WebCT/Blackboard has an option for sharing your assignment with other students, called publishing, that you are welcome to use. Reviewing other people's solutions can help you learn, but only after you complete the assignment on your own.
|
| Assessment Policies |
| |
During exams, I expect there to be no talking and no wandering eyes. You are responsible to make it abundantly clear to me that you are not cheating and that you are working alone. Cheating on exams includes, but is not limited to, the following:
- Communicating with anyone but the testing proctor during the test
- Failing to comply with instructions given by the testing proctor
- Possessing materials that are not authorized by a testing proctor, such as calculators, cell phones, pagers, lessons, books, or notes
- Copying from another student
- Using, buying, stealing, soliciting for, or transporting some or all of the contents of a test or test rubric
- Substituting for another person, or permitting another person to substitute for oneself, in taking a test
This is not an all-inclusive list. If you have questions about what is permissible, please ask me.
|
^ top |