SOUTH PUGET SOUND
COMMUNITY COLLEGE

SPSCC link


TITLE: Object-Oriented Programming II

DEPT: CS

NO. 143

CREDITS: 5


Hybrid course

COURSE DESCRIPTION Apply object-oriented concepts in the design and programming phases of application development. Includes graphical user interfaces, event-driven programming, recursive techniques, and simple data structures.

Prerequisite: CS 142

QUARTER/YEAR: Winter 2012  DAYS: T, Th and Fri   SECTION: EH  TIME: 11:00-11:50AM

PROFESSOR: Richard Hoagland

OFFICE LOCATION: 34-123

DIVISION: Applied Technology

OFFICE HOURS: Daily 9:00AM

PHONE No: 596-5313

E-MAIL: rhoagland@spscc.ctc.edu

STUDENT LEARNING OUTCOMES:

  Upon completion of the course, the student will be able to:
    A. Develop graphical user interfaces using Java's AWT and Swing packages
    B. Draw graphical shapes using Java's Graphics2D package
    C. Use multiple-dimension arrays
    D. Use recursive algorithms
    E. Demonstrate knowledge of ADT (Abstract Data Types) and Collections
    F. Demonstrate knowledge of Sorting and Searching data (ArrayList)
    G. Demonstrate knowledge of linked lists (single and doubly).
    H. Demonstrate knowledge of the Collections Stack

COLLEGE WIDE ABILITIES:

  Think logically and critically.

COURSE CONTENT:

  1. GUI (Graphical User Interface)
    1. AWT Package (Abstract Windowing Toolkit)
      1. Keyboard and Mouse Events
      2. Components, Actions, Layouts
    2. Swing
      1. Swing Overview
      2. The Root Pane Container Model
      3. Swing Components
      4. Other Swing Topics
      5. Building a GUI with Swing
    3. Event-Handling
      1. Event Model
      2. Listeners
  2. Java Graphics2D
    1. Graphics Coordinate System
    2. Drawing Shapes
    3. Borders & Fill
    4. Color and Fonts
  3. Multi-dimensional arrays
    1. 2D arrays
    2. Ragged arrays
    3. Variables
    4. Accessing and manipulating arrays
  4. Recursion
    1. Recursive functions
    2. Recursion or Iteration?
  5. ADT (Abstract Data Types)
    1. What Is a Collection
    2. Collections Framework
    3. Benefits of a Collections Framework
  6. Searching and Sorting
    1. Binary search
    2. ArrayList class
    3. Sorting algorithms
    4. Accumulating sorted data
  7. Linked Lists
    1. Linked list class
    2. Single/Doubly linked lists
    3. Nodes
    4. Adding/Deleting Nodes
    5. Traversing nodes in the list
  8. Stacks
    1. LIFO data structure
    2. Handling Exceptions
    3. Implementing a stack using a linked list

MATERIALS REQUIRED

Textbook: Introduction to Java Programming: Brief, 8/E, Pearson/Prentice Hall (Link)


Network storage is not available. Please bring a disk or USB storage device to store your work on.

COURSE FEATURES/POLICIES

  1. Academic Honesty: All work is to represent your own efforts rather than to be copied from another student. Cheating will result in a failing grade for the assignment or test. For the school's academic honesty policy, refer to the Code of Student Rights and Responsibilities found on the college's website.
  2. Homework: Homework may be done in the computer lab or elsewhere if the student has access to Eclipse (Java language version 5.0 or higher) or other suitable software. Homework will be graded using a Grading Sheet that is available. Students in the same class may work together as a group on a homework assignment (see Group Work). If two to four students work together to complete an assignment, only one solution should be submitted, with every students' names listed on the assignment Grading sheet. All parties need to actively participate in completing the assignment.
  3. Class Attendance: Attendance is not required. However, lack of attendance is likely to have an adverse impact on your ability to succeed in the assignments and tests and may also result in you missing important announcements. Check with instructor or other students for material covered on missed days. When coming in late or leaving early, please do so quietly to avoid distracting the class.
  4. Class Participation: Labs and small group exercises will be conducted each week that are to be completed by the end of the week. These hands-on class labs and group exercises will be collected as part of a portfolio of completed work turned in at the end of the course for grading.
  5. Late Assignments: Assignments are due by midnight of the due date specified and should be submitted to the dropbox available via the online portion of the course. Late assignments will be penalized 2 points per day late. No assignment will be accepted past one week from due date without prior approval of the instructor beforehand.
  6. Missed Exams: If you are unable to take a written exam due to illness or other reasons, you may request a make-up by informing the instructor before the exam by phone or email.
  7. Grades: Grades are available via the online portion of the course. Grade information is of course also available from the instructor
  8. Class Resources: Class materials are available via the online portion of the course and also on campus via the R: drive in the classroom or open labs.
  9. Printing: If you plan to do any printing, please donate a ream of paper. All printing done in the classrooms is based off donated paper; no paper, no printing. You can give the paper to me and I will put it in the cabinet for storage until needed.
  10. Printing during class: Please avoid printing during lectures, demonstrations, or whole-class discussions. The printer is loud and can be a distraction to people sitting near it. Good times to print are before and after class, or during help sessions.
  11. Financial Aid: Students receiving financial aid should ALWAYS check with Financial Aid prior to withdrawing, signing an incomplete contract, changing to audit, or receiving an F, V or W grade in a class.

INSTRUCTIONAL METHODS AND EXPECTATIONS

  1. Evaluation
    Homework     7 Assignments @ 25 points each = 175 points
    Capstone Project     ....................................................... 50 points
    Portfolio     ....................................................... 25 points
    Tests (includes Written & Online portions)    ...... 2 Exams @ 100 points each = 200 points
    Final exam (includes Exam & Take-home portions)     ..................................................... 125 points
                        Total overall - 575 points

  2. Homework
    Use the online portion of the class to turn in homework assignments. With instructor permission you may use the digital dropbox on the R: drive in the classroom or open labs. Programming assignments are graded using a Grading sheet provided for homework assignments.
  3. Tests
    Each test will have an online portion using True/False and Multiple Choice questions and a written portion taken in class using Short Answer questions. The final exam includes a take-home portion related to homework assignment learning outcomes.
  4. Incomplete
    In rare cases, the instructor may consider issuing an incomplete. An incomplete is available only if outside circumstance prevents a student, through no fault of their own, from reasonably completing the coursework on time. A student may be eligible for an incomplete if they have completed at least half of the coursework, are earning at least a C, and are able to complete the course no later than the subsequent quarter.
  5. Support Services Available
    Library, Writing Center, Math Center, Computer Labs, Disability Support Services, Tutoring via the technical program guidelines.

COURSE SCHEDULE/CALENDAR/DUE DATES

Please be aware, this schedule is tentative and subject to change. The latest version of the schedule will be kept posted via the online portion of the course and on the campus R: drive. Please read through the calendar below to note all due dates and exams. Homework is generally due on FRIDAY. Tests are generally on TUESDAY with a Review/Practice Test during the preceding week.

Week 1:       Mon 1-2* to Fri 1-6 Holiday (New Years Day)

Reading:Ch. 20 Recursion

Week 2:       Mon 1-9 to Fri 1-13

Reading:Ch. 12, 16 GUI Basics / Event-driven Programming
Homework: Assignment #0 due Fir 1-13

Week 3:       Mon 1-16* to Fri 1-20 Holiday (MLK Day)

Reading:Ch. 12, 16 Continues
Homework: Assignment #1 due Fri 1-20

Week 4:       Mon 1-23 to Fri 1-27

Reading:Ch. 17 Creating Graphical User Interface
Homework: Assignment #2 due Fri 1-27
Review:Test #1 Review (over chapters 12, 16 & 20) on Thu 1-26
Test:Test #1 Online available Fri-Sun 1/27-29

Week 5:       Mon 1-30 to Fri 2-3

Reading:Ch. 17 Continues
Test:Test #1 Written on Tue 1-31

Week 6:       Mon 2-6 to Fri 2-10

Reading:Ch 15, 18 Graphics / Applets & Multimedia
Homework: Assignment #3 due Tue 2-7

Week 7:       Mon 2-13 to Fri 2-17 (*Advising Day, Thu 2-16)

Reading:Ch 15, 18 Continues
Homework: Assignment #4 due Tue 2-14
Review:Test #2 Review (over chapters 15, 17) on Tue 2-14
Test:Test #2 Online available Fri-Sun 2/17-19

Week 8:       Mon 2-20* to Fri 2-24 Holiday (President's Day)

Reading:Multi-threading Supplement
Test:Test #2 Written on Tue 2-21

Week 9:       Mon 2-27 to Fri 3-2

Reading:Multi-threading Continues
Homework: Assignment #5 due Fri 3-2

Week 10:      Mon 3-6 to Fri 3-9

Reading:Data Structures Supplement
Homework: Assignment #6 due Fri 3-9

Week 11:      Mon 3-12 to Fri 3-16 (*Last day of Instruction, Thu 3-15)

Reading:Data Structures Continues
Homework: Assignment #7 due Tue 3-13
Homework: Capstone Project due Thu 3-15
Homework: Portfolio due Thu 3-15
Review:Test #3 Review (over chapter 18 & Supplements) on Thu 3-15
Test:Test #3 Online available Fri-Mon 3/16-19

Week 12:      Mon 3-19 to Fri 3-23 (*Final exam days*)

Test:Test #3 Take-home due Thu 3-22