Course Outline
(CC-112: Programming Fundamentals)
Course Title Programming Fundamentals
Course Code CC-112
ü Class Webpage: https://piazza.com/pucit.edu.pk/fall2024/cc112
ü Teacher Notes @ PUCIT Intranet: \\printsrv\\Teacher Data\\Fareed ul Hassan
ü CMS: online.pucit.edu.pk
Course Webpage *Mobile Apps for Piazza Course Page
https://apps.apple.com/us/app/piazza/id453142230
https://play.google.com/store/apps/details?id=com.piazza.android&hl=en_US&gl=US
Course Email fareed@pucit.edu.pk
Instructor Fareed Ul Hassan Baig
Teacher TBA
Assistant(s)
(T.A)
3
Theory per Week:
Credit Hours Weight: 3 Cr. Hrs.
Count of Lectures: 2
Duration: 90 minutes
Prerequisite o None
Course
Prerequisite o Enthusiasm
Skill/Knowledge o Consistency
/Understanding o Persistence
Follow Up CC-211: Object Oriented Programming
Program Name BS Software Engineering/Computer Science/Information Technology
o “Programming is to Computer science as Calculus to Physics and Engineering”.
Theories of computer science can effectively be verified via programming.
o Students should be able to translate their basic pseudo-code/flow-charts into some
Aims and programming language that computer can understand so that they can get real feel
Objectives of their efforts.
o In addition to learning the translation of their logic into some programming
language, they will also learn basic principles of attacking a problem, a bit of
performance factor and some basic structured design principles.
Topics: Flowcharts/Pseudo Codes, Basic C++ Language Constructs: Data types, Variable
and Constants, Operator and Expressions, Input and Output (I/O), Formatted I/O,
Escape Sequences. Structured Programming in C Language: Decision making using if
control structure, Repetition using for and do while, multiple selection using switch and
logical operators. Procedural Programming in C Language: functions, prototype,
parameter and arguments, call by value and call by reference, library and header files,
scope and life time of variables (storage classes), recursion. Composite data types
Syllabus
arrays: definition, processing, and passing of array to a function, multi-dimensional
arrays, searching and sorting. Pointers: pointer definition, pointer arithmetic, constant
pointers, pointer and arrays. Strings: string and characters, string conversion functions,
Dynamic Memory Allocation. User Defined Data Types: structures, definition,
initialization, accessing members of structures, typedef, union and bitwise operators,
enumerations. C File Processing: files and streams, Sequential Access File, Random
Access File, Secondary Storage I/O. Miscellaneous Topics: Command Line Arguments.
A. Tony Gaddis, “Starting out with C++: from control structures through objects”, 7th
Text Book(s)
Ed., Addison-Wesley, 2012. ISBN 978-0-13-257625-3
R1. Reference from different books, some web-link or lecture notes for reading will be
provided.
Reference R2. D.S. Malik, C++ Programming, From Problem Analysis to Program Design, 8th Ed.,
Material ISBN-13: 978-1-337-10208-7
R3. Brian W. Kernighan and Dennis M. Ritchie, “The C Programming Language”, 2nd Ed.,
Prentice Hall, ISBN 978-0131103627.
Department of Software Engineering (DSE), FCIT, PU, Lahore, Pakistan. Page 1 of 4
Course Outline
(CC-112: Programming Fundamentals)
R4. Bjarne Stroustrup, The C++ Programming Language (4th Edition), Addison-Wesley,
ISBN 978-0321563842. May 2013.
Sessional ………………… 25% Mid ……… 35% Final ……… 40%
Quizzes,
Assignment, 17 Written Exam Written Exam
Tests …………………35 …………………40
Project 8
Assessment
Criteria 25 35 40
Total
100
o Sessional marks distribution may vary depending upon the time available in the
semester and activities conducted in different heads.
o Sessional Marks will be updated online on the Google Docs during the semester but
at the end, it will be populated on PUCIT CMS.
Lecture Breakdown
Week Lec # Topic Source
Introduction to the Course: Class discussion and
1 • Role of CC-112 in the Degree. Practice Files
1 Pseudo Code: Sequence
Flow Charts/Pseudo Code: Conditions Class discussion and
2
Practice Files
Flow Charts/Pseudo Code: Repetition Class discussion and
3
Practice Files
2
Flow Charts/Pseudo Code: Repetition Class discussion and
4
Practice Files
Flow Charts/Pseudo Code: Repetition Class discussion and
5
Practice Files
C++ Programming Language: Introduction, History, and A-(1.3)
3 Significance.
Setting up Programming/Compiling Environment
6
Program Development Life Cycle: Editing, Compiling, Linking,
Loading and Execution. Source file, Object Files, and Executable
files.
Introduction to C++: Hello world program, cout, stream A-(2.1 ~ 2.4)
7 insertion operator, Escape sequences, preprocessor: #include;
Difference between Variables and Literals, Identifiers
4
Data types: short, int, long, char, float, double, bool; sizeof A-(2.5 ~ 2.7, 2.9 ~ 2.16)
8 operator; Variable assignment and initialization; Arithmetic
operators; Comments;
Taking input: cin, extraction operator and its properties; A-(3.1 ~ 3.6)
Concept buffered input; Read C-Strings
Arithmetic expressions: operator precedence and associativity;
9
Library functions: Math: power; Overflow, Underflow, Type
coercion, Type casting, Named constants: const, #define;
5 Multiple assignment
Formatted output: setw, setprecision, fixed, showpoint, left, A-(3.7 ~ 3.13)
right
10
Formatted input: cin.get, cin.getline, cin.ignore; Random
number generation
Selection: Relational operators and expressions, Truth values, A-(4.1 ~ 4.12)
6 11 if, if-else, nested if, if-else if, Logical operators, Input
validation, Scope
Department of Software Engineering (DSE), FCIT, PU, Lahore, Pakistan. Page 2 of 4
Course Outline
(CC-112: Programming Fundamentals)
Selection: Comparing strings (strcmp), Conditional operator, A-(4.13 ~ 4.16)
12
switch statement
Repetition: Increment and decrement operators, while loop, A-(5.1 ~ 5.6)
13
7 Input validation
14 Repetition structure: while loop continued
Repetition: Sentinel-controlled loops, Nested loops, break, A-(5.7, 5.8, 5.11 ~ 5.13)
15
continue
8
Functions: Motivation, Defining, Calling, Function prototype, A-(6.1 ~ 6.9)
16
Passing arguments by value
Mid Term Examination
Passing arguments by reference R1
17
Introduction to Pointers
9 Functions: Local and global variables, Static variables, Default A-(6.10 ~ 6.12, 6.14 ~
18 arguments 6.16)
Overloading functions
Arrays: Introduction, Declaration, Subscripts, Input and output, A-(7.1 ~ 7.5, 7.7)
19
No bounds checking, Array initialization
10 Parallel Arrays A-(7.6)
Searching (Linear, Binary), Sorting (Selection Sort) A-(9)
20
Pointer Data Type Significance
Pointer Arithmetic, working of index operator
Two-D arrays, Mapping formulae for 1-D and 2-D array A-(7.8 ~ 7.10)
21 Character Arrays
11 Array of character arrays (2-D character arrays)
Pointers: Using const with pointers, Heap: Dynamic memory A-(9)
22
allocation (new and delete), Dangling pointers
Pointers: Dangling pointers, Memory leak, Pointer to pointer A-(9)
23
(Multiple indirection), Dynamically allocating a 2-D array
12 Alias A-(10)
24 C-Strings: Library functions (strlen, strcpy, strcat, strncpy,
strncat, strstr), Conversion (atoi, atol, atof, itoa), strtok
Structs: Declaration, Accessing members, Initialization, Arrays A-(11)
25 of structs, Nested structs, Passing/returning structs to/from
13 functions
Structs: Pointer to struct, Dynamic allocation, Pointer member A-(11)
26
variables;
27 Structs: Case Study R1
14
28 Unions, Enumerated Data Type A-(11)
Streams: Text, Binary A-(12.1 ~ 12.4)
29
15 Text data reading writing
30 Text Files continued… R1
Binary File I/O: get, put, read, write A-(12)
31
Binary File I/O: R1
16 Creating records with structures, Random access files (seekg, R1
32 seekp, tellg, tellp)
Binary File I/O: Opening a file for both input and output
Final Term Examination
Department of Software Engineering (DSE), FCIT, PU, Lahore, Pakistan. Page 3 of 4
Course Outline
(CC-112: Programming Fundamentals)
Code of Conduct
• In Quizzes/Tests, you are allowed to use any helping material available at that time unless specified
otherwise. Neighbors and machines are exception.
• Big NOs
o Any sort of communication with your peers/seniors/internet/books etc. on the assigned tasks
may lead you to Grade ‘F’ in the course/Lab.
o Violation of coding convention.
o Late Submissions.
• Once the marks are published on Google docs for any graded task (sessional), You can question about any
discrepancy about it within 3 working days otherwise grading will be considered final.
• Mobile Phones must be switched off during the class and laboratory.
• How to Contact Me:
o Observe the counseling hours! (Preferred/Recommended Option)
When: (Tue, Thu): (1430 ~ 1600)
Where: Graduate Block – 1st Floor – Office#1.
OR
o Use Piazza
§ Send/Post all the course related queries to https://piazza.com class page as private post.
§ For any other information/query, you may send the email at fareed@pucit.edu.pk, but
send it through your PUCIT Email-ID.
Department of Software Engineering (DSE), FCIT, PU, Lahore, Pakistan. Page 4 of 4