Computer Programming
Computer Programming
Course Title
SEWP ZC142 /CSIW ZC142:Computer Programming
Course Description
The course covers the following topics through lectures:
Basic Model of a Computer; Problem Solving – Basic Computing Steps and Flow
Charting (Assignment, Sequencing, Conditionals, Iteration). Programming Constructs –
Expressions, Statements, Conditionals, Iterators/Loops, Functions/Procedures; Data
Types – Primitive Types, Tuples, Choices (Unions or Enumerations), Lists/Arrays,
Pointers and Dynamically Allocated Data. Input output and Files.
While the topics are taught using a specific language, the intent of the course is to
teach a programming methodology not a programming language. There is also a
laboratory component that involves development and testing of iterative and procedural
programs using bounded and unbounded iterations, function composition, random access
lists, sequential access lists, dynamically allocated lists, and file access.
Course Objectives
No Course Objective
CO3 To understand and explore systematic techniques and approaches for constructing programs.
Text Books
No Author(s), Title, Edition, Publishing House
T1 J.R. Hanly and E.B. Koffman, Problem Solving and Program Design in C. 5th Edition.
Pearson Education 2007
Reference Books
No Author(s), Title, Edition, Publishing House
WASE&WIMS
II Sem, 2018 -19
Learning Outcomes:
No Learning Outcomes
LO2 Student should be able to understand the basic terminology used in computer
programming
LO3 Student should be able to write, compile and debug programs in C language and use
different data types in a computer program
LO4 Student should be able to design simple programs involving decision structures, loops
and functions, understand the dynamics of memory by the use of pointers.
LO5 Student should understand basics of pointers and be able to use different data structures
and create/update basic data files.
Legend
M = Module, RL = Recorded Lecture, CS = Contact Session, LE = Lab Exercises, SS = Self Study,
HW = Home Work Problems
Modular Structure
Type Description/Plan/Reference
RL1.1 Computers and Programming, Programming Languages Types, Problem solving
RL1.2 Number systems and Representations, Decimal and Binary number representations,
Unsigned Binary number representation and arithmetic
RL1.3 Signed Binary representations (Signed Magnitude, 1’s Complement, 2’s Complement)
Signed Binary Numbers: Arithmetic (Overflow, Sign Extension)
Character representations, Data types
LE1.1 Introduction (Computing Machine, Operating System, UNIX)
SS1.1 R1: Chapter 1, T1: Section 1.2 – 1.5
CS-1 Subject overview, handout discussion and review of RL1
HW1.1 T1:Chapter 1: Review questions
Type Description/Plan/Reference
RL2.1 Structure of a C program, Program compilation and execution in gcc
RL2.2 Data types in C, Operators & Expressions, Expression Evaluation
RL2.3 Operator Precedence & Associativity, Operator Typecasting
CS-2 Brief Overview on recorded lectures on Module 1 and 2, Problem solving on number
systems and conversion process (e.g. Decimal, Octal, Binary, Hexadecimal etc.), Problem
solving for signed representations and arithmetic, Problem solving on expression
evaluation and operator precedence, T1 Section 2.6
LE2.1 Getting started with C, Compiling executing your program, Expression Evaluation
SS2.1 R1: Chapter 3, T1: Section 2.7, 2.8
HW2.1 T1 Chapter 2: Programming Projects 3, 4,5, 12 and 13
Type Description/Plan/Reference
RL3.1 Modularity in Programming, Modular Programming in C using Functions/Procedures
RL3.2 Designing Functions in C: Argument Identification, Return Value, Pre-condition(s) and
Post-condition(s); Argument List Correspondence; Function with no Arguments
CS-3 Brief Overview on RL3.1 and RL3.2, Problem Solving on Function Design, T1: Section
3.2, Section 6.5
LE3.1 Modular Programming using Functions
SS3.1 T1: Chapter 6
HW3.1 T1: Chapter 3: Programming Projects 4, 6, 9, 10, 11
Type Description/Plan/Reference
RL4.1 Problem Solving: Sequential and Conditional constructs, if, if-else, Flow charting
RL4.2 Conditional constructs to handle multiple branches, if—else –if , switch—case
CS-4 Brief Overview on RL4.1 and RL4.2, Problem Solving on conditional statements
LE4.1 Programming with conditional constructs
SS4.1 R1: Chapter 5: Section “Conditional Statements Selection”
HW4.1 T1: Chapter 4: Programming Projects 1, 6, 7, 11
Type Description/Plan/Reference
RL5.1 Problem Solving: Iterative constructs, Flow charting
WASE&WIMS
II Sem, 2018 -19
Type Description/Plan/Reference
RL6.1 Random access lists and operations, Integer Arrays: Indexing, Iterating
RL6.2 Character Arrays, Strings and operations
RL6.3 Searching in the list: Linear search & Binary search, Ordering the list: Bubble sort,
Merge sort
RL6.4 Two Dimensional List representations and Operations
CS-6 Brief Overview on recorded lectures on Module 6. Problem solving on One dimensional
integer and character arrays. Problem solving on searching and ordering of array
elements, Problem solving on two dimensional arrays.
LE6.1 Programming with arrays
SS6.1 R1: Chapter 8: Section “One Dimensional Array”
SS6.2 R1: Chapter 9: Section “Strings Handling Functions”, “Arithmetic Operations on
Characters”
SS6.3 R1: Chapter 8: Section “Two Dimensional Array”, “Multi-dimensional Array”
HW6.1 T1: Chapter 8: Programming Projects 1, 2, 3, 4, 6, 11, 12
Type Description/Plan/Reference
RL7.1 User defined Data types, Structure Data type
RL7.2 Problem solving using Structures and Union
CS-7 Brief Overview on on recorded lectures on Module 7. Nested Structures, Problem solving
on structure and union types, T1 Section 11.4
LE7.1 Programming with structures and unions
SS7.1 R1: Chapter 11
WASE&WIMS
II Sem, 2018 -19
Type Description/Plan/Reference
RL8.1 Introduction to Pointers, Pointer Arithmetic, Pointers to Structures
RL8.2 Arrays and Pointers, Dynamic Memory Allocation, Pass by Reference
RL8.3 Linked List, Implementation of Linked List, Operations on Linked List: Search, Delete,
Insert
CS-8 Brief Overview on recorded lectures on Module 8; Problem solving on pointers, dynamic
memory allocation, Problem solving on linked lists
LE8.1 Programming with pointers and dynamic memory allocation
SS8.1 R1: Chapter 10
HW8.1 T1: Chapter 14: Programming Projects 6, 7
Type Description/Plan/Reference
RL9.1 File I/O, Basic File operations
RL9.2 Command line arguments, Text File Processing
CS-9 Brief Overview on RL9.1 and 9.2, Problem solving on text file processing, T1: Section
12.3
LE9.1 Programming with file processing
SS9.1 R1: Chapter 12, T1: Section 12.1
HW9.1 T1: Chapter 12: Programming Projects 1, 4, 6
Course Plan:
Sl. No RL CS SS HW LE
1 RL 1.1,1.2,1.3 CS – 1
2 RL 2.1,2.2,2.3 CS-2 SS1.1 HW1.1, HW2.1 LE1.1, LE2.1
3 RL 3.1 No session
4 RL 3.2 CS-3 SS 2.1 HW 3.1 LE 3.1
5 RL 4.1 No session
6 RL 4.2 CS-4 SS 3.1 HW 4.1 LE 4.1
WASE&WIMS
II Sem, 2018 -19
7 RL 5.1,5.2 No session
8 RL 5.3 CS-5 SS 4.1 HW 5.1 LE 5.1
11 RL 7.1 No session
12 RL 7.2 CS-7 SS 6.1 HW 7.1 LE 7.1
15 RL 9.2 CS -9
16 CS-10 SS 8.1 HW 9.1 LE9.1