| 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 |
| Course Information |
| Course title |
Java Programming |
| Course Number |
CS 20J |
| Section Number |
58173 |
| Course description |
Presents programming, documentation, and software-design methodologies using Java. Includes a brief review of control structures, methods and arrays as students rapidly progress to object-oriented programs of moderate complexity. Advanced topics include: inheritance, polymorphism, exceptions, graphics, graphical-user interfaces, files, streams, threads and dynamic data structures. Prepares students for CS 21 and CS 24 |
| Course dates |
09/01/08 through 12/20/08 |
| Location |
Room 2501 (Campus Map: JPEG or PDF) |
| Meeting day(s) |
Monday, Wednesday |
| Meeting time(s) |
11:00 A.M. to 12:30 P.M. |
| Prerequisite(s) |
MATH 4 |
| Recommended Preparation |
CS 12J or equivalent; Eligibility for ENGL 100 and READ 100 |
^ top |
| Learner Outcomes |
| |
At the end of this course, students will be able to:
- Design and implement Java programs to solve problems of moderate complexity using object-oriented methods.
- Correctly and effectively use the following language elements:
- classes and objects
- structured data
- types such as arrays and files
- dynamic data types such as linked lists
- event handling
- class inheritance
- interfaces
- visual components
- multithreading
- Write clear and well-documented code using descriptive identifiers, standard indentation, and adequate comments.
- Apply well-known software development principles and techniques including:
- stepwise refinement
- incremental development
- testing
- data encapsulation and information hiding
- write applets as well as applications.
- Succeed in CS 21 or CS 24
|
^ top |
| Who Should Take This Course |
| |
The following people will benefit from this course:
- Students preparing for transfer to a college or university to study Computer Science or Computer Engineering
- Programmers who want to learn object-oriented programming.
- Programmers who want to learn Java at a faster pace and more in-depth than CS-12J.
- Programmers who want to study more advanced topics than covered in CS-12J.
|
^ 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 training or experience in programming is important preparation for this course. If you have no programming experience or training, then you should take CS-12J. At the very least, you need to discuss your situation with the instructor. If you have had previous programming experience or training, but are a little rusty, you should be able to refresh your skills with little difficulty. |
| Technical Skills |
Students need technical skills in the following areas to be successful in this course:
- Computer operation and program installation
- File and folder (directory) management
- Text editing
- E-mail usage
- Web browser usage
- Able to compile and run programs (in some language)
- Programming skills: development of algorithms, methods and classes
|
| Patience and Time |
If you have enough time to sit in class, but do not have 6-10 hours a week to devote to homework, drop this class. You will need time to experiment with the details of the programming language, and to design solutions to assignments. |
^ top |
| Textbooks and Other Materials |
| Required books |
Absolute Java -- 3rd edition, Walter Savitch, Pearson Education, ISBN: 0321487923 or ISBN-13: 978-0321487926, book web-site. It is important that you buy this book because there will be required reading from the book, I will give assignments from the book, I will test on material from the book, and it will help you get a better grade in the course.
Note that the 2nd edition is OK for this course, though you will need to remap pages and assignments from the 3rd edition. |
| Recommended books |
Thinking in Java, 4th Edition, Bruce Eckel. The book is free and is another source of information on Java programming.
|
| Other Materials |
Source code files for textbook: Available from the CD that came with your book.
|
^ top |
| Teaching Methods |
| Assigned reading |
Each week you have assigned reading, which you are expected to complete before class. During class, you will be expected to join in the discussions and answer questions about the reading when called upon. |
| 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 Blackboard. |
| Assessments |
There are two tests during the semester: a midterm and a final exam. There may be quizzes as well. The midterm covers the material from the first half of the course and the final covers material from the second half of the course. However, the course is progressive and you will need to use material from the first half during the second half. Also, I may include questions from the first half where students had difficulty. |
| Lab Hours |
The schedule of classes lists lab times for your to complete your programming assignments of "+6 hr 20 min open lab per week". These open lab hours are at times of your choosing in the CTC. The CTC is open, supervised and available for use as shown here: Computer Technology Center Hours. It is the student's responsibility to make use of these available hours every week.
|
| Project |
The last programming assignment is the Course Project. The purpose of the project is to use the knowledge and skills you have learned from this course to create a useful application. I specify several requirements and you must make many design decisions. |
| 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 Blackboard. Students are encouraged to go to both the web site and Blackboard 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 |
| 11:00 AM | Announcements and discussion of questions that have short answers or broad interest within the class |
| 11:05 AM | Lecture and discussion |
| 12:20 AM | Exit classroom (10 min. for passing time) |
| 12:30 AM | Class officially ends |
|
^ top |
| Grading Policies |
| Assessed areas |
Your final grade is weighted based on your performance in the following areas:
| Assignments |
40% |
| Midterm Exam |
25% |
| Final Exam |
35% |
|
| Assignments |
Programming assignments are usually due at the beginning of class on Wednesday, but the date and time shown on Blackboard 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. 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.
The Course Project is graded as a double assignment.
If you do not want to complete the homework because the assignments are not challenging enough, see the instructor for more challenging assignments.
|
| Midterm Exam |
The midterm exam must be taken when scheduled, except by prior arrangement with the instructor.
If you score below 75% on your midterm exam, you may request the instructor to weight the final exam more heavily and the midterm less heavily. For such requests, the instructor will weight the midterm at 15% and the final exam at 45%. You must make this request in writing, such as e-mail, before the final exam.
|
| Final Exam |
The final exam is a practical exam given during finals week. You will need to complete a series of programming steps to pass the final. Some multiple-choice questions may be given as well.
|
| 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. |
If you have questions about problems you missed on any exercise or assignment, please see 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 Honesty Policy |
| |
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 Integrity |
| |
In this course, you must personally complete all the assignments yourself. This means that you must write all your own program 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. Note that this list does not include tutors. Tutors must follow the same rules as other non-students.
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 or tutors
- 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 code while typing or writing your own program
- 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.
- Communicating your answer for an assigned problem to anyone by any means.
These are not all-inclusive lists. If you have questions about what is permissible, please ask me.
|
| 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
- Copying, 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 |