National Institute of Technology Rourkela

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

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

An Institute of National Importance

Syllabus

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