Course Details
Subject {L-T-P / C} : CS1010 : Programming for Problem Solving { 1-0-2 / 2}
Subject Nature : Practical
Coordinator : Prof. Manmath Narayan Sahoo
Syllabus
Introduction to Problem Solving: The Basic Model of Computation, Algorithms, Flow-charts, Programming Languages, Compilation, Linking and Loading, Testing and Debugging, Documentation.
Introduction to ‘C’ Language: Variables and Identifiers, Built-in Data Types, Variable Definition, Arithmetic operators and Expressions, Constants and Literals, Simple assignment statement, Basic input/output statement, Simple ‘C’ programs.
Conditional Statements and Loops: Decision making within a program, Conditions, Relational Operators, Logical Connectives, if statement, if-else statement, Loops: while loop, do while, for loop, Nested loops, Infinite loops, Switch statement, structured programming
Arrays: One dimensional arrays: Array manipulation Searching, Insertion, Deletion, Finding the largest/smallest element in an array Two dimensional arrays, Addition/Multiplication of two matrices, Transpose of a square matrix Null terminated strings as array of characters, Standard library string functions
Functions: Top-down approach of problem solving, Modular programming and functions, Prototype of a function: Formal parameter list, Return Type, Function call, Block structure, Passing arguments to a Function: call by reference, call by value, Recursive Functions, arrays as function arguments.
Storage Classes: Scope and extent, Storage Classes in a single source file: auto, extern and static, register, Storage Classes in a multiple source files: extern and static
Pointers: Address operators, pointer type declaration, pointer assignment, pointer initialization, pointer arithmetic, functions and pointers, Arrays and Pointers, pointer arrays, pointers and structures, dynamic memory allocation
Structures and Unions: Structure variables, initialization, structure assignment, nested structure, structures and functions, structures and arrays: arrays of structures, structures containing arrays, unions
Object-Oriented Programming Concepts: Object Oriented vs. Procedural Programming, Features and benefits of object-oriented programming: Encapsulation, Class, Object, Abstraction, Data hiding, polymorphism, and Inheritance, Problem modelling using object oriented approach, Object oriented program structure, Concepts of Class and Objects
Course Objectives
- To develop logic building skills for problem solving
- To translate the solution logic to computer programs using C language constructs
- To decompose a problem into modules and synthesize a complete program
- To study common solution approaches and analysis techniques
Course Outcomes
The course aims to provide exposure to problem-solving through programming. It aims to make the student understand the basic concepts of a programming language. After completing this laboratory course, students <br />1. will be able to employ scientific reasoning and logical thinking <br />2. will be able to develop idea of algorithmic steps to solve logical problems <br />3. will have a solid understanding and foundation that would help in picking up new programming languages and solutions approaches <br />4. will be inculcated with the concepts of algorithmic correctness, effectiveness, program legibility and debugging
Essential Reading
- J. R. Hanly and E. B. Koffman, Problem Solving and Program design in C, Pearson Education
- Byron S Gottfried, Schaum's Outline of Programming with C, McGraw-Hill Education
Supplementary Reading
- Robert Lafore, Object-Oriented Programming in C++, Pearson Education
- Ryuhei Uehera, First Course in Algorithms through Puzzles, Springer