Public View

You are viewing the public version of the syllabus. If you have a SUNet account, you can view the richer version of the syllabus after logging in.

CS 201
Programming Fundamentals

Faculty Faculty of Engineering and Natural Sciences
Semester Summer 2025-2026
Course CS 201 - Programming Fundamentals
Time/Place
Time
Week Day
Place
Date
13:40-16:30
Mon
FENS-L056
Jul 6-Aug 21, 2026
08:40-11:30
Tue
FENS-L056
Jul 6-Aug 21, 2026
Level of course Undergraduate
Course Credits SU Credit:3, ECTS:6, Engineering:6
Prerequisites IF 100
Corequisites CS 201R
Course Type Lecture

Instructor(s) Information

Mohammad Yusaf Azimi

Course Information

Catalog Course Description
This course is intended to introduce students to the field of computing (basic computer organization, data representation, concepts, algorithmic thinking and problem solving), as well as give them intermediate level programming abilities in an object-oriented programming language
Learning Outcomes:
1. Explain the fundamentals of computer architecture, programming languages, and the role of compilers.
2. Design and implement correct and readable computer programs using fundamental programming constructs such as variables, conditionals, and loops.
3. Write functions with different parameter-passing methods and use recursion effectively to solve computational problems.
4. Apply object-oriented programming concepts by using, modifying, and designing simple classes.
5. Develop programs that manipulate basic data structures and I/O streams, including arrays, searching and sorting algorithms, and basic text file input/output.
Course Objective
To introduce students to the field of computing (basic computer organization, data representation, concepts, algorithmic thinking, and problem solving), as well as giving them intermediate-level programming abilities in an object-oriented programming language (currently C++).
-

Course Materials

Resources:
All course materials will be available on SUCourse, including:
● Lecture notes
● Recitation samples
● Example code

Textbook: A Computer Science Tapestry, 2nd Edition, by Owen L. Astrachan (not available in the bookstore anymore, but available at the library and online).

We may not follow the textbook at all times; you are responsible for all material covered in class.
Technology Requirements:
Primary Recommendation: Visual Studio (Community Edition, Windows)
• Visual Studio will serve as the main IDE for this course.
• It offers a full-featured environment for C++ development, including a built-in compiler, debugger,
and project management tools.
• Students using Windows should install the latest version of Visual Studio Community Edition (free
for educational use).
Alternative Option: Visual Studio Code (Cross-Platform, Lightweight)
• VS Code may be used if you prefer a lighter IDE, or if you are working on macOS/Linux.
• It requires additional setup for compiling and debugging C++ programs.
Additional Setup for macOS Users (when using VS Code):
1. Install Xcode Command Line Tools by running:
xcode-select --install
2. Ensure a C/C++ compiler is available (usually provided with the Xcode tools).
3. Install the C/C++ extension in VS Code (by Microsoft).
Note: While both IDEs are acceptable, in-class demonstrations and examples will primarily use
Visual Studio.

Policies