National Institute of Technology Rourkela

राष्ट्रीय प्रौद्योगिकी संस्थान राउरकेला

ଜାତୀୟ ପ୍ରଯୁକ୍ତି ପ୍ରତିଷ୍ଠାନ ରାଉରକେଲା

An Institute of National Importance
NIT Rourkela Inside Page Banner

Syllabus

Course Details

Subject {L-T-P / C} : CS1010 : Programming for Problem Solving { 1-0-2 / 2}

Subject Nature : Practical

Syllabus

Module 1 :

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 Objective

1 .

To develop logic building skills for problem solving

2 .

To translate the solution logic to computer programs using C language constructs

3 .

To decompose a problem into modules and synthesize a complete program

4 .

To study common solution approaches and analysis techniques

Course Outcome

1 .

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
1. will be able to employ scientific reasoning and logical thinking
2. will be able to develop idea of algorithmic steps to solve logical problems
3. will have a solid understanding and foundation that would help in picking up new programming languages and solutions approaches
4. will be inculcated with the concepts of algorithmic correctness, effectiveness, program legibility and debugging

Essential Reading

1 .

J. R. Hanly and E. B. Koffman, Problem Solving and Program design in C, Pearson Education

2 .

Byron S Gottfried, Schaum's Outline of Programming with C, McGraw-Hill Education

Supplementary Reading

1 .

Robert Lafore, Object-Oriented Programming in C++, Pearson Education

2 .

Ryuhei Uehera, First Course in Algorithms through Puzzles, Springer