COURSE INFORMATION

 

Course Objectives


Prerequisites

Math 111 or equivalent (Math 108 and 109) with a grade of C or higher.

 


Meeting Times

Lectures: 9:00am – 9:50am MWF, ASA 118C

Lab sessions: Faner 1028

- Section 1: 9:00am – 10:50am T

- Section 2: 11:00am – 12:50pm T

- Section 3: 1:00pm – 2:50pm T

 


Course Personnel

Instructor: Kenny Fong

Office: Faner 2132

Email: kfong@cs.siu.edu

URL: http://www.cs.siu.edu/~kfong

Tel: (618) 453-6032

Hours: 3:30pm 5:00pm TR

 


TA: Xiaopeng Cao

Office: Faner 3129
Email: xiao8418@yahoo.com
Tel: (618) 453-6036
Hours: 10:00am 11:00am MW, 2:00pm 3:00pm M

TA: Marshall Riley

Office: Faner 3129
Email: mriley@cs.siu.edu
Tel: (618) 453-6036
Hours: 12:00pm 1:00pm MW, 10:00am 11:00am F

 


 

Text

 

Java Software Solutions: Foundations of Program Design, 6th Ed., by John Lewis and William Loftus, Addison Wesley, 2009

 


 

Course Homepage

 

http://www.cs.siu.edu/~kfong/cs202

 


 

Grading

 

The following grading scheme is tentative and is subject to change. Assignments are not equally weighted. Regardless of your grades in assignments, you cannot pass the course if your fail (i.e. below 50%) more than one exam.

 

Lab assignments (5): 25%

Homework sets (10): 15%

Lab session exercises (15): 15%

Exams (3): 15% × 3

Tutorial exercises (12): +6%

 


 

Course Policy

 

Attendance. Due to the nature of the course and the frequency of assignments, attendance is mandatory. You are responsible for all announcements and for all material presented in the lectures and lab sessions. Come prepared for class. Read the assigned material in advance of the lectures that cover the material. After the lecture, reread the material. Your attendance in the lectures will be monitored and/or recorded regularly, and your final course grade will be dropped one letter grade if the instructor deems your attendance record unsatisfactory. Note that lab sessions provide lab exercises and cover different material from lectures and so lectures cannot substitute for lab sessions and vice versa. For any three unexcused absences from lab sessions, your final course grade will be dropped one letter grade.

 

Assignments. There will be five lab assignments and ten homework sets. Lab assignments involve programming, and homework sets contain questions that require written answers. Each lab assignment must be submitted electronically through the Blackboard Learning System at https://mycourses.siu.edu by 9:00pm on the specified due date. Your solution to the homework sets can be written or typed. All homework sets are due at the beginning of the class on the specified due date. No late assignments are accepted. You may talk to the TAs for any grade appeal about an assignment, but it must be made within one week after the assignment is handed back. The teaching staff will be available in their offices during their office hours to answer any questions regarding the assignments and the course in general. You may also post your questions on the discussion forum in the Blackboard Learning System, but any thread that may reveal the solution to an assignment problem will be deleted.

 

Exams. There will be two midterm exams and one final exam at the following times and locations:

Midterm Exam 1: Thursday, March 5, 5:00pm – 6:50pm, EGRA 111

Midterm Exam 2: Tuesday, April 21, 5:00pm – 6:50pm, EGRA 111

Final Exam: Wednesday, May 6, 8:00am – 9:50am, ASA 118C

All exams are closed-book but not comprehensive. Additional review sessions are scheduled prior to the exams. There will be no make-ups except under very special circumstances. Any reason for a make-up must be approved by the instructor. You must talk to the instructor, not the TAs, for any grade appeal about an exam, and it must be made within one week after the exam is handed back.

 

Tutorials. Starting from the fourth week of the semester (February 2), tutorials will be held on Wednesdays and Thursdays, 4:00pm – 6:00pm, at Lindegren 18 (cancelled on March 5 and April 16). Attendance in tutorials is optional, but strongly encouraged. In each tutorial, an independent tutor will first go over sample problems that are typical in upcoming assignments and exams. You will then be provided with a similar exercise to work on, and the tutor will go over the solution after you complete the exercise. Finally, you will be allowed to study for or work on your own lab and homework assignments related to this course and request real-time assistance from the tutor if you are stuck. It is sufficient for you to attend one tutorial per week, and any points you receive from the tutorial exercises are counted as bonus points towards your final course grade, for a maximum of six bonus points. In order to receive the bonus, you must come to the tutorial on time and must not leave prematurely until the tutor stops teaching.

 

Programming Environment. All programs in lab assignments must compile and run in the JDK 6.0 environment. You will be instructed to develop Java programs using DrJava during lab sessions. All of the necessary software can be freely installed on your PC. You can find instructions on how to install the development software at http://www.cs.siu.edu/~kfong/cs202/resources/install.html. Please consult the TAs first for any technical questions regarding the development environment.

 

Collaboration and Plagiarism. All assignments are to be done individually unless otherwise specified. You are allowed and even encouraged to verbally discuss the assignment material with your classmates or consult the teaching staff for debugging assistance, but you must prepare the solution on your own. Plagiarism and other anti-intellectual behavior are not tolerated and are subject to severe penalties. For more information, please carefully read the Departmental Policies on Academic Dishonesty available at http://www.cs.siu.edu/operatingpaper_content_6.html.

 

Time Management. This course is an extremely time-demanding course. Moreover, you cannot survive in Computer Science without passing this course. It may not be a good idea to take this course together with other time-consuming courses. Please plan your time and course schedule wisely, and start work on the assignments as soon as they are available. Your effort pays!

 


 

Course Topics

 

The following topics will be covered in regular lectures. Other topics, such as program development and file I/O, will be covered in lab sessions.

 

Computer Systems

Chapters 1.1, 1.2, 1.5

Introduction to Java

Chapters 1.4, 2.1

Primitive Types and Arithmetic Expressions

Chapters 2.2, 2.3, 2.4, 2.5

Using Classes and Objects

Chapters 1.6, 2.6, 3.1, 3.2, 3.3

Selection Statements and Boolean Expressions

Chapters 5.1, 5.2, 5.3, 5.4

Iteration Statements

Chapters 5.5, 5.7, 5.8

Java Applets

Chapters 2.7, 2.8, 2.9

Defining Classes and Methods

Chapters 4.1, 4.2, 4.4, 4.5, 6.4, 6.8

Encapsulation

Chapters 4.3, 6.4

Static Members and Wrapper Classes Chapters 3.8, 6.3
References Chapters 3.1, 6.4, 6.7
Arrays Chapters 7.1, 7.2, 7.3, 7.6
Searching and Sorting Chapters 9.4, 9.5