Course Catalogue

Module Code and Title:       CPR101          Introduction to Programming 

Programme:                          BCA

Credit Value:                         12

Module Tutor:                       Somnath Chaudhuri

General Objective: This module deals with the basic concept of computation and principles of computer programming. The students will be exposed to problem analysis, need for programmed languages and problem solving. The focus will be not only on solving problems but also how fast problems can be solved, or how to minimize the storage for a particular application. The technique of solving problems such as divide and conquer will give a clear idea about how a big problem can be further divided and the similar techniques be applied in solving the sub-problems. The students will further be exposed to the structured programming language, C.

Learning Outcomes – On completion of the module, learners will be able to:

  1. Analyse and solve simple problems.
  2. Design a flowchart for given problem.
  3. Decompose a bigger problem into modules, and design these modules.
  4. Use recursion concepts to solve large and complex problems.
  5. Use C programming language syntax and functions to solve problems.
  6. Describe various techniques of parameter passing.
  7. Write simple custom functions.
  8. Test and debug a program.

Learning and Teaching Approach:

Approach

Hours per week

Total credit hours

Lecture & discussions

3

45

Lab practical

3

45

Independent study

2

30

Total

120

Assessment Approach:

A. Problem Analysis Assignment: 10%

Students should submit two assignments related to algorithm representations, Pseudo codes, flow charts and decision tables to obtain this 10%. The first one will be before the midterm and it constitutes half of the total 10% allocated. The second one will be after them midterm. In each, 3-4 numerical problems will be assigned to them to solve. 40% will be awarded for solving the problem, 40% for analysing the problem and 20% for the overall report.

Activity: Different problems relate to Algorithm representations, Pseudo codes, flow charts and decision tables will be assigned to the students. Students have to analyse those and solve them. Solutions should be submitted in hardcopy format with proper logical expressions.

B. Class Test: Portion of Final Mark: 20%

This is a written test conducted within the class for duration of 30-40 minutes. There will be two such tests, one before midterm comprising of topics from the beginning to the quarter point of the subject matter and the other after the midterm comprising of topics from after the midterm to quarter pointer after midterm. Each class test will consist of 3-4 numerical problems. The students have to solve those problems in the class within predefined time.

Activity: In-class individual problem solving.

C. Individual Presentation: Portion of Final Mark: 5%

The presentation will be conducted within the class hours. Students are expected to present the topic assigned to them respectively. The duration of each individual presentation will be 10-12 minutes. 30% will be awarded for content of the presentation, 30% for preparedness, 10% for timing, 15% for handling of Q&A session and 15% for presentation skill. Students will be divided into groups of 4. The duration of each group presentation will be 10-12 minutes.

Activity: A few topics will be taught in the class; then, when students have begun to grasp the concept of the topics, they have to prepare a presentation on related real-time applications of problem solving. The presentation will be evaluated based on the contents of the presentation and individual presentation skill.

E. Lab Practical Exam: Portion of Final Mark: 20%

This component assesses the student’s practical knowledge. They will be assessed on their program designing skills, maintaining syntax, use of functions, testing and debugging a code. 35% will be awarded sub tasks completed, 35% Techniques used for each sub task, 10% for timing and 30% for output. There will be one hour practical examination. 2-3 programs will be assigned to individual student. They have to solve it within predefined examination duration.

Activity: Practical problem solving in the lab.

F. Midterm Exam: Portion of Final Marks: 20%

This a college wide examination conducted at the half-way into the semester. This examination is conducted for 1 hour and 30 Minutes and it includes all topics till the half-way point in the subject matter.

Areas of assignments

Quantity

Weighting

A. Problem Analysis Assignment

2

10%

B. Class Test

2

20%

C. Individual Presentation

1

5%

D. Lab Practical Exam

1

20%

E. Midterm Exam

1

20%

Total Continuous Assessment (CA)

 

75%

Semester-end Examination (SE)

 

25%

 

Prerequisites:

Subject Matter:

  1. Problem Analysis and Number Systems
    • Critical problem analysis
    • Designing the solutions
    • Number system problems
    • Need for programmed languages
  2. Designing Flowchart, algorithm and pseudo code
    • Algorithm representations
    • Pseudo codes
    • Flow charts and decision tables
    • Structured programming and modular programming
  3. C Fundamentals
    • The C character set
    • Identifiers and Keywords
    • Data types, Constants, Variables and Arrays
    • Declarations, Expression, Statements, Symbolic Constants
    • Flow Charts
  4. Operators and Expressions
    • Arithmetic Operator
    • Unary Operators
    • Relational and Logical Operators
    • Assignment Operators
    • The Conditional Operator, Library Functions
  5. Data Input and Output
    • Preliminaries, Single Character Input – The getchar() function, Single Character Output – The putchar() function
    • Entering input data – the scanf() function
    • Writing Output data – The printf() function
    • The gets and puts functions
  6. Control Statements
    • Preliminaries, Branching: the if – else statement
    • Looping: the while statement, do – while statement, the for statement
    • Nested Control Structures
    • The switch statement, the break statement
    • The continue statement, the comma operator
    • The goto() statement
  7. Functions
    • Basics of functions, function types
    • Functions returning values, functions not returning values, auto, external
    • Static and register variables
    • Scope rules
    • Recursion
    • Function prototypes
    • C pre-processor
    • Command line arguments
  8. Program Structure
    • Storage classes, Automatic Variables
    • External (Global) Variables
    • Static Variables
    • Multiple program
    • Library function
  9. Arrays
    • Defining an array
    • Processing an array
    • Passing arrays to functions
    • Multidimensional arrays, arrays and strings
  10. Pointers
    • Fundamentals, pointer declarations
    • Passing pointers to functions
    • Pointers and one-dimensional arrays
    • Dynamic memory allocation
    • Operations on pointers, pointers and multidimensional arrays
    • Arrays of pointers, passing functions to other functions
    • Advanced pointer declarations
  11. Structures and Unions
    • Defining a structure
    • Processing a structure
    • User-defined data types, structures and pointers
    • Passing structures to functions
    • Self-referential structures, union
  12. Data Files
    • Opening and Closing a simple text file
    • creating and processing a text file
  13. Practical Components
    • Problems related to array
    • Linear & Binary Search
    • Bubble, Insertion and Selection Sort
    • Stack, Application of Stack
    • Queue, Application of Queue
    • Application of Stack & Queue in Process Management
    • Link List implementation
    • Application of Link List for Stack & Queue
    • Search & Sorting Operation Using Link List
    • Tree Using Link List
    • Recursion Problem and its application
    • Software to be used: Turbo C & Borland C

Reading List:

  1. Essential Reading
    • Kernighan & Ritchie (1988). The C Programming Language. Prentice Hall of India, New Delhi.
    • Kanitkar,Y(1999). Let us C. BPB Publications, New Delhi.
    • Yashavant P. Kanetkar,(2003).Understanding Pointers in C
    • Deepak Gupta.(2013).Introduction to Programming Paperback
  2. Additional Reading
    • Addy S. (Na). Fundamentals of Computer Science.
    • N. King. C Programming: A Modern Approach, 2nd Edition, W.W. Norton
    • Greg Perry, Absolute Beginner's Guide to C (2nd Edition), SAMS Publishing
    • Stephen Prata, C Primer Plus (5th Edition), SAMS Publishing
    • (2010), C Programming Concepts: With Prob & Sol, Tata McGraw-Hill Education
    • Rajaraman. (1994), Computer Programming in C, PHI Learning Pvt. Ltd.
    • Stephen G. Kochan. (1983), Programming in C, Hayden Book Co.
    • Salim Y. Amdani. (2009), C Programming, Laxmi Publications Pvt Limited.

Date: May 30, 2015