Spring 2011: ITI 202: Object-Oriented Programming

[ Home ] [ Schedule ] [ Project ] [ Resources ] [ Sakai ]

Class meetings: Tuesday & Thursday, 2:50-4:10pm, CI-119.
Instructor: Dr. Chirag Shah
Email:
Phone: (732) 932-7500 x8240
Office: Room 336 in SC&I
Office hours: Tuesday and Thursday 2pm, or by appointment
Grading assistant: Alexander Duryee
Latest news/announcements
● 05/07/2011: Final grades are posted. That's all folks!
● 05/06/2011: Final project has been graded.

Course Description
This course introduces students to the principles of object-oriented analysis, design and programming. The focus is on developing creative thinking for analyzing a problem domain and designing a solution, and on using the Java programming language to implement it. Analysis, design and construction of programs will be discussed and the basic skills of writing, testing and debugging will be emphasized.

Prerequisites
ITI 201: Introduction to Computer Concepts

Course Materials
The primary book for this course will be Java Concepts by Cay S. Horstmann: 5th or 6th edition. We will use Eclipse IDE as the main software tool to write and run Java programs. See resources page for more details.

Learning Objectives
By the end of the course, students should be able to:
  • Apply critical thinking to analyze the requirements of a simple application and build a model of the problem;
  • Use the Unified Modeling Language (UML) and object-oriented design principles to develop a conceptual solution;
  • Use the Java programming language to implement the designed solution;
  • Use visual programming tools to sketch and build simple user interfaces;
  • Apply testing and debugging to ensure the correctness and efficiency of the application.

Instructional Methods
Programming is as much an art as it is a science. Part of the practice of programming in any language is to internalize how a programming language works and to acquire enough experience with that language to avoid common pitfalls. To that end the class will be taught as a mixture of lecture, discussion and lab, in an effort to provide an accelerated path to experience. Students will program in class in teams together. Occasionally, teams will swap code, in order to understand the utility of writing clear code and the challenge of working with code written by others. The first several weeks of class will be spent learning the syntax of Java and the use of basic tools used to create and correct programs. After this, parts of the Java libraries will be introduced as well as a focus on parts of Java that organize larger blocks of code such as abstraction and interfaces. Depending on how quickly this material is covered and the problems encountered along the way, we will also discuss generics, GUI programming, profiling, craftsmanship, techniques common to large programming projects, and other topics that are of interest to the class.

Topics
  • Introduction to object-oriented programming; contrast to procedural programming
  • Algorithms and flow-charts
  • Writing, compiling, running, and debugging Java programs
  • Data types
  • Decision-making
  • Arithmetic, logical, and Boolean operators
  • Iterations and loops
  • Arrays
  • Method calls
  • Designing and deriving classes
  • Interfaces and code reuse
  • Polymorphism
  • Inheritance
  • Input-output and file handling
  • Exception (error) handling
  • Graphical User Interface (GUI) and Applets

Assignments, Quizzes, and Project
There will be an assignment at the end of almost every class, which will be due the day before the following class. A total of 5 quizzes will be administered during the semester. Each quiz will be given in the beginning of a class as listed on the schedule. Each student will choose a personal project for the mid-term examination. This project will be converted into a group project and advanced further for the final project submission.

Course Assessment
Grading is based on assignments, lab exercises, quizzes, etc. as well as class participation. Course grades are assigned according to the following:
  • A   (91-100%): Outstanding and excellent work of the highest standard, mastery of the topic, evidence of clear thinking, good writing, work submitted on time, well organized and polished.
  • B+ (85-90%:) Very good work, substantially better than the minimum standard, very good knowledge of the topic; error free.
  • B  (80-84%): Good work, better than the minimum standard, good knowledge of the topic.
  • C+ (74-79%): Minimum standard work, adequate knowledge of the topic.
  • C   (70-73%): Work barely meeting the minimum standard, barely adequate knowledge of the topic; errors.
  • D   (65-69%)  Writing not up to standard, disorganized, many errors
  • F  (< 65%): Unacceptable, inadequate work
  • T: Temporary.
The final grade will be weighted based on the following: Assignments: 50%, Quizzes: 20%, Mid-term project: 10%, Final project: 15%, Class participation: 5%

Course Policies
Announcements: Students are responsible for all announcements made in class, whether or not they are present when the announcements are made.
Late submissions: Deadlines are your responsibility. Late submissions may be accepted with a penalty. In the case of unforeseen emergencies (e.g. with a doctor's note), or with a prior permission from the instructor (obtained before the due date), late submissions will be graded normally. Late submissions will not receive any verbal or written feedback.
Communication: For emails, Rutgers accounts preferred. Always include your name (esp. if emailing from non-Rutgers account) and always include the course number (ITI 202) in subject line. If you don't, your email most likely will not be read. This course uses Sakai, primarily for submitting assignments and posting grades. Speaking of communication, please turn off or silent your cellphones and anything that can spontaneously make noise before entering the class.
Attendance: Students are expected to attend and participate in all class meetings and lab sessions. If you cannot come to a class meeting, you should contact the instructor and provide an explanation. Note that class participation accounts for 5% of the final grade (see the grading policy below). You are responsible for obtaining any material that might have been distributed in class the day when you were absent.

Academic Integrity
Academic integrity means, among other things:
  • Develop and write all of your own assignments.
  • Show in detail where the materials you use in your papers come from. Create citations whether you are paraphrasing authors or quoting them directly. Be sure always to show source and page number within the assignment and include a bibliography in the back.
  • Do not look over at the exams of others or use electronic equipment such as cell phones or MP3 players during exams.
  • Do not fabricate information or citations in your work.
  • Do not facilitate academic dishonesty for another student by allowing your own work to be submitted by others.
If you are doubtful about any issue related to plagiarism or scholastic dishonesty, please discuss it with the instructor.
The consequences of scholastic dishonesty are very serious. Rutgers' academic integrity policy is at this site. An overview of this policy may be found here. Multimedia presentations about academic integrity may be found here and here.

How to Succeed in this Course
  • Successful students will attend class regularly. If you know you must miss a class, please contact the instructor in advance, either by phone or email. You can obtain assignments or notes from a fellow classmate or from the instructor. In the case of a prolonged absence from class, you should schedule an appointment with the instructor so we can discuss the course material and concepts that you missed.
  • Successful students will pay close attention to the course goals and objectives, because they will help you master the course material. If you have any questions about any of the objectives, please ask the instructor. Questions are encouraged during class for clarification. Remember that you're probably not the only one in the class with the same question. If you have questions about material from previous classes, please email me prior to the next class session, and I'll address your question at the beginning of the class session, prior to any quizzes.
  • Successful students will talk to their classmates about the course material. You will find that they can help you understand many complex issues.
  • Successful students will come prepared to the class with assigned readings for that class. This will help you comprehend the material for that class better. Regular assignments will also be given at the end of each class. Doing these assignments and turning them on time (typically before the next class), will help you obtain higher-order learning goals for this course.

Professionalism
  1. Access the class material promptly and on time.
  2. Respect yourself, classmates, and the instructor.
  3. Participate in class discussions.
  4. Display preparedness for class through completing reading assignments.
  5. Present content knowledgeably with supported reasoning.

Chirag Shah ● Last update: May 7, 2011 ●