COSC122 PROGRAMMING II
VALLEY VIEW UNIVERSITY
INSTITUTE OF COMPUTER SCIENCE
DEPARTMENT OF COMPUTER SCIENCE
JUNE 2012
|
Course Professor: |
Dr. Richard Halterman |
Email: |
halterman@southern.edu |
Phone: |
0000-000000
|
|
Course Teaching Assistant: |
Mr. Mukuze Nelson |
Email: |
|
Phone: |
0026-8201650 |
Course Description
This course is a follow up to COSC121 with a focus on object-oriented programming (OOP). The course provides students with an in-depth coverage of OOP principles and techniques using Java as the programming language. By concentrating on the semantics and syntax of Java to demonstrate object-oriented principles, students will gain a solid basis for further study of the Java language and of object-oriented software development. Also, students will be introduced to graphical user interface designs using Java. Topics covered include: objects, data abstraction, data encapsulation, polymorphism, and inheritance. Further, program control, methods, arrays, strings, file handling, exception handling, generics, applets and the use of UML are covered. Prerequisite: COSC121.
Course Objectives
On successful completion of this course, the student should be able to:
- Explain the concept of object-oriented programming;
- Use the syntax and semantics of Java to express solutions to programming problems;
- Demonstrate the ability to use object-oriented programming techniques by developing solutions to problems using data abstraction, encapsulation, and inheritance;
- Apply basic data types, data structures and computational algorithms in the design of programs to solve problems;
- Appreciate program documentation and apply it when developing solutions to solve problems;
- Develop the skill of listening, self-confidence, and appreciating criticism from peers through peer review of research/project presentations by other students.
Course Textbooks:
1. Richard Halterman, Fundamentals of Programming and Software Design using Java, 2012.
2. Y. Daniel Liang, Introduction to Java Programming: Comprehensive Approach, Pearson Prentice Hall, 8th edition, 2010.
3. Tony Gaddis, Godfrey Muganda, Starting out with Java, Scott Jones Publishing, 2nd edition, 2010.
Teaching Methodology
Lecturing, research/programming project presentations and discussions.
Class Attendance
Students are required to attend classes every day usually on days specified in the department’s timetable. Do not miss class. You are responsible for all announcements and material covered in class, whether or not you were physically present. It is your responsibility to obtain handouts, notes, and materials for any classes you may have missed. Do not miss an exam; make-up exams will not be given unless there is a valid advance reason for missing an exam. Arrangements must be made in advance by contacting me at least two days before the scheduled exam date to arrange an alternative time. Students are also required to attend scheduled lab sessions.
Class Study
Appropriate study for the course includes reading the textbooks (at least as far as last class's lecture material), experimenting with the programs from the book and programs we develop in class, and working through the exercises at the end of each chapter. Daily quizzes encourage students to remain current in their class preparation. Usually quizzes will be distributed at the beginning of the class period. Missed quizzes may not be made up; however, the lowest quiz score will be dropped.
Class Tests
Students will be required to take a midterm and final examination. The midterm exam is on June 14, and the final is on June 28.
Programming Exercises
Students will be required to undertake programming exercises aimed at implementing the theories, principles and concepts taught in class. A student shall lose 10% of the score for each day after the required date of submission unless the late submission is substantiated with acceptable reason(s). The deadline for all assignments is June 23; no assignments will be accepted after that date.
Programming Project
There will be a one-half semester long project which students must complete by June 27. While students may ask for assistance in debugging, this project is to be entirely one’s own work. Any student who fails to submit this project shall be given a failing grade.
Evaluation
The average used to determine the final grade is computed from the following class activities and is weighted as indicated.
Activity
Weight
Programming assignments and Project
10%
Quizzes
10%
Midterm Examination
20%
Final Examination
60%
Total
100%
Grading Scale
Average
Grade
80–100
A
75– 79
A–
70– 74
B+
65– 69
B
61– 64
B–
56– 60
C+
50– 55
C
45– 49
C–
40– 44
D
0– 39
F
Useful Web Resources
1. The official Java documentation : http://docs.oracle.com/javase/7/docs/
2. Java tutorials: http://docs.oracle.com/javase/tutorial/
3. Eclipse IDE: http://eclipse.org
4. NetBeans IDE: http://www.netbeans.org
6. http://www.programmersheaven.com/
CLASS SCHEDULE Approximate dates when topics will be covered
June 4
Java overview
Java program development
IDEs: Eclipse and NetBeans
The main() method
Primitive data types
Variables
Constants
Assignments
Initializations
Operators
Simple I/O
The Scanner Class
June 5
Control statements
Creating and using methods
Passing parameters by value
Overloading methods
Scoping issues
Method abstraction
Introduction to OO analysis
and design using UML
Defining classes for objects
File I/O
Assignment #1 due; Quiz #1
June 6
Constructors
Reference Variables
Aliasing
Garbage collection
Java memory model
The Java class library
Visibility modifiers
Accessors and mutators
Member encapsulation
Assignment #2 due; Quiz #2
June 7
Immutable objects
Passing objects to methods
Java packages
JAR files
Static variables, constants,
and methods
Variable scope
The this keyword
Abstraction and
encapsulation
Quiz #3
June 11
Superclasses and subclasses
Overriding methods
Class hierarchies
The Object class
Polymorphism and dynamic
binding
Inheritance vs. composition
Assignment #3 due; Quiz #4
June 12
GUI components
The Java Swing API
Frames and panels
Event-driven programming
Quiz #5
June 13
Layout managers
Hierarchical containment
Standard widgets
Assignment #4 due; Quiz #6
June 14
Midterm Examination
Array variables
Accessing array elements Array initialization
Passing arrays to methods
June 18
Copying arrays
Returning an array from a
method
Arrays of objects
Array sorting and searching
Multidimensional arrays
Quiz #7
June 19
String literals
The String class
Command-line Arguments
Operations on Strings
The character class
Quiz #8
June 20
Generic programming
Casting objects and the instanceof operator
Final classes and methods
Assignment #5 due; Quiz #9
June 21
Collection classes
Iterators
Abstract classes
Interfaces
Design patterns
Quiz #10
June 25
Need for exceptions
Exception class hierarchy
Checked vs. unchecked
try/catch/finally
throws clause
Handling vs. declaring
exceptions
System exceptions vs.
application exceptions
Custom exceptions
Assignment #6 due; Quiz #11
June 26
The Applet class
The JApplet class
HTML File and
<applet> tags
Passing strings to applets
Enabling applets to run as
applications
Multimedia applications with
applets
Quiz #12
June 27
Project presentations
(Time permitting)
Concurrency
Threads
Synchronization
Deadlock
Liveness and safety
Project due
June 28
Final examination