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).