0% found this document useful (0 votes)
17 views9 pages

Course Outline PF

The document outlines the course structure for Programming Fundamentals (CS-323) at Pir Mehr Ali Shah Arid Agriculture University, detailing course learning outcomes, objectives, content, teaching methodology, and assessment methods. It covers fundamental programming concepts, algorithm design, and practical applications using C++, including topics like data types, control structures, functions, and file I/O operations. The course includes lectures, practical labs, and assessments such as midterms, projects, and final exams.

Uploaded by

azaan malik
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
17 views9 pages

Course Outline PF

The document outlines the course structure for Programming Fundamentals (CS-323) at Pir Mehr Ali Shah Arid Agriculture University, detailing course learning outcomes, objectives, content, teaching methodology, and assessment methods. It covers fundamental programming concepts, algorithm design, and practical applications using C++, including topics like data types, control structures, functions, and file I/O operations. The course includes lectures, practical labs, and assessments such as midterms, projects, and final exams.

Uploaded by

azaan malik
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
You are on page 1/ 9

PIR MEHR ALI SHAH ARID AGRICULTURE UNIVERSITY

University Institute of Information Technology

Programming Fundamentals (CS-323)


Credit Hours: 4(3-3) Prerequisites: None
Teacher: Nergis Gulzar Office: R-105
Abbasi
Course Learning Outcomes (CLOs)
At the end of course the students will be able to: Domain BT Level*
1. Understand basic problem solving steps and logic C 2
constructs
2. Apply basic programing concepts C 3
3. Design and implement algorithms to solve real world C 3
problems.
*BT- Bloom’s Taxonomy, C=Cognitive domain, P=Psychomotor domain, A=Affective
domain

Course Contents:
Introduction to problem solving, a brief review of Von-Neumann architecture,
Introduction to programming, role of compiler and linker, introduction to algorithms,
basic data types and variables, input/output constructs, arithmetic, comparison and
logical operators, conditional statements and execution flow for conditional statements,
repetitive statements and execution flow for repetitive statements, lists and their
memory organization, multi-dimensional lists, introduction to modular programming,
function definition and calling, stack rolling and unrolling, string and string operations,
pointers/references, static and dynamic memory allocation, File I/O operations

Course Objective:
 To explore the logic of programming via the algorithm concepts and implement
them in programming structures including functions, arrays, strings, and
pointers.
 To develop the program in C++ language, dry run and test it, debug it (fix errors
if any).
 To develop an insight of modular and generic programming using functions and
structures.
 To implement input/output (I/O) functionality to read from and write to text files
and understand I/O streams

Teaching Methodology:
Lectures, Written Assignments, Practical labs, Semester Project, Presentations

Courses Assessment:
Mid Exam, Home Assignments, Quizzes, Project, Presentations, Final Exam

Reference Materials:
1. Object Oriented Programming in C++ by Robert Lafore
2. Starting out with Python, 4th Edition, Tony Gaddis.
3. Starting out with Programming Logic & Degins, 4th Edition, Tony Gaddis,
4. The C Programming Language, 2nd Edition by Brian W. Kernighan, Dennis M.
Ritchie
5. Introduction to Computation and Programming Using Python: With Application to
Understanding Data, 2nd Edition by Guttag, John
6. Practice of Computing Using Python, 3rd Edition by William Punch & Richard
Enbody
7. C How to Program, 7th Edition by Paul Deitel & Harvey Deitel
8. Problem Solving and Program Design in C++, 7th Edition by Jeri R. Hanly & Elliot B.
Koffman

Week/Lecture # Theory Practical


 Introduction to problem Lab Contents can be
Lecture-I solving, a brief review of Von- updated time to time.
Neumann architecture:
Lecture-II  Introduction to programming
Lecture-III  C++ Basic Compilation
Lab1: C++ Compilers,
Practical-I
Week 1 Programming & Debugging
Getting started with C++
Practical-II language environment, Phases
of C++ program
Program editing, compiling,
Practical-III
executing and debugging
 Role of compiler and linker:
Lecture-I
 C++ Basic Program Structure
 Introduction to algorithms:
Lecture-II  Program Statements
 Directives
Week 2  Comments
Lecture-III
 Namespaces
C++ first program for the
Practical-I
practice of directives.
C++ program for the practice
Practical-II
of comments & namespaces.
Practical-III How to compile and execute.
Week 3  Basic data types and
Lecture-I variables:
 Real World Data &Data Types
Lecture-II  Variables & Constants
Lecture-III  Input/output constructs:
Lab2: Variables and
Practical-I
constants for data storage
Programming Exercises for
Practical-II use of different primitive data
types
Programming Exercises for
Practical-III
use of input/output constructs
 Arithmetic, comparison and
Lecture-I logical operators:
 Operators
Lecture-II  Expression
Lecture-III  Precedence & Associativity
Lab3: Practicing with Arithmetic,
Week 4 Practical-I comparison and logical
operators
Writing programs that solve
Practical-II various Boolean and Arithmetic
expressions.
Writing programs that handle
Practical-III
precedence & Associativity.
 Conditional statements and
execution flow for
conditional statements:
Lecture-I  Conditional Statements
 Conditional Operators for
Statements
 If Statements
Lecture-II
 If-else Statements
 Nested if-else Statements
Week 5 Lecture-III
 Switch Statements
Lab4: Decision Control
Practical-I
Structures and Statements
Writing programs that use if
else, nested if-else structure like
Practical-II
Comparing digits using if-else
structure.
Writing programs that find out
Practical-III largest digit using nested if
structure
Week 6 Lecture-I  Repetitive statements and
execution flow for repetitive
statements:
 Loop
 For loop
 While Loop
Lecture-II
 Do while loop
Lecture-III  Nested loop
Lab5: Practicing different types of
Practical-I
loops
Writing programs which use for,
Practical-II
while and do while loops.
Writing programs which use
Practical-III Switch, break, continue
statements
 Lists and their memory
organization:
Lecture-I
 Goto statement
 Exit & Continue
 Lists and their memory
Lecture-II organization:
 Array Fundamentals
 Array operations, Searching,
Week 7 Lecture-III
Sorting
Lab6: Arrays, practicing with
Practical-I
loops
Searching array elements using
binary search algorithm.
Practical-II
Sorting array elements using
bubble sort algorithm
Practical-III Practicing goto and exit
Week 8  Multi-dimensional lists,
introduction to modular
Lecture-I programming:
 Character Array
 Dynamic Array
Lecture-II  Multidimensional Array
 Introducing Built-in functions
Lecture-III
for array
Lab7: Practicing Multi-
dimensional Arrays.
Practical-I Finding maximum and minimum
elements from multi-dimensional
array
Practical-II Addition of 2D Matrices
Strings using multi-dimensional
Practical-III
character arrays
Midterm Exam
 Introducing Abstract Data Type Formation of Groups and
Project Allocation
 Defining Structures
Lecture-I  Declaring Structure Variables
 Initializing and Accessing
Members of structures
 Arrays of Structure
Lecture-II  Using Nested Structure
 Initializing Nested Structure
 Union
Lecture-III
 Enumeration
Lab8: Structures in C++
Writing programs that input data
into members of structure and
then print data from the
Week 9 Practical-I
members of structure.
Writing programs that copy one
structure variable to another
variable.
Writing programs that swap two
structure type variables, Print
the results before and after
Practical-II
swapping.
Writing programs that define
structure within a structure.
Writing program that defines
variables of type enum, initialize
Practical-III them, apply arithmetic and
comparison operators and
examine output
Week 10 Lecture-I  Function definition and
calling:
 Scope of variable
 Introduction to Functions
 Declaring, calling and Defining
Function
 Passing arguments (constant &
Variable) to a function
 Pass by value & Pass by ref.
Lecture-II  Returning value from
function
 Stack rolling and unrolling:
Lecture-III  optimize the execution time
 remove or reduce iterations
Lab9: Functions (Call by value
and reference)

Practical-I Writing programs, which divide


the previously implemented
codes into functions.

Writing programs in which


arguments (constants, variables
Practical-II
and arrays) are passed to
functions.
Writing programs in which
arguments (constants, variables
Practical-III
and arrays) are passed to
functions.
 String and string operations:
Lecture-I
 String header file
Lecture-II  String functions
Lecture-III  String functions
Lab10: Implementation of
Week 11 cstring and its functions
Practical-I
Practical Exercises related to
string and their functions
Practical Exercises related to
Practical-II
string and their functions
Program for the verification of
Practical-III
username and password
Week 12  Pointers/references:
 Computer Memory
 Pointer Basics.
Lecture-I
 Pointer variables and its
initialization
 Void type pointer
 Pointers and Arrays
Lecture-II
 Pointers and Strings
Lecture-III  Passing & Returning array to a
function
 Passing & Returning structure
to a function
 Passing & Returning pointer to
a function
Lab11: Implementation of
Pointers
Practical-I Writing programs that print the
memory address of variables
through their pointer variables.
Writing programs that input
Practical-II data into an array and then print
data using pointer notation.
Writing programs that find out
the maximum/minimum value in
Practical-III
an array through pointer
notation.
Week 13  Static and dynamic memory
Lecture-I
allocation:
Lecture-II  Function overloading
Lecture-III  Recursion, Inline functions
Lab12: Static and Dynamic
Memory Allocation
Writing program that passes
structure as an argument to
Practical-I function.
Writing program that passes
structure by reference as an
argument to function.
Writing program that return
structure from a function.
Practical-II Writing program to swap two
values by passing pointers to
function.
Writing program to find out the
length of a string using pointers.
Writing program to copy one
string to another string using
pointers.
Practicing programs which
define overloaded function call
them and examine output.
Calculating integer powers of a
variable using recursive approach
Calculating factorial of a number
using recursive approach
Practical-III Calculating Fibonacci series using
recursive approach
Writing programs which define
local, global and static variables
& their scope.
 File I/O operations
Lecture-I  Data Files and Streams
 Reading from a file
Lecture-II  Adding data to the end of file
Lecture-III  Removing and Renaming file
Lab13: File handling in C++
Week 14 Writing program which read and
Practical-I
write file using ifstream and
ofstream.
Writing program which copies
Practical-II contents from one file to other
file using ifstream and ofstream
Writing programs that use
Practical-III
different file operation modes.
 Object Oriented Paradigm:
Lecture-I  Introduction to Classes and
Objects
Lecture-II  Project Demos
Lecture-III  Project Demos
Week 15 Practical-I  Project Demos
Practical-II  Project Demos
Lab14: Implementing
concepts of Classes and
Practical-III
Objects

Lecture-I  Course Revision


Lecture-II  Course Revision
Lecture-III  Course Revision
Week 16
Practical-I  Labs Revision
Practical-II  Labs Revision
Practical-III  Labs Revision
Final term Exam

You might also like