CSCI 1302 Advanced Programming Principles, Spring 2009



Dr. Y. Daniel Liang

Computer Science Dept

Lecture Sessions:

Section 03 TR 4:30-5:45 SC 1503B


Introduction to Java Programming Brief Version, Seventh Edition, Y. Daniel Liang, Prentice Hall, May 2008

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.


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 this course, students will be able to understand OOP and gain practical skills to solve real-world programs using Java.


CSCI 1301

Tentative Schedules 


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 7, S7.1-7.3

L2: Constructors, Visibility Modifiers, Class Encapsulation,

Accessors, Mutators, get and set Method Conventions

Chapter 7, S7.4-7.5
2 L3: Pass Objects to Methods, Static and Instance Variables and Methods Chapter 7, S7.6-7.7


L4: Scope of Variables, Array of Objects

Chapter 7, S7.8-7.10

L5: The String Class

Chapter 7, S7.11-7.12
  L6: The Character Class, the StringBuilder/StringBuffer Class Chapter 8, S8.1-8.2

L7: Pass Command-Line Arguments, text IO

Chapter 8, S8.3-8.4

L8: Immutable classes, The keyword this

Chapter 8, S8.5-8.6
L9: Thinking in objecting Chapter 9
L10: Inheritance, the super Keyword,  Overriding Methods Chapter 10, S10.1-10.3.

L11: Polymorphism, Dynamic Binding, Casting, ArrayList

Chapter 10, S10.4-10.10
Exam 1 and Post-Exam Review  
 7 L12: Abstract Classes and interfaces Chapter 11
  L13: OOP design and patterns Chapter 12
8 L14:Java GUI Programming, JFrame, Container, Layout Managers, JPanel Chapter 13
  L14: Graphics, Color, Font, FontMetrics, Drawing Text and Figures Chapter 14

L16: Event-driven Programming

Chapter 15
  L17: Event-driven Programming, animation using Timer Chapter 15

Exam 2 and Post-Exam Review


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

Combo Box, Radio Button, List, Borders

Chapter 16

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


Chapter 17

  L20: Sound and images in applets Chapter 17

L21: Exception Handling

Chapter 18

L22: Software Development Process, Analyze Relationships among

Objects (Association, Aggregation, Composition, Inheritance),

Class Development Guidelines

Chapter 12
13 L23: Free time (federal and university holidays)  
  L24: Free time (federal and university holidays)  

L25: Binary I/O

Chapter 19
15 L26: Review for Final  
  L27: Programming exercise review

Final Exam


Tentative 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 makeup will be offered except under extraordinary situations. In addition to submitting a hard copy, students must also submit the programs to LiveLab. Your grades will be recorded on LiveLab.


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

Two Exams  17.5% Each (75 minutes each) (Tentative)
Final Exam 30% (2 hours)
Class Attendance 5% (Attendance will be checked regularly. Missing classes frequently will be automatically dropped out of class.)





>= 90.0

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

Programming Documentation and Style

Click here to see Programming Documentation and Coding Style.

Grading Policy

If a program can be automatically graded, LiveLab will assign a score. Partial credits may be justified for some cases. If a program cannot be graded automatically, it will be graded manually and a score will be entered in LiveLab.

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 ( 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.