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