CSE 212
Fundamentals of Computing II
10/10/02
Spring Semester
CSE 212Fundamentals of Computing II(4-1-3)
 The focus in this course is on the abstraction, specification, and object-oriented design of computer programs. The student will learn to construct reliable, high-quality software, and will be deeply familiar with current notions of specification, design, and programming. Students will work on single programs and large multi-programmer projects. The emphasis is on modularity: how to get the modules right and how to organize a program as a collection of reliable components. The C++ and Eiffel programming languages are used as a vehicle for learning these concepts, even thought the techniques presented are language independent. Programming skills will be developed in an accompanying Laboratory section.
  
Text: Deitel, C++ How to Program, 4th, Prentice-Hall, , 2002, 0-13038-4747
  Dattatri, C++ Effective Object-Oriented Software Construction, 2nd, Prentice-Hall, , 1999, 0-13086-7691
 
References:
Faculty-in-Charge: Jesus A. Izaguirre
 
Course Goals:The goals of this course are 1) to improve student's abilities in program design, implementation, and testing, 2) develop habits of modular design of software components, and 3) introduce advanced concepts of object-oriented design.
Prerequisites:CSE 211
Co-requisites:
  
Topics: Number of Lectures
  Introduction1
  The road to object orientation 
 
Modularity and reusability
2
 
Abstract data types
4
  Object-oriented techniques 
 
Classes and objects
3
 
Exceptions and design by contract
3
 
Inheritance and genericity
5
 
Testing and debugging
2
  Object-oriented methodology 
 
Design patterns
5
 
Case studies
4
 
Object-oriented analysis
2
 
Object-oriented design
2
  Advanced topics 
 
Concurrency and distribution
2
 
Object persistence and databases
2
 
Graphical interactive applications
2
  
Course Content:
 Engineering Design 2.0
 Engineering Science 2.0
Course Grading:
 Midterm Exam 15
 Final Exam 20
 Problem Sets (6) 30
 Group Project 35
  
  
Computer Usage:The homework will involve programming assignments in the object-oriented programming languages C++ and Eiffel.
Laboratory Usage:
Special Consideration:None