A2610003 - COMPUTATIONAL THINKING AND PROBLEM SOLVING USING C
Prerequisites: Mathematics and logical reasoning at 10+2 level. No prior programming experience is assumed.
Course Objectives: The main objective of the course is to
- Familiarize students with computers, computational thinking, and the process of algorithmic problem solving.
- Build strong programming fundamentals using the C language, including operators, control structures, and loops.
- Develop the ability to design and implement solutions using arrays, strings, and user- defined data types.
- Impart working knowledge of pointers, recursion, dynamic memory allocation, functions, and file handling for building modular, reusable programs.
Course Outcomes: At the end of this course, the student will be able to COs
|
COs
|
Course
Outcome (CO) Statement
|
Bloom’s
Level
|
|
CO1
|
Apply computational thinking techniques (decomposition,
abstraction, pattern recognition) to design algorithms and flowcharts for a
given problem.
|
K3
|
|
CO2
|
Develop C programs using appropriate operators, expressions,
selection statements, and loops to implement a given logic.
|
K3
|
|
CO3
|
Analyze problems involving arrays,
strings, structures and unions and construct suitable C solutions.
|
K4
|
|
CO4
|
Apply pointers, recursion, and dynamic memory allocation to
solve computational problems efficiently.
|
K3
|
|
CO5
|
Construct modular C programs using user-defined functions and
perform text/binary file input-output operations.
|
K3
|
UNIT-I: Computational Thinking and Introduction to C
Computational Thinking: Decomposition, Pattern Recognition, Abstraction, Algorithm Design; representing solutions as algorithms, pseudocode, and flowcharts; Number Systems and Data Representation (integers, reals); Overview of Computer Organization and Program Execution.
Introduction to C: Background, Structure of a C Program, Identifiers, Keywords, Variables, Constants, Basic Data Types, Input/Output statements; Expressions, Operators, type of operators- arithmetic, relational, logical, bitwise, assignment, conditional, increment, decrement, etc., unary, binary, ternary, Operator Precedence and Associativity, Type Conversion; Scope, Storage Classes, and Type Qualifiers.
UNIT-II: Selection and Decision-Making: Simple if, Two-Way selection- if-else, nested-if, else-if ladder, and Multi-Way Selection- switch. Repetition: Counter- and Event-Controlled Loops: for, while, do-while, and nested loops; Break and continue, Programming Applications combining Selection and Repetition. Arrays: One-Dimensional and Two-Dimensional Arrays, Multidimensional Arrays, Array-based Problem Solving (searching, sorting, etc.).
UNIT-III:
Functions: Designing Structured/Modular Programs, Function Declaration and Definition, Parameter Passing (by value, by reference using pointers), Passing Arrays and Pointers to Functions, Standard Library Functions, Inter-Function Communication. Recursion: Recursive vs. Iterative Solutions, Designing Recursive Algorithms, Recursion with Arrays and Pointers, Efficiency Considerations.
Strings: String Representation, Standard String-Handling Functions, Arrays of Strings, String-to-Data Conversion.
UNIT-IV:
Pointers: Pointer Fundamentals, Pointer-to-Pointer, Pointer Arithmetic, Pointers and Arrays, Array of Pointers, types of pointers, Compatibility and L-value/R-value concepts. Dynamic Memory Allocation: malloc, calloc, realloc, free.
User-Defined Types: Typedef, Enumerated Types, Structures, Unions, and Nested Structures; Programming Applications using Structures and Arrays of Structures.
UNIT-V:
Pre-processor: Directives and Macros. Command Line Arguments.
File I/O: Streams, Text vs. Binary Files, Standard Library File Functions, formatted and Character I/O, Sequential File Processing.
TEXT BOOKS:
1. Behrouz A. Forouzan & Richard F. Gilberg, Computer Science: A Structured Programming Approach Using C, 3rd Edition, Cengage Learning, ISBN-13: 978-0-534-49132-1.
2. Brian W. Kernighan & Dennis M. Ritchie, The C Programming Language, 2nd Edition, Pearson Education / Prentice Hall India, 1988.
REFERENCE BOOKS:
1. Sumitabha Das, “Computer Fundamentals and Programming”, 18th Edition, McGraw Hill Education, 2018.
2. Ashok N. Kamthane, Amit Ashok Kamthane, “Programming in C”, 4th Edition, Pearson Education, 2025. ISBN: 978-9332543633.
3. Pradip Dey, Manas Ghosh, “Computer Fundamentals and Programming in C”, 2nd Edition, Oxford University Press, 2013. ISBN: 978-0198068842.
E-RESOURCES:
1. NPTEL – Programming in C, IIT Kanpur: https://onlinecourses.nptel.ac.in/noc21_cs81/preview
2. Geeks for Geeks – C Programming Language: https://www.geeksforgeeks.org/c-programminglanguage/
3. Programiz – Learn C Programming: https://www.programiz.com/c-programming
4. cplusplus.com – C Standard Library Reference: https://cplusplus.com/reference/clibrary/
5. TutorialsPoint – C Programming: https://www.tutorialspoint.com/cprogramming/index.html
6. W3Schools – C Tutorial: https://www.w3schools.com/c/
No comments:
Post a Comment