_____________________________________________________________________________

CMSC 432 – Summer 2009

Object Oriented Programming Languages and Systems

Instructor: Shon Vick          

Times: TTh.......6-8:20

Email: vick@umbc.edu

Classroom:  ITE-239

Office:   ITE-226

 

Office Hours

After Class

Introduction

This class will covers the concepts of object-oriented programming (OOP) languages and systems including an introduction to fundamental abstraction, modularity and encapsulation mechanisms in OOP from a software engineering and representational perspective. Basic OOP concepts covered include: polymorphism and operator overloading; message passing via generic functions; late versus early binding times; and inheritance mechanisms and their relationship to the type systems of programming languages. Other topics include: a survey of OOP languages and systems; OOP languages versus imperative programming languages; and contrasting pure OOP environments versus mixed paradigm languages. Concepts are illustrated through both individual and group programming projects.

Prerequisite: CMSC 331 and CMSC 341

Course Objectives

 

Texts

Required:

·         The Introduction to Object-Oriented Programming (3rd Edition)

by Timothy A. Budd, Addison-Wesley, ISBN 0201760312

 

Optional:

You may also want to acquire a good Java reference:

The Java Tutorial, Third Edition, by Mary Campione, Kathy et al, Addison-Wesley Pub Co; ISBN: 0201485583,  also available online

Core Java 2, Volume 1: Fundamentals (5th Edition) by Cay S. Horstmann, Gary Cornell

Key Java and Object Orientation: An Introduction, John Hunt et al , Springer Verlag , ISBN 3540762019

Exploring Java , Patrick Niemeyer & Joshua Peck, O'Reilly & Associates , 1996

Java in a Nutshell , David Flanagan, O'Reilly & Associates

The Java Programming Language , Ken Arnold and James Gosling , Addison-Wesley

 

Grading

Type

Component

Points

Notes

Online Quizzes

2 Online Quizzes

10

5 points each

Exams

 

Midterm

(example from  Summer 08)

 

20

Take home

Final

(example from  Summer 08)

25

Take Home

Programming Project

P1

Group

10

UML Diagrams

P2

Group

35

Full Project

 

Notice of Online Lecture Postings

§         1st Hybrid Lecture (Reflection): http://userpages.umbc.edu/~vick/432/lectures/Summer08/Reflection-Mini-Lectures.ppt

§         2nd Hybrid Lecture (RMI) http://userpages.umbc.edu/~vick/432/lectures/Summer08/DistObjs-Hybrid%20Lectures.ppt

§         3nd Hybrid Lecture (Design Patterns) http://userpages.umbc.edu/~vick/432/lectures/Summer08/DesignPaternHybrid%20Lectures.ppt

 

Course Structure (Subject to Revision!)

 

Unit

Topic

Readings/Notes

 

 

 

1

 (5/28)

 

Introduction to OOP

Budd Chapters 1-2,4-5

Notes

More Introductions

Readings

Basics

2

 (6/2)

OOP Design

Budd Chapter 3

Notes

Basic UML Diagrams

UML Readings

3

(6/4)

 

Inheritance

Budd Chapters  10-12

Notes

Online Quiz # 1 (posted 6/11 due 6/16 )  

4

(6/9)

Reflection

1st Hybrid Lecture (Reflection)

Special

Topics

P1

 

 

5

(6/11)

Mechanics (Java)

Notes

Budd 25

 

Exam 1  (Take Home – see example at link Due 6/20)

 

6

 

6/16

 

Design Patterns

 

2nd Hybrid Lecture (Design Patterns)

In Class Notes

Budd 24

 

 

P1

Draft

 

P2

 

7

 

6/18

 

Distributed Objects

Budd 26

Notes

3rd Hybrid Lecture

 

Online Quiz # 2 (posted 6/24)

Exam  2 (Take Home – see example at link)

 

8

(6/23)

Java 1.6

Notes

 

 

Advanced

Topics

9

(6/25)

The Difficulty of Black Box Abstraction

 

 

In class video (As Time Permits)

 

 

P1

Final

 

P2

(6/25)

(7/2)

Final / Demonstration

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Practices & Policies