Fundamentals of Computer
Programming
Introduction
Jaudat Mamoon
Department of Computing
NUST School of Electrical Engineering and
Computer Science (SEECS)
Brief Resume - Jaudat Mamoon
Academic M.Sc. Technology Management & EPFL Lausanne, Switzerland
Qualifications Entrepreneurship
M.Sc. Communications Engineering TUM Munich, Germany
B.Sc. Computer Engineering UET Taxila
Professional 12 years SEECS, NUST
Experience
4 years Vodafone Group, Germany
1 year NESCOM, Pakistan
Details
Office 201 IAEC
Contact Hours On appointment or after lectures
What is Programming?
The art of telling a computer how to perform
complex tasks
The art of writing computer programs (software)
Program is a set of instructions asking the computer
to perform specified tasks
Why Learn Programming? (1/2)
Software is the language of our world and
programming brings it closer to you
The 21st century skill, like learning to read or write
Teaches tackle large problems by breaking them
into a set of smaller, more manageable problems
Programming gives you the confidence that you can
be designers and builders
Why Learn Programming? (2/2)
Once you know how to code, you can create virtual
worlds within the computer where the only limit on
what is possible is your imagination
Solve your problems using technology
Enhances creativity, teaches people to cooperate, to
work together across physical and geographical
boundaries and to communicate in a universal
language
Popular Companies & Products?
This Course is About?
Fundamentals of designing, writing, testing, and
maintaining computer programs
Using the C++ programming language
For highly motivated students with no prior
experience in programming
Course Learning Objectives (CLOs)
Understand the syntax and semantics of different
programming constructs
Solve given real-world problem by applying
appropriate programming concepts and techniques
Build a program and associated documentation
using appropriate IDE and supplementary tools
Perform effectively as an individual and as a
member of a team.
Textbook 1
Programming and
Problem Solving with
C++, N. Dale, C. Weems,
& T. Richards (7th edition)
2022, Jones and Bartlett
Learning.
Textbook 2
Modern C++
Programming Cookbook,
Marius Bancila (3rd
edition) 2024, Packt
Publishing
Textbook 3
Introduction to
Programming with C++,
Y. Daniel Liang, Pearson
Reference Books
C++ How to Program, Deitel and Deitel (10th
edition) 2017, Pearson Education, Inc.
Problem Solving and Programming Concepts,
Maureen Sprankle and Jim Hubbard (8th edition)
2008, Pearson College Div.
C++ Programming: From Problem Analysis to
Program Design, D.S. Malik (8th edition), 2017,
Course Technology Inc.
Online Resources
Grading Policy
Theory: 75%
Quizzes 15%
Assignments 10%
Mid Term Exam 25%
End Semester Exam 40%
Project 10%
Labs: 25%
Lab Assignments 60%
Mid & final exams 20%
Project 20%
Zero Tolerance for Plagiarism
Assignments and project should be yours own and
not copied from internet or from colleagues
Collaboration and discussions are encouraged
Always acknowledge help taken from other sources
Plagiarized work will be graded zero and repeat
offences will be reported to the Dean for
appropriate action
What is a Computer?
Computer
Device capable of performing computations and
making logical decisions
Computers process data under the control of sets of
instructions called computer programs
Hardware
Various devices comprising a computer
Keyboard, screen, mouse, disks, memory, CD-ROM, and
processing units
Software
Programs that run on a computer
Computers Understand Binary Only!
All the impressive functions performed by a
computer are actually manipulations of 0s and 1s
Computers process only 0s and 1s
Data stored in memory is in the form of 0s and 1s
Any input from keyboard, mouse or from another
device is 1st converted to a sequence of 0s and 1s
and then processed by the CPU
ASCII and Unicode are the standards that define
mapping of characters to binary numbers (or
machine code)
What is a Programming Language?
A systematic set of rules used to write instructions
that can be translated into machine language and
then executed by a computer
Programming languages can be used to create
programs that control the behavior of a machine
and/or to express algorithms precisely
Types of Programming Languages
(1/2)
Machine Languages
Strings
of numbers giving machine specific instructions
Example: 00000001 00000010 00000001
Assembly Languages
English-like
abbreviations representing elementary
computer operations (translated via assemblers)
Example:
LOAD BASEPAY
ADD OVERPAY
STORE GROSSPAY
Types of Programming Languages
(2/2)
High-level Languages
Codes similar to everyday English
Use mathematical notations (translated via compilers)
Example:
grossPay = basePay + overTimePay
The C++ Programming Language
General-purpose programming language designed
& developed by Bjarne Stroustrup around 1979
Initially designed as an improvement on the C
programming language
Advantages of C++
Relatively simple
Facilitates structured programming
Platform independent (Linux, Mac, Windows, …)
Widely used for variety of applications
Object oriented (beyond the scope of this course)
The C++ Programming Language
Questions?