Instructor: Janet E. Burge, 205V Benton Hall, 9-0347, burgeje-at-muohio.edu
Office Hours: Monday 3-4, Tuesday 11-12, Wednesday 3-4, Thursday 11-12
Prerequisite: A 'C-' or higher in CSA 174
Required Text: Savitch, Absolute Java, 3rd Edition
Additional References: See Course Documents on myMiami
Jump to the syllabus
Catalog Description: The design and implementation of software using object-oriented programming techniques that include inheritance, polymorphism, and composition. Students will analyze program specifications and identify appropriate objects and classes. Additional programming topics include recursion, using existing class libraries, exception handling, file IO and graphical user interfaces.
Course Learning Objectives:
- Design and implement programs using object-oriented programming techniques
- Use 3rd party class libraries to assist in problem solving
- Develop applications that incorporate exception handling
- Develop applications that include a graphical user interface (GUI)
- Store and retrieve data from permanent storage using an ASCII and binary data format
- Use recursion as a problem solving technique
- Use standard collection classes such as associative arrays and sets
Thus, at the end of the course , students will be able to:
CSA 271.1: To be able to design and implement computer programs using object oriented programming techniques
CSA 271.1.1 Implement basic control structures, nested control structures, well-specified classes, single and multi-dimensional arrays, input and output methods, and string methods as learned in CSA 174.
CSA 271.1.2 Use class libraries to assist in problem solving.
CSA 271.1.3 Make appropriate use of inheritance, polymorphism, composition, abstract classes, and interfaces.
CSA 271.1.4 Make appropriate use of two or more collection classes.
CSA 271.1.5 Read and write basic UML class diagrams.
CSA 271.1.6 Break a programming problem down into an appropriate set of classes and identify appropriate methods for each class. CSA 271.1.7 Research and use classes not studied in the course to address problems
CSA 271.2: To be able to write robust programs
CSA 271.2.1 Resolve compilation errors, validate program input, use the debugger to locate logic errors, and generate basic test cases as learned in CSA 174.
CSA 271.2.2 Design a complete set of test cases and use this to identify logic errors.
CSA 271.2.3 Effectively use exception handling features to write exception classes, handle exceptions, and throw problem specific exceptions.
CSA 271.3: To be able to use permanent storage to preserve the state of a program
CSA 271.3.1 Read and write data to text files.
CSA 271.3.2 Read and write data and objects to binary files
CSA 271.4: To be able to use recursion as a problem solving technique
CSA 271.4.1 Trace through recursive computations.
CSA 271.4.2 Recognize problem situations where recursion is appropriate and write recursive methods that process both numeric and structured data.
CSA 271.4.3 Describe and implement the mergesort and quicksort algorithms
CSA 271.5: To be able to design and develop applications with a graphical user interface
CSA 271.5.1 Use fundamental classes to design a rudimentary, but functional, user interface
Syllabus: Note: topics, dates, and assignments are subject to change at instructors discretion. Most projects are due shortly before midnight. You have two "late days" that can be used at any point during the semester except for the final project. Note that readings are somewhat approximate.
CSA 271 Syllabus
Week |
Date |
Topics |
Readings |
Assignments Due |
1 |
1/13 |
Class Intro |
Ch. 1-6 (review from 174) |
|
|
1/15 |
Inheritance |
Ch. 7.1 |
|
2 |
1/20 |
Superclasses/Encapsulation/Equals |
Ch. 7.2-7.3 |
Project 1 (Review): 21 January |
|
1/22 |
Casting/Polymorphism |
Ch. 8.1 |
|
3 |
1/27 |
Polymorphism |
Ch. 8.1 |
Project 2 (Inheritance) |
|
1/29 |
Abstract Classes |
Ch. 8.2 |
|
4 |
2/3 |
Interfaces |
Ch. 13.1 |
Project 3 (Polymorphism) |
|
2/5 |
Basic Design/UML |
Ch. 12.1 |
|
5 |
2/10 |
Basic Design |
Ch. 12.2 |
Project 4 (Abstract Classes) |
|
2/12 |
Array List |
Ch. 14.1 |
|
6 |
2/17 |
Testing |
Notes |
|
| |
2/18 |
Exam 1: 7 pm |
|
|
|
2/19 |
No Class (makeup for exam 1) |
|
|
7 |
2/24 |
Debugging |
Notes |
Project 5 (Array List) |
|
2/26 |
GUI |
Ch. 17.1-17.2 |
|
8 |
3/3 |
GUI |
Ch. 17.3 |
Project 6: (Design/OO Programming): UML part |
|
3/5 |
GUI |
Ch. 17.4-17.5 |
Project 6 (Design/OO Programming): Coding part |
9 |
3/10 |
Spring Break - no class |
|
|
|
3/12 |
Spring Break - no class |
|
|
10 |
3/17 |
Exceptions |
Ch. 9.1 |
|
|
3/19 |
Exceptions |
Ch. 9.2-9.3 |
Project 7 (GUI) |
11 |
3/24 |
Text File IO |
Ch. 10.1-10.3 |
|
|
3/26 |
Binary File IO |
Ch. 10.4 |
Project 8 (Exceptions)
|
12 |
3/31 |
Reading Recursion |
Ch. 11.1 |
|
| |
4/1 |
Exam 2, 7 pm |
|
|
|
4/2 |
Class Cancelled for Exam 2 |
|
|
13 |
4/7 |
Recursive Problem Solving |
Ch. 11.2-11.3 |
Project 9 (File IO) |
|
4/9 |
Recursive Problem Solving/Searching |
|
|
14 |
4/14 |
Sorting |
Notes |
|
| |
4/16 |
Sorting |
Notes |
|
15 |
4/21 |
Collections |
Ch. 16.1-16.2 |
|
|
4/23 |
References in Java |
Note |
|
16 |
4/28 |
TBD |
|
Project 10 Due (Final Project) |
|
4/30 |
Demonstrations |
|
|
17 |
TBD |
Final Exam |
|
|
Grading: The final grade for CSA271 is based on the following:
| Assignment |
Percentage |
| Attendance/In-class assignments/quizzes |
10% |
Projects (Note: to obtain a grade of C- or higher you must get 60% of the project points)
- Project 1 Review (3)
- Project 2 Inheritance (4)
- Project 3 Polymorphism (4)
- Project 4 Abstract Classes (4)
- Project 5 Array List (4)
- Project 6 Design/OO Programming (5)
- Project 7 GUI (3)
- Project 8 Exceptions (3)
- Project 9 File IO (4)
- Project 10 Final (6)
|
40% |
Exams
- Exam 1 (15)
- Exam 2 (15)
- Final Exam (20)
|
50% |
Grading Policy: Numeric grades will be given for all assignments.
| 98-100 = A+ |
92-97.9 = A |
90-91.9 = A- |
| 88-89.9 = B+ |
82-87.9 = B |
80-81.9 = B- |
| 78-79.9 = C+ |
72-77.9 = C |
70 - 71.9 = C- |
| 68-69.9 = D+ |
62-67.9 = D |
60-61.9 = D- |
| < 59.9 = F |
|
|
Academic Honesty: All work assigned as individual work must be done as individual work and in accordance with the departmental Academic Integrity statement. Violations will be handled in accordance with the Miami University Academic Honesty Policy.
|