You are here

Computer Science 125

Introduction to Computing Science and Programming II

Credits: 3

Length of Course: 14 weeks

Classroom Hours per Week: 3 hours lecture, 2 hour lab

Prerequisites: Computer Science 120 and Math 100.

Co-requisite: English-98

Text: C++ for Everyone by Cay Horstmann, Copyright © 2012 by John Wiley & Sons. ISBN 978-Q-470-92713-7

Reference Books
•Programming -- Principles and Practice Using C++, Bjarne Stroustrop, Addision Wesley, 2009, 9780321543721.
•Absolute C++ 5/E, Walter Savitch, Addison Wesley, 2013, 978-0-13-283071-3.
•Problem Solving with C++, Eighth Edition, Walter Savitch, Addison Wesley, 2012, 978-0-13-216273-9.


Course Description:

A rigorous introduction to computing science and computer programming, suitable for students who already have some backgrounds in computing science and programming. Students will learn the fundamental concepts of computing science and develop basic skills in software development. Topics include: history of computing science; review of elementary programming: data types and control structures; fundamental algorithms; abstract data types; elementary data structures; basic object-oriented programming and software design; elements of empirical and theoretical algorithmic; computability and complexity; design, specification and program correctness.


Course Outline:

Week Topic
Week 1 Introduction, Course Outline, Programming Languages, Compilers, Interpreters, Java Virtual Machine.
Week 2 Variables, Assignment, Fundamental Data Types (int, double), Expressions.
Week 3 References, Object Instantiation, Standard Template Library, Namespaces, Interaction with User, Methods.
Week 4 Introduction to Class Design, Methods, Primitive Data Types as Parameters Scope and Lifetime.
Week 5 Class Design (cont'd), Other Fundamental Data Types, Casting, Calling Static Methods.
Week 6 Flow of Control.
Week 7 Loops.
Week 8 Arrays, Multi-dimensional Arrays, Vectors, Pointers and Dynamic Arrays, and Exception Handling.
Week 9 Recursion, Basics about Computational Complexity, Analysis of Algorithms, Searching.
Week 10 Sorting, More Advanced Class Design, Static Data and Methods, Helper Methods
Week 11 Polymorphism, Virtual Functions, and Templates.
Week 12 Inheritance, Abstract classes, Polymorphism.
Week 13 Simple Graphical User Interface Elements, Event-driven programming, Inner classes.

Note: This schedule is intended to provide only a rough guide to the topics covered in this course. The ordering of topics may be changed by the instructor.


Evaluation:

Labs 10%
Assignments 20%
Term tests 30%
Final exam 40%

Instructors:

Ken Chan, B.Sc. (Simon Fraser), M.S.E.E. ( Wayne)
William Cheng, B.Sc., M.Sc. ( Cal. State)


Transferability: see www.bctransferguide.ca