CMP346 Object Orientated techniques

1.Course Description/Goals

CMP 346: Object-Oriented Techniques. 4 hours, 4 credits.
Study of design patterns and a virtual machine. Class file structure, the virtual machine computer architecture and instruction set, Just-In-Time compilation, different forms of garbage collectors and their merits, and performance enhancements.
PREREQ: CMP 326

2. Instructor Information

Anthony Cocchi

Phone: 718-960-5866 Office Hours: 2-3:30 pm. T/Th, GI 137A

3. Course Objectives

At the end of this course students will be able to:

a) Describe the advantages of using Interfaces,Inheritance and Abstract classes to

provide independence and isolation and to minimize the impact of changes to a

system.

b) Write programs that reuse existing “best of breed” design patterns and

customize these designs to meet evolving or differing requirements

c) Compare and contrast the different patterns and select the best pattern for new

applications being developed.

d) Describe the structure of the Java virtual machine and it’s benefits in providing good

performance and portability, particularly in a networked environment.

e) Select the proper JVM garbage collector considering the applications requirements.

f) Describe the components of the JVM and the benefits of “Lazy Class Loading” and

Just_In_Time (JIT) compilation

4. Required textbook and materials

Head First Design Patterns -Freeman and Freeman

5. Grading Policy

Exam 1 20%

Exam 2 20%

Final 40%

Homework 20%

OR

MidTerm 20%

Final 40%

Term project 20%

Homework 20%

6. Accommodating Disabilities

Lehman College is committed to providing access to all programs and curricula to all students. Students with disabilities who may need classroom accommodations are encouraged to register with the Office of Student Disability Services. For more information please contact the Office of Student Disability Services, Shuster Hall, Room 238, phone number, 718-960-8441.

7. Other Items

Schedule…..approximate

Week 1 Overview – UML, Inheritance, Interfaces and Abstract classes

Design patterns

Week 2 Observer Pattern

Week 3 Factory Pattern

Factory Method

Abstract Factory Pattern

Week 4 Iterator Pattern

Week 5 Facade Pattern

Week 6 State Pattern and State Machines

Strategy Pattern

Week 7 Singleton Pattern

Week 8 Proxy Pattern

Adapter Pattern

Week 9 Decorator Pattern

Chain of responsibility Pattern

The Program Development Process

The Java Virtual Machine

Week 10 Architecture Overview

Java Class file

Week 11 Object and other runtime Structures

Dynamic Linking and Loading

Stacks and Local Variables

Week 12 Garbage Collection

Week 13 Just In Time (JIT) Compilation and Interpretation

Optional Material

Composite Pattern

Visitor Pattern

Flyweight Pattern