COURSE TITLE:  ECE 231 Advanced Programming for Computer Engineers

 

CATALOG DESCRIPTION:  Object-oriented programming, classes and data hiding, dynamic object construction and destruction, derived classes and inheritance, virtual functions;  file processing; introduction to UNIX; testing and test generation.

 

REQUIRED TEXTS: 

H. M. Deitel and P. J. Deitel, C++: How to Program, Prentice Hall, 4th edition, 2003.

Arnold Robbins, Linux—Programming by Example:  The Fundamentals, Prentice Hall, 2004.

 

COURSE COORDINATOR:  Larry Henschen

 

COURSE GOALS:

 

PREREQUISITES:  CS 110 or knowledge of any programming language

 

PREREQUISITES BY TOPIC: 

 

COURSE TOPICS:

Week 1:  Software engineering, review of pointers, arrays and functions

 

            Lab demonstrations:  Visual C++ system

 

Week 2:  Classes, data hiding, data and function members, constructors and destructors

 

Lab demonstrations:  Wilkinson lab (logging in, accessing programs), UNIX, GCC/C++, elated tools such as EMACS

 

Week 3:  Constructors/destructors, shallow vs. deep destructors, “this”,

implementing function members in C using “this”-type pointers

 

Lab:  UNIX shell, more useful commands, UNIX file system, maybe security models (users, groups, permissions)

 

Week 4:  Inheritance

 

Week 5:  Virtual functions, pure virtual classes, container classes

 

Week 6:  Linked lists, stacks, trees and recursion

 

Week 7:  File processing, sequential vs random file access, fseek, fpos and related,

processing files of records

 

Week 8:  UNIX, bit and byte manipulation

 

Week 9:  Exceptions and exception handling

 

Week 10:  Testing, generation of test cases via path analysis

 

COMPUTER USAGE:

 

LABORATORY:  Programming assignments will be done on UNIX systems.

 

GRADES:

 

COURSE OBJECTIVES:  When a student completes this course, s/he should be able to:

 

ABET CONTENT CATEGORY:  100% Engineering (Design component).