Programming Fundamentals
General Information
Course Catalog# CSC-121
Credit Hours 3+1 (Theory Credit Hour = 3, Lab Credit Hours = 1)
Prerequisite None
Semester BS(CS/SE) – (I)
Course Objectives / Description
This introductory course is designed for students with little or no prior programming
experience. It offers both a conceptual and hands-on introduction to the fundamentals of
programming. While the C++ language is used as the primary medium of instruction, the
emphasis remains on core programming principles that are applicable across languages.
Through this course, students will develop the skills and techniques needed to analyze
problems and implement effective programmatic solutions.
Course Learning Outcomes (CLOs)
No. Course Learning Outcome Domain Level Assessment Tool
C1 Understand the basic problem-solving C 2 Class Participation,
steps and logic constructs Quiz, Mid Exams.,
Assignments
C2 Demonstrate basic programing concepts C 3 Class Activity, Quiz,
Assignments
C3 Design and implement algorithms to solve C 3 Worksheets, Project
real world problems.
Domains:
C=Cognitive, A=Affective, P=Psychomotor
Levels:
Cogn itive = {1: Remembering, 2: Understanding, 3: Applying, 4: Analyzing, 5: Evaluating,
5: Creating}
Affective = {1: Receiving, 2: Responding, 3: Valuing, 4: Organizing, 5: Characterizing}
Psychomotor= {1: Imitation, 2: Manipulation, 3: Precision, 4: Articulation, 5: Naturalization}
Course Contents
Week No. Topic Reading CLO
1 Introduction C1
Languages and programming languages
Levels of programming languages Chapter 1 and
Generation of programming Languages Teacher notes
Criteria in a good language design
Creating an algorithm
2 Algorithms continued Chapter 2 and C1
Compiling, Running, and Debugging the Teacher Lecture
Code
Week No. Topic Reading CLO
Basic Input and Output
Escape Sequences
3 Data types (String, Int, float, char) C1, C2
Type casting
◦ Implicit
◦ Explicit
Operators in C++
◦ Arithmetic Chapter 2 and
◦ Assignment Teacher Lecture
◦ Relational or Comparison
◦ Logical
◦ bitwise
◦ Unary
Operators’ precedence
4 Flowcharting C1, C2
Flow of control and branching
◦ if
Chapter 2&3 and
◦ if else
◦ if else if Teacher Lecture
Nested if else
Short hand if-else
5 Multi-way branching in C++ C1, C2
Overview switch-case statements Chapter 3 and
Loops Teacher Lecture
◦ for loop, while loop & do While
First Mid Term Exam
6. Nested loops Chapter 3 & 7 and C1, C2
Overview of 1D arrays Teacher Lecture
7. 2D array Chapter 7 and C1, C2
2D array examples Teacher notes
8. Character array Chapter 7 & 10 C1, C2
String and its functions
Working with Records (Structures)
and Teacher
Structure and Arrays Lecture
9. Working with User Defined Functions C2, C3
(UDF)
◦ Return types of functions Chapter 5 and
◦ Arguments of functions Teacher Lecture
◦ Returning multiple values from a
function
10 Call by value and Call by reference C2, C3
Programming style
◦ Comments, indentation, naming
Chapter 5 and
variables, and constants
Dividing a program into modules Teacher Lecture
Scope of variables
Function overloading
11 & 12 Input, output with files Chapter 6 and C3
Reading and writing in files Teacher Lecture
Second Term Exam
13 Pointers Chapter 9 and C2
◦ Memory and variables Teacher Lecture
◦ Declaring the pointer
◦ Initializing the pointer
◦ Integer pointer
Week No. Topic Reading CLO
◦ Floating pointer
◦ Character pointer
◦ Pointing to pointer variables
14. Dynamic array Chapter 8 and C2, C3
Macros Teacher Lecture
15. Introduction to Object Oriented C1, C3
Programming (OOP)
Chapter 10 and
◦ Classes
◦ Objects Teacher Lecture
16. Revision and Project Presentation C1
Final Term Exam
CLO-PLO Map
Graduate Attribute (PLOs)
CLOs GA GA GA GA GA1 GA1 GA12
GA1 GA2 GA5 GA7 GA9
3 4 6 8 0 1
CLO 1 1 1 0 0 0 0 0 0 0 0 0 0
CLO 2 0 1 0 0 0 0 0 0 0 0 0 0
CLO 3 0 1 1 1 0 0 0 0 1 1 1 1
Text Book
1. Problem Solving with C++ 10th edition by Walter Savitch- Pearson Prentice-Hall
2. Beginning Programming with C++ for Dummies by Stephen R. Davis
3. C++ for Dummies by Stephen R. Davis
Reference Material
Books
[Link]: Principles and Practice using C++ by Bjarne Stroustrup
2.C++ How to Program Deitel & Deitel- Pearson Prentice-Hall
Web Tutorials
[Link]
[Link]
[Link]
Online C++ Compilers
[Link]
[Link]
[Link]
[Link]
Instructor
Name Sher Muhammad Daudpota
Designation Professor of Computer Science
Department Computer Science
Last Update August 15, 2025
Computer Science/Software Engineering
Program Learning Outcomes
GA: Graduate Attributes
GA1 Computing Knowledge: An ability to apply knowledge of mathematics, science,
computing fundamentals and computing specialization to the solution of complex computing
problems.
GA2 Problem Analysis: An ability to identify, formulate, research literature, and analyze
complex computing problems reaching substantiated conclusions using first principles of
mathematics, natural sciences and computing sciences.
GA3 Design/Development of Solutions: An ability to design solutions for complex
computing problems and design systems, components or processes that meet specified needs
with appropriate consideration for public health and safety, cultural, societal, and
environmental considerations.
GA4 Investigation: An ability to investigate complex computing problems in a methodical
way including literature survey, design and conduct of experiments, analysis and
interpretation of experimental data, and synthesis of information to derive valid conclusions.
GA5 Modern Tool Usage: An ability to create, select and apply appropriate techniques,
resources, and modern IT tools, including prediction and modeling, to complex computing
activities, with an understanding of the limitations.
GA6 The Computer Scientist and Society: An ability to apply reasoning informed by
contextual knowledge to assess societal, health, safety, legal and cultural issues and the
consequent responsibilities relevant to professional computing practice and solution to
complex computing problems.
GA7 Environment and Sustainability: An ability to understand the impact of professional
computing solutions in societal and environmental contexts and demonstrate knowledge of
and need for sustainable development.
GA8 Ethics: Apply ethical principles and commit to professional ethics and responsibilities
and norms of computing practice.
GA9 Individual and Team Work: An ability to work effectively, as an individual or in a
team, on multifaceted and /or multidisciplinary settings.
GA10 Communication: An ability to communicate effectively, orally as well as in writing,
on complex computing activities with the computing community and with society at large,
such as being able to comprehend and write effective reports and design documentation,
make effective presentations, and give and receive clear instructions.
GA11 Project Management: An ability to demonstrate management skills and apply
computing principles to one’s own work, as a member and/or leader in a team, to manage
projects in a multidisciplinary environment.
GA12 Lifelong Learning: An ability to recognize importance of, and pursue lifelong
learning in the broader context of innovation and technological developments