CSCI 1302 Advanced Programming Principles Dr. Joy Reed Spring 2008 Prerequisite: CSCI 1301 Introduction to Programming Principles Course Description: Object-oriented design and implementation. Topics include: objects and class design using UML, simple design patterns, inheritance, polymorphism, interfaces, graphical user interfaces and event-driven programming, exception handling, file input and output. Goal: The primary goal is to further expand the students’ problem solving skills by learning and using object-oriented programming. Java will be used as the programming language to do so. The course builds upon the programming competencies that students have acquired in CS1301. Text: Y. Daniel Liang, Introduction to Java Programming, Core Version, 6E, Prentice Hall, 2006 – http://www.prenhall.com/liang/ *. HTU UTH Instructors Name: Office Number: Class: Office Hours: Dr. Joy Reed, Joy.Reed@cs.armstrong.edu SC 111 M,W, 6:00 – 7:15 pm SC1503 B M,W 10:00-11:00 am, 2:00 - 4:00 pm T 11:00 - 12:00 am Other times available by appointment Web URL: http://cs.armstrong.edu/joy/ Assessment: Programming Projects* 30% (3.5 projects. Given in class along with the due dates). Three In-Class Exams 45% (15% Each) Format: Questions and Programming. Final Exam (2 Hours) 25% (Questions, including multiple choice and Programming.) Letter Grade Points A 90-100 B 80-90 C 70-80 D 60-70 F Less than 60 1 Grading Policy on Homework Assignments and Projects 20% on Programming Style and Documentation. 80% on Correctness. 5B Academic Integrity Students must abide by AASU’s Academic Honor Code. Failure to do so will result in a violation that will be reported to the Office of Vice President of Student Services. While students may consult each other about the programming projects, programming assignments must be submitted individually (for an individual grade). No copying of any sort is allowed. Copying is regarded as plagiarism. The maximum penalty for plagiarism and other forms of cheating is failure of the course. Attendance: Mandatory. Class Etiquette: Please try not to be late or leave early, but if it is necessary, please inform me beforehand. I reserve the right to refuse this privilege. Cell phones should be completely turned off. Email: I sometimes send essential information to the class as a whole using SHIP email. Topics Hours Classes, objects, object reference and access UML and class design Data field encapsulation Immutable classes and objects Static members Strings and StringBuffer Regular expression Command line arguments Text I/O Inheritance and polymorphism Abstract classes and interfaces GUI basics, layout managers Drawing graphics Event-driven programming Animation using Timer Creating GUI Applets Exception handling Reviews and Exams 1 4 1 1 1 2 1 1 2 3 4 3 3 3 1 3 3 2 6 Total Number of Hours: 45 2B 2 Tentative Schedule Due to holidays, topics may float to other weeks. WEEK 1 1/9 TOPIC Why Objects? Define Classes, Create Objects and Declare Reference Variables, Difference Between Primitive Type Variables and Reference Type Variables, Garbage Collection, Using Objects REQUIRED READINGS Chapter 7 2 1/14 Constructors, Visibility Modifiers, Class Encapsulation, get and set Method Conventions. Pass Objects to Methods, Static and Instance Variables and Methods Chapter 7 3 1/23 4 1/28 Scope of Variables, The keyword this, Array of Objects Class Abstraction, Case Studies, Overview of Java API The String Class Project 1.0 due Wed Jan 23. (no class Monday, Jan 21) The Character Class, the StringBuffer Class Pass Command-Line Arguments Chapter 7 Chapter 7 Chapter 8 Chapter 8 Chapter 8 5 2/4 6 2/11 Inheritance, the super Keyword, Overriding Methods Chapter 9 The protected and final keywords, the Object Class Chapter 9 Polymorphism, Dynamic Binding, Casting objects. Project 1.1 due, W Feb 13. 7 2/18 8 2/25 9 3/3 10 3/17 Abstract Classes and Interfaces Wrapper Classes Test 1 M Feb 18 Java GUI Programming, JFrame, Container, Layout Managers, JPanel. Graphics, Color, Font, FontMetrics. Graphics: Graphics and coordinate system. Project 3 due Event-driven Programming (Spring Break March 9 – 15). More GUI and Event-Driven Programming Chapter 9 Chapter 10 Chapter 12 Chapter 13 Chapter 14 Chapter 13, 14 3 11 3/24 More GUI Interfaces and Event-Driven Programming Chapter 13, 14 12 3/31 More GUI: Buttons, Labels, Text Fields, Text Area, Check Box, Combo Box, Radio Button, List, Borders Applets and Multimedia: Applets, Passing Parameters to Applets, enabling Applets to Run Standalone Chapter 15, 16 13 4/7 Object Oriented Design The Process of Program Development. Relationships Types among classes: Association, Aggregation, Composition, Dependency, Weak and Strong Inheritances. Class Design Guidelines. Chapter 11 14 4/14 Exception Handling and Assertions Chapter 17 15 4/21 I/O (Stream, Byte Stream and Character Stream, File Class, Chapter 18 16 4/28 File Stream Print Stream, Buffer Stream, and File Dialog Chapter 18 Last Day of Classes: Wed, April 30 Final Exam on Wednesday, May 7 at 6:00 Comprehensive Final Exam. 4