copyright Steve J. Hodges   http://steveh.net/cs20j/cs20j-info.html

CS 20j

Course Information


Learning Outcomes

In this course you will learn to:

  1. Analyze common computational problems and design computer algorithms to solve them.
  2. Design, write, document, test and debug object-oriented programs of moderate length.
  3. Organize and document program code following the principles of software engineering.

Objectives

  1. Analyze problems and develop computer algorithms to solve novel problems of moderate complexity.
  2. Design and implement Java programs to solve problems of moderate complexity using object-oriented methods.
  3. Write clear and well-documented code using descriptive identifiers, standard indentation, and adequate comments
  4. Write clear and well-documented code using descriptive identifiers, standard indentation, and adequate comments.
  5. Correctly and effectively use the following language elements: methods, conditional statements, loops, 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 and threads.
  6. Apply well-known software development principles and techniques including: stepwise refinement, incremental development, testing and debugging, and data encapsulation and information hiding.
  7. Design and implement Java language programs to implement mathematical concepts such as statistical array value analysis, sets, trigonometric functions, simple geometry, and complex numbers.
  8. Succeed in CS 21 and CS 24.

Course Textbook

Absolute Java, 2nd, 3rd or 4th edition, Walter Savitch, Addison Wesley


Course Materials and Resources


Responsibilities

You are responsible for the assigned reading, the self-scheduled lab hours, and what is discussed in each class meeting, including announcements, regardless of your attendance. If you are unable to make it to class, you should arrange to have someone else in the class take notes for you. Keeping up with the assigned reading and the course lectures is important for sucessful completion of the course programming assignments and exams. You should have the necessary materials to take notes during class.

Please do not contact me via email regarding the content of a class meeting that you missed.

This course requires active participation each day of class so it is important for you to attend every class session, arrive on time, and come prepared. Your participation not only enhances your own learning, it benefits other students in the class.

You are responsible for knowing how to calculate your grade (given your raw scores) in this class. I will review the calculation of weighted averages (at any of my office or lab hours) if you've forgotten how to do so.


Flexible Lab Hours

I will be assigning weekly exercises for you to complete during the semester from the sample problems in your textbook. These exercises will help you learn the course material, review important programming concepts, and prepare for your programming projects and exams. Arranged hours are class time and all students are expected to meet this number of hours per week to fulfill the requirements of this course. These exercises are collected but not annotated and returned. During the first two weeks of class, we will discuss the proceedures used to complete and track your required lab time (5 hours and 10 minutes per week.) Five percent of your grade comes the completion of these exercises. Please let me know if you have any questions regarding the online lab portion of the class.


Grading

You may obtain a letter grade (A, B, C, D, or F), or you may choose instead to take the class for pass/no pass. The latter option means that your grade for this course will be pass if you score at least 70.0% overall and no pass if you don't. Please declare the option you want on your student information sheet. You may change your grading option until the official college deadline. If you do not specify a preference, you will recieve a letter grade. Those who earn 90.0% or more of the possible points will get an A, 80.0% B, 70.0% C, 60.0% D, and lower F.


Homework and Programming Assignments

55% of your grade will be based on your homework. There will be six or seven assignments. Each assignment will be weighted the same. There is no final project.

Homework and programming assignments are due at the specified time and date. Late assignments will not be accepted (except as specified below.) If your work is not complete by the due date, your work will be reviewed for partial credit and you should proceed to the next assignment. Start small and at least get part of the program working and build from there; this way when you “turn in” the assignment, it will accomplish part of the goal. A program that does part of the assignment is better than a lot of code that does nothing. The programs will be evaluated primarily for working correctly. Programs that don't compile will receive a maximum score of 60%

Sample solutions to the assignments will be posted to the website or discussed in class after the assignment is due.


Flexible Late Days

You have two "flexible late days" that can be spent on any of the assignments except for the first assignment. You may allocate them any way that you wish. A "day" can be redeemed to submit an assignment after the deadline (between 1 minute to 1 day late) and still receive full credit. You may use both days for one project, or split them up and use them on up to two assignments. I will collect your assignment normally, but will "replace" your submission with an updated version. To redeem a "flex late day", please notify me via email. Your initial email notifying me that you are going to use a flex late day is due no later than 15 minutes before the due date and time of the assignment. A followup email is due when you are ready for me to collect the revised version of your assignment. Using a flex late day may subject your program to a delay before the program is graded and returned. Flex late days that aren't used during the semester can be redeemed for six (assignment) points of extra credit at the end of the semester.


How To "Submit" Programming Assignments:

Every assignment has an official file name or directory (for multi-file projects) name. At some time after the assignment is due, it will be automatically collected (copied) from your home directory on pengo. Filenames must be exact and are case sensitive. If you need a pengo account or forget your password, I can help you via email or office hours. Please contact me if you have any questions about this process.


Cheating, Plagiarism and Collusion

Review this page on Academic Integrity

It is useful is to collaborate with others. On the other hand, you are unlikely to learn the material unless you do your own work. Please ask me for guidance if you are uncertain about where to draw the line in collaboration.


Exams

There will be a mid-term and a final exam. Exams must be taken when given except by prior arrangement with me. Exams will be 40% of your final grade. The midterm and final exam will carry approximately the same weight. The midterm will be a closed-book writen exam taken in the classroom. The final exam will be a lab practical exam scheduled in the CTC.


Consulting with me

If you need some extra help, or need to consult with me regarding any course-related matter, please feel welcome to contact me during my scheduled lab or office hours. My lab and office hours provide times that are specifically reserved for helping you outside of the lecture. Make an appointment if you cannot come during my scheduled lab or office hours. My lab and office hours are shown on my web page.

This is a difficult course. Almost everybody is going to get “stuck” at some point in the semester. When this happens please don't hesitate to get some help. A little bit of help can save you hours of pounding your head against the wall. I have regular office hours and lab hours or you can send me email or call me.

Getting help in the CTC

Here's a link to instructor or tutor hours in the CTC Lab.

Students needing accommodations should contact the instructor as soon as possible. As required by the Americans with Disabilities Act (ADA), accommodations are provided to insure equal opportunity for students with verified disabilities. If you need assistance with an accommodation, please contact Disabled Student Services, Room 810, 479-6379, or Learning Skills Program, Room 1073, 479-6220.