ECE 495K - Object-Oriented Scripting and Object-Oriented DesignLecture Hours: 3 Credits: 3
This is an experiential learning course.
Experimental Course Offered: Spring 2005, Spring 2006
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.
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.
- Advanced Perl Programming, Sriram Srinivasan, O'Reilly, 1997, ISBN No. 1-56592-220-4.
- 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.
- 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:
- a knowledge of the Unified Modeling Language for the conceptual design of object-oriented programs. [e,k]
- an ability to design object-oriented solutions to programming problems using previously developed "best practice" design components. [c,e,k]
- object-oriented programming with Perl and Python. [e,k]
- designing object-oriented software in Perl and Python for scripting languages and in C++ and Java for systems programming languages. [c,e,k]
- ability to write object-oriented database programs in C++ and Java. [e,k]
- ability to write object-oriented database programs in Perl and Python. [e,k]
- ability to write object-oriented socket programs in C++ and Java. [e,k]
- ability to write object-oriented socket programs in Perl and Python. [e,k]
|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|
|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:
Engineering Design Consideration(s):
ease of extending large software systems