ECE 39595 - Advanced Programming with Objects

Lecture Hours: 3 Credits: 3

This is an experiential learning course.

Counts as:
CMPE Special Content Elective
EE Elective

Experimental Course Offered: Fall 2019

ECE 30862

Requisites by Topic:
Knowledge of object oriented programming

Catalog Description:
Introduction to writing better object oriented code. Topics will include better coding practices, refactoring, testing, Universal Modeling Language (UML) and design patterns.

Required Text(s):
  1. Clean Code: A Handbook of Agile Software Craftsmanship, 1st Edition, Robert Martin, Prentice Hall, 2008, ISBN No. 13: 978-0132350884.
  2. Head First Design Patterns: A Brain-Friendly Guide, 1st Edition, Eric Freeman, Bert Bates, Kathy Sierra and Elisabeth Robson, O'Reilly Media, 2004, ISBN No. 13: 978-0596007126.
Recommended Text(s):
  1. Design Patterns: Elements of Reusable Object-Oriented Software, 1st Edition, Eric Gamma, Richard Helm, Ralph Johnson and John Vlissides, Addison-Wesley Publishing Co., 1994, ISBN No. 13:0978-0201633610.

Learning Outcomes:

A student who successfully fulfills the course requirements will have demonstrated:
  1. an ability to design, as part of a team, a software system that solves a significant problem. [1,5]
  2. an ability to develop tests to enable debugging, and perform that debugging. [6,7]
  3. an ability to acquire domain knowledge about the project, and apply that knowledge to the project. [7]
  4. an ability to explain the design and development process for their project in a presentation. [3]
  5. an ability to develop a program with code that is economically sustainable and maintainable. [4]

Lecture Outline:

Lectures Topic
1 Introduction and caveats
6 Universal Modeling Languages
2 Discussion of the project
9 Design Patterns
6 Writing clean code
6 Refactoring
3 Testing and Development by test
3 Debugging
3 Software engineering concepts (waterfall, spiral, code complexity, etc.)
3 Project presentations
3 Exams

Engineering Design Content:

Establishment of Objectives and Criteria

Engineering Design Consideration(s):