Object Oriented Programming in Java
95-707
Revised 05/25/2000

Course Description

Section: M
Units: 12
Days: Thursday
From 5:30 To 9:00
Room: HBH 1000
Instructor: Alain Kouyate

Intended for students with some programming experience, this course introduces computers as problem solvers using the Java programming language. Students will learn to decompose problems into algorithms and data structures and then code, debug, analyze, maintain and document programs using techniques of good programming style. Related topics include the basic aspects of abstraction, recursion, parameter passing, file I/O and classes. Examples are drawn from data mining, artificial intelligence, computer architecture, parallel computing, distributed computing and cryptography. Students explore different ways to think about problem solving including top-down decomposition, object-oriented programming, client/server networking and event-driven programming (such as that used in graphical user interfaces). Programs include constructing Java stand-alone applications as well as applets that run within web pages. Knowledge of the concepts and material presented in the course will give students better problem-solving skills and insight into today's computational environment.

Contact Information

For all questions and correspondance please use: <TBD>
Questions will be generally answered within 12 hours.

Office Hours

Name
Day & Time
Email
Phone#
Alain Kouyate M-6pm-8pm
(with appointment)
kouyate.ax@mellon.com 412-606-2728
Ridzwan Nordin M-2pm - 3:20pm reez@andrew.cmu.edu
Eungsang Kim TBD ek2t@andrew.cmu.edu
Jingmei Liu W -1:00 - 2:00pm jingmei@andrew.cmu.edu  

Books

There is no required textbook for this course. The main source of study material will come from www.javasoft.com and the java tutorial section at <http://java.sun.com/docs/books/tutorial/>.

A reference book is strongly recommended. One of the best is:
Java in a Nutshell by Flanagan
A Desktop Quick Reference, 3rd Edition, O'Reilly

Grading

Homework assignments: 25%
Quizzes: 25%
Final: 25%
Term Project: 25%
Participation: 5%

  • The lowest score for both the homework assignments and quizzes will be eliminated. Therefore no make up of either the homework assignments or quizzes will be permitted.
  • Home work assignments will be due at the beginning of the class period.

Coding Standards

<TBD>

Schedule

Links Subject
Lecture
Quizzes

Assignments

SUN01
SUN02
SUN03

ppt1

ppt2

Getting Started

  • Course Overview
  • Object-Oriented Programming
  • Language Basics
1

SUN03

ppt3

Learning the Java Language:

Language Basics

  • Variables
  • Operators
  • Expressions
  • Statement and Blocks
  • Control Flow Statements
  • Comments and JavaDoc
2
Q1

 

NO CLASS

 

 

3

A1 [solution]

SUN05

SUN06

Learning the Java Language:

Object and Data Basics

  • Objects
  • Arrays
  • Strings
  • Number Objects
  • Formatting Numbers
4
Q2 A2

SUN05

SUN06

Learning the Java Language:

Classes, Interfaces, and Packages

  • Creating Classes
  • Managing Inheritance
  • Creating Interfaces
  • Implementing Nested Classes
  • Creating and Using Packages
5
Q3  
SUN07
SUN08
SUN09

Advanced Classes:

  • Properties
  • System
  • Exceptions
  • Java Beans
  • Reflection
  • Threads
6
Q4 A3

SUN10
SUN11
SUN12

Advanced Classes:

  • Collections
  • JDBC
  • Applets
7
Q5  

GUI Building

  • History of AWT
  • JFC/Swing
8

Object Oriented Design

  • Models
  • UML
  • Case Study
9
 

Distributed Objects

  • Networking Classes
  • RMI
10

Term Project Overview

Advanced Java Technology

  • Servlets
11
 

Term Project Q & A

Advanced Java Technology

  • Enterprise Java Beans
12

Term Project Q & A

Advanced java Technology

  • Security
13