Word Document

Doğuş University
Department of Computer Engineering
COME 102 – Summer 2002
Class time
Office Hours
: Assoc. Prof. Dr. Selim Akyokus
: G-402
: [email protected]
Course Objectives:
The objective of this course is to introduce students to the fundamentals of computer
programming and problem solving. The emphasis is on the fundamentals of structured programming,
syntax, semantics, testing/debugging, implementation, documentation, and an introduction to objects
and classes. The emphasis is on procedural programming languages, and the language that we
will focus on is C++. Students will be exposed to development on Microsoft Visual Studio platforms.
Required Textbooks:
Deitel&Deitel, C++ How To Program 3/e, Prentice Hall, ISBN 0-13-089571-7; 2001.
Additional Textbooks and References:
Doğuş University Learning Package (prepared by:Mithat Konar)
Web resources given in class
Tentative Course Outline:
Week 1
Introduction to Computers and C++ Programming (Ch1)
Introduction, Computer Organization, Machine Languages, Assembly
Languages, and High-level Languages, History of C and C++ , Basics
of a Typical C++ Environment, Introduction to C++ Programming,
Decision Making: Equality and Relational Operators, Thinking About
Week 2
Control Structures I (Ch2)
Introduction, Algorithms, Pseudocode, Control Structures, The if
Selection Structure, The if/else Selection Structure, The while
Repetition Structure, Formulating Algorithms, Assignment Operators,
Increment and Decrement Operators, Essentials of Counter-Controlled
Repetition, The for Repetition Structure, Examples Using the for
Week 3
Control Structures II (Ch2)
The switch Multiple-Selection Structure, The do/while Repetition
Structure, The break and continue Statements, Logical Operators,
Structured-Programming Summary, Thinking About Objects:
Identifying the Classes in a Problem
Week 4
Functions I (Ch3)
Introduction, Program Components in C++, Math Library Functions,
Functions, Function Definitions, Function Prototypes, Header Files,
Random Number Generation, Example: A Game of Chance and
Introducing enum, Storage Classes, Scope Rules
Week 5
Functions II (Ch3)
Recursion, Example Using Recursion: The Fibonacci Series,
Recursion vs. Iteration, Functions with Empty Parameter Lists, Inline
Functions, References and Reference Parameters, Default
Arguments, Unary Scope Resolution Operator, Function Overloading,
Function Templates, Thinking About Objects: Identifying a Class's
Week 6
Arrays I (Ch4)
Introduction, Declaring Arrays, Examples Using Arrays, Passing
Arrays to Functions, Sorting Arrays, Case Study: Computing Mean,
Median and Mode Using Arrays,
Week 7
Arrays II (Ch4)
Searching Arrays: Linear Search and Binary Search, MultipleSubscripted Arrays, Thinking About Objects: Identifying the Operations
of a Class - Midterm
Pointers and Strings (Ch5)
Introduction, Pointer Variable Declarations and Initialisation, Pointer
Operators, Calling Functions by Reference, Using the const Qualifier
with Pointers, Bubble Sort Using Call-by-reference,
Week 8
Week 9
Pointers and Strings II (Ch5)
Pointer Expressions and Pointer Arithmetic, The Relationship
Between Pointers and Arrays, Arrays of Pointers, Function Pointers,
Introduction to Character and String Processing, Fundamentals of
Characters and Strings, String Manipulation Functions of the Stringhandling Library, Thinking About Objects: Collaborations Among
Week 10
Classes and Data Abstraction : Part I (Ch6)
Introduction, Structure Definitions, Accessing Members of Structures,
Implementing a User-Defined Type Time with a struct,
Implementing a Time Abstract Data Type with a class, Class
Scope and Accessing Class Members, Separating Interface from
Implementation, Controlling Access to Members, Access Functions
and Utility Functions, Initializing Class Objects: Constructors, Using
Default Arguments with Constructors, Using Destructors, When
Constructors and Destructors Are Called, Using Data Members and
Member Functions, A Subtle Trap: Returning a Reference to a Private
Data Member, Assignment by Default Memberwise Copy, Software
Reusability, Thinking About Objects: Starting to Program the Classes
for the Elevator Simulator
Week 11
Classes: Part II (Ch7)
Introduction, const (Constant) Objects and const Member
Functions, Composition: Objects as Members of Classes, friend
Functions and friend Classes, Using the this Pointer, Dynamic
Memory Allocation with Operators new and delete, static Class
Members, Data Abstraction and Information Hiding, Example: Array
Abstract Data Type, Example: String Abstract Data Type, Example:
Queue Abstract Data Type, Container Classes and Iterators
Proxy Classes, Thinking About Objects: Programming the Classes for
the Elevator Simulator
C++ Stream Input/Output (Ch 11)
Stream Output, Stream Input, Unformatted I/O with read, gcount and
Week 12
write, Stream Manipulators, Stream Format States
Week 13
File Processing (Ch14)
Introduction, The Data Hierarchy, Files and Streams, Creating a
Sequential Access File, Reading Data from a Sequential Access File,
Updating Sequential Access Files, Random-Access Files, Creating a
Random-Access File, Writing Data Randomly to a Random-Access
File, Reading Data Sequentially from a Random-Access File,
Example: A Transaction Processing Program, Input/Output of Objects
Week 14
Revision and review - Final
Homeworks and Projects:
Students will be assigned to carry out several projects and homeworks during the course.
Midterm Exam
Final Exam