Dr. Edward Sazonov,
Office: 147 CAMP
Office Hrs: MW10:00-11:30
R-3, C-3. A problem solving oriented course in software analysis and
design with an emphasis on creating reusable software and software components
in C++. Analysis and design of software components in the context of
the C++ Standard Template Library.
“Data Structures and the Standard Template Library”, 1st edition William
J. Collins, McGraw-Hill, Pages: 688, Year of Publication: 2002, ISBN:0072369655
Supplemental Web materials:
MFC Reference (optional):
Programming Windows with MFC, Jeff Prosise, Microsoft Press, 1999, ISBN:
Lecture Location/Time: CAMP 177, MWF 1:00PM-1:50PM
Class Web page: http://www.intelligent-systems.info/classes/ee363/
1. Gain an understanding of abstract data types and software components
as implemented in the C++ Standard Template Library and other libraries.
2. Engage in design, analysis, and test of software systems given a
specification and a set of components.
3. Gain an understanding of event-driven, object-oriented, graphical
user interfaces and apply this knowledge in software design.
1. Review of C++ and Object Oriented Programming. Arrays, pointers,
classes, inheritance, polymorphism, etc.
2. Introduction to Software Engineering, Algorithm analysis.
3. Introduction to the standard container classes.
4. Strings, vectors, lists, stacks, queues, deques, sets, trees.
5. Priority queues, heaps, maps (if time permits).
6. MFC and Event-Driven Design - throughout semester
All students are required to use Microsoft Visual C++ (version 6.0 or
greater) for all assignments and projects. The Microsoft Visual Studio,
which includes Visual C++ 6.0, is installed on all PCs in the labs throughout
Three or four design projects will be assigned during the semester.
Each project will be MFC based and closely related to the previous project.
Reuse of software components, system analysis and design, and STL usage
will be the primary focus of each project.
1. Design projects: 30%
2. Hourly exams (3 exams): 35%
3. Homework: 15%
4. Final exam: 20%
Grades will be given on the following scale:
A > 90pts
B > 80pts
C > 70pts
D > 60pts
F < 60pts
Tentative Hourly Exam Dates:
Exam 1: last week of September
Exam 2: last week of October
Exam 3: last week of November
Homework and exam policy:
The homework will be assigned as problems from the textbook, on-line
lab assignments and MFC-based projects. Late homework and projects will
not accepted unless arrangements have been made with the instructor
prior to the due date.
Students missing an exam will receive a 0% on the exam unless they have
an acceptable university excuse or have made prior arrangements with
the instructor. Makeup exams may be oral or written based on the discretion
of the instructor.
All students will be required to take the final exam.
Student Learning Outcomes:
Course Objective 1: Students will demonstrate competence in the use
of abstract data types and software components found in the Standard
Template Library and other libraries.
Course Objective 2: Students will demonstrate the ability to design,
analyze, test, and implement software applications using abstract data
types, software components, and component reuse.
Course Objective 3: Students will demonstrate an understanding of event-driven,
object oriented user interface design, and their ability to build user-friendly
You are encouraged to consult the instructor if you have any questions
on homework or exams. The homeworks and exams are expected to be individual
work, completed without any “help” of your classmates. Handing in work
that was jointly prepared and/or copied will be considered plagiarism
and will be handled according to the University regulations.
Cell phones, pagers, etc. must be turned OFF during class. These are
distracting for all.