UE23CS151B: Problem Solving with C

In Problem Solving with C Course, will be learning to solve common types of computational problems, by analyzing the given problem statement and developing an algorithm to solve the given problem. Then make use of C language constructs to develop well-structured programs.

Course objectives:

  • Acquire knowledge on how to solve relevant and logical problems using computing machine
  • Map algorithmic solutions to relevant features of C programming language constructs
  • Gain knowledge about C constructs and its associated eco-system
  • Appreciate and gain knowledge about the issues with C Standards and its respective behaviours
  • Get insights about testing and debugging C Programs

Course outcomes:

At the end of the course, the student will be able to

  • Understand and apply algorithmic solutions to counting problems using appropriate C Constructs
  • Understand, analyse and apply text processing and string manipulation methods using C Arrays, Pointers and functions
  • Understand prioritized scheduling and implement the same using C structures
  • Understand and apply sorting techniques using advanced C constructs
  • Understand and evaluate portable programming techniques using preprocessor directives and conditional compilation of C Programs

Course Content:

Unit 1: Introduction

Introduction to Programming, Salient Features of ‘C’, Program Structure, Variables, Data Types & range of values, Operators and Expressions, Control Structures, Input/ Output Functions, Language specifications-Behaviors.

Unit 2: Counting, Text Processing and String manipulation

Arrays – 1D and 2D, Functions, Storage classes, Pointers, Strings, String Manipulation Functions & errors.

Unit 3: Dynamic Memory Management, Structures and File Handling:

Dynamic Memory Allocation and Deallocation functions & errors, Structures, pragma, File IO using redirection, File Handling functions, Searching, Sorting, Combination of Structures, Arrays and Pointers, Call-back, Code Review .

Unit 4: Queuing and Portable Programming

Lists, Priority Queue, Enums, Unions, Bit Fields, Pre-Processor Directives, Conditional Compilation, Code Review