CS-12J Course Information

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.
Course Information
Course title Introduction to Programming Concepts and Methodology, Java
Course Number CS 12J
Section Number 43530
Course description Students will learn computer programming using the Java programming language. Starting with basic principles, students progress to object-oriented programs, including visual programming. Topics include: algorithms, data types, declarations, expressions, selection, repetition, methods, recursion, libraries, arrays, classes, objects, components, events, files and streams.
Course dates 08/29/05 through 12/17/05
Location Room 516
Meeting day(s) Mondays and Wednesdays
Meeting time(s) 10:00 AM to 12:10 PM
Prerequisite(s) None.
Recommended Preparation CS 1 or CS 2; MATH 4. Eligibility for ENGL 100 and READ 100.
Course Objectives
 

After successfully completing this course each student will be able to:

  1. Apply the principles of software engineering to the design of elementary object-oriented programs.
  2. Write, document, test, and debug Java programs.
  3. Incorporate Java programs within web pages.
  4. Use fundamental programming concepts: declarations, expressions, selection, repetition, methods, classes, and strings.
  5. Read, interpret, analyze and explain introductory Java programs.
  6. Implement sorting and searching algorithms.
Who Should Take This Course
 

The following people will benefit from this course:

  • Students who want to learn basic programming skills.
  • Students who want to prepare for the advanced-placement test in programming
  • Students preparing for CS-20J: Java Programming
  • Programmers who want to learn Java at a slower pace than CS-20J.
Student Readiness
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.
Technical Skills

Students need technical skills in the following areas to be successful in this course:

  • Computer Basics
  • File Management
  • Text Editing
  • E-mail
  • Web Browser

Use the CS-12J Readiness Self-Assessment form to check if you have at least the minimum preparation needed for this course. Most of these skills are taught in CS-1.

Patience and Time If you have enough time to sit in class and in lab, but don´t have 8-12 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.
Textbooks and Other Materials
Required books 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
Required materials You must purchase a CodeLab subscription. Cost should be $25 if you order online -- let me know if you are charged more as I negotiated a discount for my students.
Recommended books

Thinking in Java, 3rd Edition, Bruce Eckel. See http://www.mindview.net/Books/TIJ/.

Other Materials Source code files for textbook: Available from the CD that came with your book or from the book Web-site
Course Structure
  Like most traditional courses, this one is organized around the classroom. In addition, there is considerable online content. The online content helps students who cannot attend class for some reason and makes it easier to turn in homework, recieve feedback and participate in other important learning activities.
Typical Class Session A typical class session is organized like the following:
Day Section
TimeEvent
10:00 AMAnnouncements and discussion of questions that have short answers or broad interest within the class
10:05 AMLecture and exercises
11:00 AMBreak
11:10 AMLecture and exercises
12:00 PMExit classroom (10 min. for passing time)
12:10 AMClass officially ends

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 when called upon. We will often have exercises to complete during class and you are expected to work on the exercises during the time allotted in class.

Exercises After the reading and class meeting(s) each week, there are usually both in-class exercises and CodeLab exercises. You are usually given enough time in class to complete the in-class exercises. However, if we run out of class time then you may need to complete them at home.

CodeLab exercises are usually completed outside of the classroom. The CodeLab exercises give you practice with the programming concepts and skills from the reading and the classroom lectures. You should complete the CodeLab exercises before you attempt the programming assignment.

Programming assignments The programming assignment is aimed at applying what you have learned to new situations, analyzing problems and seeing the patterns in the programming language. You will turn in your programming assignment using the Assignment submission tool in WebCT.
Exams 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 entire course. However, the focus of the final is the newer material learned in the last half of the course. I will use WebCT to administer the tests.
Project The last programming assignment is the Sampler Project. The purpose of the project is to integrate the techniques you have learned from this course. I specify several requirements and you must make many design decisions.
Grading Policies
Assessed areas Your final grade is weighted based on your performance in the following areas:
Exercises 15%
Programming assignments 30%
Midterm exam 20%
Final exam 35%
Exercises Exercises are generally turned in once per week, and are usually due by the beginning of class on the Wednesday of the following week, unless otherwise shown on WebCT or CodeLab. I will not accept late exercises for any reason. However, I do throw out the lowest exercise score in determining the final grade.

If you are going to miss class, then you should arrange to turn in your exercises before class starts. Since we turn-in exercises online, you can submit your exercises from any computer connected to the Internet.

Exercises are graded on "best effort" basis. You will receive full credit if you clearly attempt to complete all exercises. For each exercise you do not complete, your grade for that exercise will be reduced by 10%, which is one full grade point.

Programming assignments Programming assignments are usually due at the beginning of class on Wednesday, 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 often 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 Sampler 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 10% 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.
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.)
Working Together
Pair Programming Pair programming is a practice that helps programmers improve program quality and productivity (see The Costs and Benefits of Pair Programming). In addition, some studies show that some students learn better when they work in pairs. Thus, I encourage all students to work with one other student on homework assignments following the rules of pair programming.
Working in Groups If you decide not to work using pair programming, but still would like to work with other people, then there are restrictions on what you can do. Specifically, you are not permitted to show your homework answers or code to any other person before you turn in an assignment, with the exception of a Cabrillo College Computer Science Instructor. Viewing or copying any part of another person's program, or allowing your program to be copied or viewed is cheating.

What you may do when working with other people is:

  • Show others how to use, or solve problems with, computer applications such as compilers, text-editors and debuggers
  • Discuss problems and ideas for solving problems
  • Describe algorithms using diagrams or natural-language statements

Group work can accelerate learning, but only when each student takes responsibility for mastering all the material. Little is learned if each student works only one or two problems and merely copies answers for the rest.

If you have questions about what is permissible, please ask me.

In-class Exercises Money for education is in short supply in California due to the current budget problems. As a result, there are not enough computers for every student to have their own computer in this classroom.

To work around this shortage of computers, you may need to work with others on in-class exercises. If there are more students than computers, you must be willing to work with one other student. If there are more computers than students, you may still work on in-class exercises together, if both students so choose. In any case, you are expected to work on the exercises during class.

When working together, you and your partner must work collaboratively at the single computer. One person is the "driver" and types the work into the computer. The other person is called the "reviewer" and actively checks the work entered by the driver. Each partner spends about one-half of the time for each class as the driver and the other half as the reviewer.
Academic Honesty
 

Academic honesty means that you give credit where credit is due. Students who are academically dishonest hurt both themselves and other students. They rob themselves of both the knowledge of the material and the experience of learning how to learn. This harms other students as well because nobody can trust that the graduates of a course know the material.

Academic 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.

For any work submitted in this course, you are not authorized to copy or use work from any source without crediting the source. You may use small snippets of work posted on the web or found in books, as long as it is lawful. However, you must acknowledge 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.

On programming assignments and projects, you are free to discuss problems and ideas for solving problems. You may give and receive help with computer problems, editors and debugging techniques. It is also acceptable to discuss general approaches to problems or algorithms with others. However, you are not free to show your actual solutions or code to any other person before you turn in an assignment. Viewing or copying any part of another person's program, or allowing your program to be copied or viewed is not permitted.

During exams, I expect there to be no talking and no wandering eyes. In addition, you may not communicate with any person except the instructor. You are responsible to make it abundantly clear to me that you are not cheating and that you are working alone.

Any person caught cheating or plagiarizing 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.

Home | WebCT | Announcements | Schedule | Expectations | Course info
Help | FAQ's | HowTo's | Links

Last Updated: July 28 2006 @13:56:07