ICS110 Computer Programming I

Welcome to Computer Programming I.

Taught by Dr. Ken Cosh.

Provisional schedule: TU/TH – 12:00-14:00




Course Description

The course is a study of computer programming using one of the modern languages. It provides an in-depth understanding of the fundamentals of programming. The key constructs of the language will be examined focusing on problem solving, algorithm design and program development. Laboratory-based case studies are required and simple programs will be developed.


Dr. Kenneth Cosh

Weekly Topics

Week 1 – Introduction to Computers and C++ Programming
Week 2 – C++ Basics
Week 3 – Procedures and Functions
Week 4 – More on Functions
Week 5 – Objects and Classes
Week 6 – Defining your own Classes
Week 7 – Review
Week 8 – More on Flow Control
Week 9 – Friends and Overloaded Operators
Week 10 – Separate Compilation
Week 11 – Arrays
Week 12 – Strings
Week 13 – Exception Handling

Course Objectives

On completion of this course students will be able to:
* Write, compile, run and debug programs written in C++.
* Use all the major language constructs found in C++.
* Understand the role of C++ in the programming society.
* Understand why languages may benefit from using strong typing systems.
* Use and define functions.
* Use and define classes.
* Understand the relationship between classes and objects.
* Understand what an operator is and define new operators.
* Use some of the classes in the Standard Template Library (STL).
* Understand and use inheritance.
* Explain and use basic exception handling.


* Walter Savitch, 4th edition, Problem Solving with C++ – The Object of Programming, The United States of America, Addison-Wesley, 2004. ISBN: 0-321-22559-7
* James P. Cohoon, Jack W. Davidson, 2nd edition, C++ Program Design, An Introduction to Programming and Object-Oriented Design, Singapore, WCB/McGraw-Hill, 1999. ISBN: 0-07-012135-4

Course Activities

* Lectures
* Small assignments to be completed each week
* Individual Project
* Reading the course literature outside class before the lecture
* Computer labs done to gain practical knowledge of theory

Grading Scale

* Small assignments 10%
* Individual Project 25%
* Mid-term exam 25%
* Final exam 40%