Fall 2009: CS 302 - Object-Oriented Design
Course Syllabus

Course Session

Monday and Wednesday from 4:00-5:15 PM in Heritage Hall Building (HHB) 125

Course Instructor

Purushotham Bangalore
Email: puri@cis.uab.edu
Office: CH 130
Phone: 205-934-8604
Office Hours: Monday and Wednesday 3:00-4:00 PM (other times by appointment only)

Lab Sections

Section

Day

Time

Room

Instructor

Office Hours (CH 154)

302L-F7

Monday

05:30 - 07:20 PM

CH 435

Chun Wei

Xiao Li

Wed 2:00-4:00 PM

Mon 2:00-3:00 PM

Course Homepage

http://www.cis.uab.edu/cs302/fall2009/

Please login to WebCT at http://www.uab.edu/academiccourses for up-to-date course information.

Prerequisite

Undergraduate level CS 201 with Minimum Grade of C

Description

CS 302 is a continuation of CS 201 and emphasizes concepts of object-oriented software design. Topics include inheritance, recursion, algorithm analysis, sorting algorithms, graphs, hash tables, and data structures such as stacks, queues, and binary trees. This class has a laboratory component.

Objectives

  1. To introduce principles and practice of software design and development using the object-oriented programming approach.
  2. To develop the problem solving skills necessary to develop software solutions to problems.
  3. To design and analyze algorithms using recursion and data structures implemented as objects using the Java programming language.

Textbook

Data Structures and Problem Solving using Java, 3rd Edition by Mark Allen Weiss, Addison-Wesley, 2006. ISBN-10: 0321322134. ISBN-13: 9780321322135.

Reference

Java Software Solutions: Foundations of Program Design, 6th Edition by John Lewis and William Loftus, Addison-Wesley, 2008. ISBN: 0-321-53205-8 (CS 201 Textbook).

Grading Policy

Exams (2)

25%

Homework (5-6) (10% of overall grade assigned to writing)

30%

Lab Assignments (12)

10%

Lab Exams (2)

20%

Final Exam (Mon, Dec 7 4:15–6:45 PM)

15%

Late Submission

All assignments are due at the beginning of class on the due date. Any assignment turned in after this deadline is considered late. Late assignments will lose 10% for every 24-hour period, up to a maximum of 50% (weekends and holidays count as one 24-hour period). Assignments submitted after a week will receive a score of zero.

Class Conduct

  1. Students are expected to conduct themselves in a professional manner.
  2. Laptops will NOT be allowed in the class.
  3. Students must turn their cell phones/pagers OFF during the class.

Class Attendance

  1. Attendance is mandatory for both the lecture and lab portions of this course. If you know you will be absent for a legitimate reason, let the instructor know. If you are sick bring a doctor's excuse or a written university excuse to resolve the absences. An absence has to be resolved as soon as possible - otherwise it will not be treated as an excused absence.
  2. Students auditing this course are expected to attend the lectures. Auditing students with more than three unexcused absences will receive a failing grade.
  3. There will be NO make-ups for exams. If the absence is unexcused, the student will be assigned zero for that exam. A student anticipating an excused absence from an exam should make arrangements in advance to sit for the exam at another time.

Lab Policy

  1. The laboratory will start meeting from August 24, 2009.
  2. Attendance is mandatory for the lab and all students are required to complete the lab assignments assigned every week.
  3. Students must attend the lab during lab exams; there will NO make-up exams.
  4. All students are required to obtain a CIS account in order to use the machines in the lab; there will be no shared/guest accounts. If you do not have a CIS account please complete the application form at https://www.cis.uab.edu/account.
  5. All laboratory materials will be provided through WebCT. Students will also use WebCT for submitting lab assignments and homework.

Academic Honesty

Students who plagiarize a computer program (or parts of a program), get others to write a program (or parts of a program), or are found cheating on a quiz/exam, will be reported for academic dishonesty. Anyone who is caught cheating will receive a 0 on a given exam or homework. If a second offense occurs, the student will receive an F in the class. This includes both the provider of the information as well as the receiver of the information. Any student who violates the university's academic honesty policy will be reported for academic discipline. All university and department policies related to students are included here by implication.

Course Accommodations

Students who require course accommodations are requested to make an appointment with the instructor during office hours. Students with disabilities must register with Disability Support Services, HUC 516 or 934-4205, and provide an accommodation request letter to receive academic adjustments.

Add/Drop Policy

  1. Students can add/drop the course through August 25, 2009.
  2. Students can withdraw with a "W" by October 14, 2009.
  3. For more details about add/drop policies check with Registration/Academic Records.

E-mail

Every student will be required to use his/her official email address that is blazerid@uab.edu. New students must login and configure their email addresses. For more details on obtaining blazerid and configuring email please see: http://www.uab.edu/blazerid. All email communications will be made using this address. Additional instructions or announcements will be sent by e-mail, so check your mail often - at least twice a day (once in the morning and once at night). Also check the course WebCT page for up-to-date information and announcements. Instructor will check email frequently; e-mail is often the best way to contact the instructor.

Resources

  1. Java Developer's Almanac - Code Samples: http://java.sun.com/developer/codesamples/examplets/
  2. SUN Java Tutorials: http://java.sun.com/docs/books/tutorial/
  3. Source code for examples in the textbook: http://users.cs.fiu.edu/~weiss/dsj3/code/code.html

 

Tentative Lab Schedule

Date

Topics

Aug 24

Lab 1. Inheritance

Aug 31

Lab 2. Java Generics

Sep 7

Labor Day Holiday – No Lab

Sep 14

Lab 3. Collections

Sep 21

Lab 4. Collections

Sep 28

Lab 5. Recursion

Oct 5

Lab 6. Recursion

Oct 12

Lab Midterm Exam

Oct 19

Lab 7. Sorting

Oct 26

Lab 8. Sorting

Nov 2

Lab 9. Randomization

Nov 9

Lab 10. Games

Nov 16

Lab 11. Games

Nov 23

Lab 12. Simulation

Nov 30

Lab Final Exam

 


Tentative Lecture Schedule

Date

Topics

Comments

Aug 19

Overview and Introduction

 

Aug 24

Chapter 4. Inheritance

 

Aug 26

Chapter 4. Inheritance

Assign Homework-1

Aug 31

Chapter 6. The Collections API

 

Sep 2

Chapter 6. The Collections API

 

Sep 7

Labor Day Holiday – No class

 

Sep 9

Chapter 6. The Collections API

Homework-1 Due

Assign Homework-2

Sep 14

Chapter 5. Algorithm Analysis

 

Sep 16

Chapter 5. Algorithm Analysis

 

Sep 21

Chapter 5. Algorithm Analysis

 

Sep 23

Chapter 7. Recursion

 

Sep 28

Chapter 7. Recursion

Homework-2 Due

Sep 30

Exam-1

 

Oct 5

Chapter 7. Recursion

Assign Homework-3

Oct 7

Chapter 8. Sorting Algorithms

 

Oct 12

Chapter 8. Sorting Algorithms

 

Oct 14

Chapter 8. Sorting Algorithms

Last Day to withdraw

Oct 19

Chapter 9. Randomization

 

Oct 21

Chapter 9. Randomization

Homework-3 Due

Assign Homework-4

Oct 26

Chapter 10. Games

 

Oct 28

Chapter 10. Games

 

Nov 2

Chapter 12. Utilities

 

Nov 4

Chapter 12. Utilities

 

Nov 9

Chapter 13. Simulation

Homework-4 Due

 

Nov 11

Exam-2

 

Nov 16

Chapter 13. Simulation

Assign Homework-5

Nov 18

Chapter 11. Stacks and Compilers

 

Nov 23

Chapter 11. Stacks and Compilers

 

Nov 25

No Class

 

Nov 30

Miscellaneous Topics

Homework-5 Due

Dec 2

Review for Final

 

Dec 7 (Mon)

4:15–6:45 PM

Final Exam