CSCI 1302 Advanced Programming Principles, Fall 2005

 

Instructor:

Dr. Y. Daniel Liang
liang@armstrong.edu

Computer Science Dept

Lecture Sessions:

Section 01 MWF 9:00-9:50 SC 2506

Textbook:

Introduction to Java Programming Custom Core, Fifth Edition, Y. Daniel Liang, Prentice Hall, 2004

Course Description 

The emphasis of this course is on object-oriented programming. Students will learn reusing software through a collection of Java predefined classes and developing their own classes using encapsulation, polymorphism, inheritance, and abstraction. Students will be introduced to the core Java API, including how to write Java applications and Java applets, how to create graphical user interface, how to deal with exceptions, and how to write simple file IOs.

Goals 

The goals of Advanced Programming Principles are that students, by mastering the topics presented in this course, further develop problem solving skills and Java knowledge that will enable them to become proficient in object-oriented programming with Java characteristics.

Course Objectives 

Upon successful completion of Advanced Programming Principles, students will be able to understand OOP and gain practical skills to solve real-world programs using Java.

Prerequisites 

CSCI 1301

Tentative Schedules 

WEEK TOPIC REQUIRED READINGS
1

L1: Why Objects? Define Classes, Create Objects and Declare Reference

Variables, Difference Between Primitive Type Variables and Reference

Type Variables, Garbage Collection, Using Objects

Chapter 6, S6.1-6.3
 

L2: Constructors, Visibility Modifiers, Class Encapsulation,

Accessors, Mutators, get and set Method Conventions

Chapter 6, S6.4-6.5
2 L3: Pass Objects to Methods, Static and Instance Variables and Methods Chapter 6, S6.6-6.7

 

L4: Scope of Variables, The keyword this, Array of Objects

Chapter 6, S6.8-2.10
3

L5: Class Abstraction, Case Studies, Overview of Java API

Chapter 6, S6.11-6.12
  L6: The String Class Chapter 7, S7.1-7.2

L7: The Character Class, the StringBuffer Class

Chapter 7, S7.3-7.4
 

L8: The StringTokenizer Class, Pass Command-Line Arguments

Chapter 7, S7.5-7.6
L9: Inheritance, the super Keyword,  Overriding Methods Chapter 8, S8.1-8.4
L10: The protected and final keywords, the Object Class Chapter 8, S8.5-8.6.
6

L11: Polymorphism, Dynamic Binding, Casting

Chapter 8, S8.8-8.9
Exam 1 and Post-Exam Review  
 7 L12: Abstract Classes, Chapter 9, S9.1-9.2
  L13: Java GUI Programming, JFrame, Container, Layout Managers, JPanel Chapter 11, S11.1-11.5
8 L14: Graphics, Color, Font, FontMetrics Chapter 11, S11.6-11.8
  L14: Drawing Text and Figures Chapter 11, S11.9-11.10
 9

L16: Interfaces

Chapter 9, S 9.3 - 9.6
  L17: Event-driven Programming Chapter 10, S10.11
10 

Exam 2 and Post-Exam Review

 
 

L18: Creating GUI, Buttons, Labels, Text Fields, Text Area, Check Box,

Combo Box, Radio Button, List, Borders

Chapter 11, S11.1-11.10
11

L19: Applets, Passing Parameters to Applets, Enable Applets to Run

Standalone

Chapter 12, S12.1-12.7

  L20: Mouse Events and Keyboard Events Chapter 12, S12.8-12.9
12

L21: Exception Handling and Assertions

Chapter 13, S13.1-13.8
 

L22: Software Development Process, Analyze Relationships among

Objects (Association, Aggregation, Composition, Inheritance),

Class Development Guidelines

Chapter 9, S9.1-9.5
13 L23: Wrapper Classes, Rational Class, Generic Programming Examples Chapter 9, S9.6-9.7
  L24: Set, List, Vector, Queue, Stack, Review Chapter 9, S9.8
14 Exam 3 and Post-Exam Review
 

L25: I/O (Stream, Byte Stream and Character Stream, File Class,

File Stream

Chapter 17, S17.1-17.5
15 L26: Print Stream, Buffer Stream, and File Dialog Chapter 17, S17.6-17.7
  Review for Final  
  Final Exam  

Evaluation Scheme

Evaluation is based on attendance, programming exercises, midterm exams, and final exam. Evaluation scheme is subject to change with a prior notice.

Programming assignments must be done individually.  Source file printout must be submitted in the class on the due day regardless its status (complete or incomplete). No makeups will be offered except under extraordinary situations.

Exercises

20% (Due dates will be announced in the class.)

Three Exams  15% Each (Multiple choice questions + programming) (50 minutes each)
Final Exam 35% (Multiple choice questions + programming) (2 hours)

 

Grade

Points

A

>= 90.0

B >=80.0
C >=70.0
D >=60.0
F <60.0

Grading Policy

20% on Programming Style and Documentation.

80% on Correctness.

Academic Honor Code

Programming assignments must be done individually. Failure to do so will result in a violation of the AASU Academic Honor Code. The following cases will be considered as violations: identical code, and extremely similar code. Violations will be reported to the Office of Vice President of Student Services.

Attendance Policy

Attendance is mandatory. Send me (liang@armstrong.edu) an email in advance if you have to miss a class due to emergency or sickness. Please arrive in the class at least three minutes before the class.

Class Picture

From left: ?, Arron Washington, Ryan Roman, Alex Moisant, Sara Rodelo, Michael Cross, Chris Ogden, Robert Stewart, Anthony Whitttle, Brian Eddy, Ellis Garvin, David Stevens

Not shown in the picture: David Peabody