ECE 495K - Object-Oriented Scripting and Object-Oriented Design
Note:
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.
Course Details
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.
Required Text(s):
- 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
Recommended Text(s):
- 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 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]
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
Assessment Method:
Each of the outcomes will be assessed by giving the students appropriate C++ and Java programming assignments.