Fall 1999
EET 382-01 and
EET 382-02C
Course Instructor: Professor Paul I-Hai Lin
Lecture: Tuesday
and Thursday 4:30–5:45 p.m. (LB B35)
Lab: Thursday
7:30-9:20 p.m. (ET 244)
Office Hours: Monday 2:00-4:30 p.m.
Tuesday 2:00-4:30 p.m.
Wednesday 2:00-4:30 p.m.
Thursday 2:00-4:30 p.m.
Office: ET 221B Phone: 219-481-6339 Email: lin@ipfw.edu
Course
Web Page: http://www.etcs.ipfw.edu/~lin
Course
Description:
Class
3, lab 2, Cr 4 P: 264
This
course provides a comprehensive introduction to C++ for students to apply
object-oriented programming in industrial applications. A background in C or
another high level language is a must, because all applications in this course
involve C and C++. This course introduces the methodology of object
identification and behavior, the syntax of C++, and industrial applications.
Text Books:
1.
C++ Windows Programming Using Windows API and MFC: A Work
Book, Paul I-Hai Lin, 1999 (to be posted on the Web
http://www.etcs.ipfw.edu/~lin)
2.
Object-Oriented Analysis and Design with Applications,
newest edition, Grady Booch, The Benjamin/Cummings Publishing Company, Inc
3.
Programming Windows with MFC, 2nd edition, Jeff
Prosise, Microsoft Press, 1999
Grading
Policy:
**
No late projects or home works will be accepted. Makeup exams will be given
only if prior arrangements have been made**
Projects/Homework
(including programs) 45%; Two Exams
30%; Final Project 25%
Important
Days:
**Last
day to withdraw Oct. 29**
Exam
1: Sept. 30 (Thursday) Exam
2: Nov. 4 (Thursday)
Final
Project Proposal Due On Nov. 9
Final
Project Report and Presentation Due on December 13, 1999
Tentative
Course Outline
1-2-1
Software Engineering Definition
1-2-2
Software Life Cycle
1-2-3Software
Development Cost
1-2-4
Software Productivity Enhancement Practice
1-2-5
Software Design
1-3-1
Object-Oriented Programming Definition
1-3-2 Key
Components of OOP
1-3-3
Properties Supported by Object Oriented Languages
1-3-4 Classes
1-3-5 Objects
1-3-6 Classes
in C++
1-4 Object-Oriented Software Development
1-5 Issues on Software Reuse
Reuse Documentation, Designs, Scenarios, Source Code, Binary Code
1-6 New Methodologies and Tools
1-6-1 An
Overview of Object-Oriented Methodology
1-6-2
Tool Requirements and Support for C++ Development
1-6-3
Concerns about the Object-Oriented Technology
Applications and
Programming Languages Issues
Rational
for the C++ Programming Environment
Microsoft
Visual C++ 6.0 IDE Environment
o
Keywords for Data Type Declarations (C/C++)
o
Keywords for Storage Class Specification (C/C++)
o
Keywords for Flow Control and Decision Making (C/C++)
o
Keywords for Language Interface (C/C++)
o
New Keywords in C++
C++
Derived Classes
Other
C++ Features
C++
Components, Data Structures and Algorithms
·
Objects, States, Behavior, Identity
·
Concrete Objects: a window of screen, a file in computer
file system, car, airplane, controller, vending machine, ATM machine
·
Conceptual Objects: processes, scheduling policy
·
Relationship among objects: actor, server, agent, client
·
Classes
o
Classes represent fundamental concepts of reality being
modeled
o
A class is a specific kind of object (general case). An
object is an instance of a certain class
o
An object class: describes a group of objects with similar
attributes, operations, relationships to other objects
·
Object Diagrams: a formal graphics notation for modeling
objects, classes, and their relationships
·
Object models and relationships
·
Rapid software development
Examples
of Object-Oriented Software Development
Wrap C++ Microsoft Windows API
Use standard structure
General-purpose classes (non-Windows
specific)
Collection classes:
arrays, lists, and maps
String class
Time class
Time span class
Date class
Full file access classes
Disk I/O classes
Print preview and
printer support
Support for toolbars and
status bars
Dialog box support
Dynamic Link Library
(DLL) support
Open Database
Connectivity (ODBC)
Common Controls
Winsock classes for
TCP/IP data communications
Thread synchronization
classes
WinInet Classes
ActiveX document server
classes
HTML on-line help
The Active Template
Library (ATL) for ActiveX control construction for
the Internet
Support for Component
Object Model
Active Data Objects
(ADO) support
A common root object class hierarchy
Multiple Document Interface (MDI)
application support