ECE 495K - Object-Oriented Scripting and Object-Oriented Design

Lecture Hours: 3 Credits: 3

This is an experiential learning course.

Counts as:

Experimental Course Offered: Spring 2004

Catalog Description:
Unified modeling language. Use case analysis. Constructing conceptual models. System sequence diagrams. "Gang of Four" design patterns. Case studies. A brief overview of C++ and Java for systems programming languages. An overview of Perl and Python for scripting languages. Object-oriented programming with Pearl and Python. The notion of an object reference in Pearl and Python. Blessing object references in Perl. Inheritance and polymorphism with Perl and Python. Object persistence and other database programming issues for both systems programming languages and scripting languages.

Required Text(s):
  1. Advance Perl Programming, Sriram Srinivasan, O'Reilly, 1997, ISBN No. 1-56592-220-4.
  2. Design Patterns, Elements of Reusable Object-Oriented Software, Erich Gamma, Richard Helm, Ralph Johnson, and John Vlissides, Addison-Wesley, 1994, ISBN No. 0-201-63361-2.
Recommended Text(s):
  1. Programming with Objects, A Comparative Presentation of Object-Oriented Programming with C++ and Java, A> C. Kak, John Wiley & Sons, 2003, ISBN No. 0-47126-852-6.

Learning Outcomes:

A student who successfully fulfills the course requirements will have demonstrated:
  1. a knowledge of the Unified Modeling Language for the conceptual design of object-oriented programs. [e,k]
  2. an ability to design object-oriented solutions to programming problems using previously developed "best practice" design components. [c,e,k]
  3. object-oriented programming with Perl and Python. [c,e,k]
  4. designing object-oriented software in Perl and Python for scripting languages and in C++ and Java for systems programming languages. [c,e,k]
  5. an ability to write object-oriented database programs in C++ and Java. [e,k]
  6. an ability to write object-oriented database programs in Perl and Python. [e,k]
  7. an ability to write object-oriented socket programs in C++ and Java. [e,k]
  8. an ability to write object-oriented socket programs in Perl and Python. [e,k]

Lecture Outline:

Lecture(s) Topic(s)
1 Course Introduction
2 Software Development Process for Large OO Programs
3 Use Cases, Class, Interaction, Package, State, and Activity Diagrams
4-8 Overview of Perl and Python
Test 1
9-16 Object-Oriented Programming with Perl and Python
17-25 Design Patterns
26-32 Implementation of Design Patterns in C++ and Java
Test 2
33-34 Implementation of Design Patterns in Perl and Python
35-36 OO for Network Programming
37-38 OO for Database Programming
39-42 Distributed OO programming
Test 3

Engineering Design Content:

Establishment of Objectives and Criteria
Synthesis
Analysis
Construction
Testing
Evaluation

Engineering Design Consideration(s):

maintainability of large software systems
ease of extending large software systems