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 2005, Spring 2006

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 Perl and Python. The notion of an object reference in Pen and Python. Blessing object references in Per!. Inheritance and polymorphism with Pen and Python. Object persistence and other database programming issues for both systems programming languages and scripting languages.

Supplementary Information:
Engineering Design Content:

Designing object-oriented programs of specified functionality with systems programming languages and scripting languages. Constructing test cases for the evaluation of such programs.

Engineering Design Considerations:

Development of extendible and maintainable software using object-oriented concepts.

Required Text(s):
  1. Advanced 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, March 2003, ISBN No. 047-126-8526.

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. [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. ability to write object-oriented database programs in C++ and Java. [e,k]
  6. ability to write object-oriented database programs in Perl and Python. [e,k]
  7. ability to write object-oriented socket programs in C++ and Java. [e,k]
  8. ability to write object-oriented socket programs in Perl and Python. [e,k]

Lecture Outline:

Lecture Topic
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 Implementations of Design Patterns in C++ and Java Test 2
33-35 Implementation of Design Patterns in Perl and Python
33-35 OO for Network Programming
36-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