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:

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                                                                                                  

5.       http://www.codeguru.com

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