CSF111 CP Handout
CSF111 CP Handout
1. Objective:
The primary goals of this course include:
(A) Understanding the basic representation of data and efficient ways to process represented data inside a
computer.
(B) Systematic techniques and approaches for constructing programs to process the represented data using a
programming language.
2. Scope:
This course teaches a beginner how to do programming with computers. The course starts with basic representation of data and
operations with represented data. The course covers problem solving with the help of flowcharting, algorithms
(Assignment, sequencing, conditionals and Iterations) and C programming. The problem solving using programming
covers programming constructs like Expressions, Statements, Conditional statements, Iterators / Loop constructs and
Functions / Procedures. This course also covers Data types – Primitive types, Tuples, Choices (Unions or
Enumerations), List / Arrays, Pointers and Dynamic allocated data. This course covers files (input and output) and
recursion.
This course has no pre-requisites and the expected outcome of the course is “systematic way of” programming (in C). This
course emphasize on design of (arguably correct) algorithms as solutions to problems. It also focuses on using
abstraction and data organization for implementing algorithms and analyzing the efficiency of the implementations.
C will be used as a vehicle for demonstrating and practicing the techniques.
There is also a laboratory component that involves development and testing of iterative and procedural programs using bounded
iteration, unbounded iteration, recursion, function composition, random access lists, sequential access lists,
dynamically allocated lists and file accesses.
4. Lecture Schedule:
Lect Learning Objective Topics Reference
1 Introduction Introduction to Computers and Computer Programming
course, Basics of Computing – Data and Computation,
Model of a computer.
2-5 Problem Solving Simple Algorithms R2
Techniques
6-8 Number Representation Binary/Octal/Hexadecimal Representation, 1's Class Notes
Complement, 2's Complement, Signed Magnitude
9 How to Write a Basic C - Structure of a simple C program using “Hello World” T1
program program. Compilation and Execution of the program
Basic Data Types in C
10-11 How to Write a Basic C - Variables & Basic Input/Output T1
program Chapter 1
12 Data types and Expression Evaluation – Associativity and Precedence. T1 Sec. 2.5,
Expression evaluation Conditional Expression Class Notes
Data Types – Boolean Values and Boolean Operations;
13-14 Data types, state and Sets and Bit Vectors - Bit Vector Operations; – Characters T1 Sec. 2.2,
interaction and Character Sets; Class Notes
Problem Solving – Sequential and Conditional Execution;
15 -16 Basic Problem solving – Flow Charting; Pre-conditions and Post-conditions.
Structured Programming Statements – Sequential and Conditional Statements. T1 Ch. 4
17 -21 Basic Problem solving – Problem Solving – Repetitive Execution – Bounded,
Structured Programming Unbounded, and Infinite Iterations; Flow Charting – Entry
and Exit; Correctness Arguments – Invariance and T1 Ch. 5
Termination. Forms of Iterative Statements;
22 Basic Problem solving – Goto Statements – Structured Programming Class Notes
Structured Programming
23-24 Modular Programming Functions
Advanced Problem Data Types – Structured Data - Lists – Random Access and
25 -29 Solving – Program Locality – Indexing; Iterating over lists – Ordering (Sorting) T1 Ch. 8
Structuring and Character Arrays and Strings; T1 Ch. 9
Structured Data
30-32 Searching
33 - 35 User Defined Data and User Defined Data Types – Abstract Data Types – Structure T1 Ch. 13,
Dynamic Data & Implementation of ADTs - Examples (Access Restricted Class Notes
Lists)
36 -38 User Defined Data and Pointers, Addresses and Address Arithmetic; Parameter T1 Sec. 14.1
Dynamic Data Passing: Value and Reference. Multiple levels of Indirection
39 - 40 Advanced Topics – File Recursive Programming – Divide and Conquer; Recursive T1 Ch. 10
I/O and Recursion procedures; Recursion vs. Iteration – Time and Space. Tail
Recursion
5. Evaluation:
13-03-2019 (Thurs)
Mid sem test 90 mins 75 Closed Book
(11 to12:30 p.m.)
Online(s) (Programming in
TBA 65 TBA Open Book
nature)
6. Malpractice Regulations:
1. Any student or team of students found involved in mal practices in working out Lab / Online will be awarded
negative marks equal to the total weightage of the Lab / Online and will be blacklisted.
2. Any student or team of students found repeatedly – more than once across all courses – involved in mal-practices
will be reported to the Disciplinary Committee for further action. This will be in addition to the punishment
mentioned above.
3. A mal-practice - in this context - will include but not be limited to:
➢ Submitting some other student’s / team’s solution(s) as one’s own;
➢ Copying some other student’s / team’s data or code or other forms of a solution;
➢ Seeing some other student’s / team’s data or code or other forms of a solution;
➢ Permitting some other student / team to see or to copy or to submit one’s own solution;
➢ OR other equivalent forms of plagiarism wherein the student or team does not work out the solution and/or
uses some other solution or part thereof (such as downloading it from the web).
4. The degree of mal-practice (the size of the solution involved or the number of students involved) will not be
considered as mitigating evidence. Failure on the part of instructor(s) to detect mal-practice at or before the time of
evaluation may not prevent sanctions later on.
7. Course Notices: All notices pertaining to this course will be displayed on the course photon (http://photon) page.
9. Makeup Policy:
➢ No makeup will be given for the lab component.
➢ Permission of the Instructor-in-Charge is required to take a make-up
➢ Make-up applications must be given to the Instructor-in-charge personally.
➢ A make-up test shall be granted only in genuine cases – based on Instructor’s judgment - the student would be
physically unable to appear for the test.
➢ In case of an unanticipated illness preventing a student from appearing for a test, the student must present a
Medical Certificate from BITS medical centre.
➢ Requests for make-up for the comprehensive examination – under any circumstances – can only be made to
Faculty In-charge, Instruction Division.