MCS-011 Problem Solving and Programming
Objectives
The course is aimed to develop problem-solving strategies, techniques and skills that can be applied to computers and problems in other areas which give students an introduction to computer and analytical skills to use in their subsequent course work and professional development. Emphasis of this course is to act as an introduction to the thinking world of computers, to help students develop the logic, ability to solve the problems efficiently using C programming. Knowledge in a programming language is prerequisite to the study of most of computer science courses. This knowledge area consists of those skills and concepts that are essential to problem solving and programming practice independent of the underlying paradigm. The student will learn various concepts and techniques for problem solving and will implement those ideas using C programs.
Syllabus
BLOCK 1:
An Introduction to C
Unit 1:
Problem Solving
·
Problem - Solving Techniques
o
Steps
for Problem - Solving
o
Using
Computer as a Problem-Solving Tool
·
Design of Algorithms
o
Definition
o
Features of Algorithm
o
Criteria to be followed by an
Algorithm
o
Top Down Design
·
Analysis of Algorithm Efficiency
o
Redundant Computations
o
Referencing Array Elements
o
Inefficiency Due to Late Termination
o
Early Detection of Desired Output
Condition
o
Trading Storage for Efficient
Gains
·
Analysis of Algorithm Complexity
o
Computational Complexity
o
The Order of Notation
o
Rules for using the Big - O
Notation
o
Worst and Average Case Behavior
·
Flowcharts
o
Basic Symbols used in Flowchart
Design
Unit 2: Basics of C
·
What is a Program and what is a
Programming Language?
·
C Language
o
History of C
o
Salient Features of C
·
Structure of a C Program
o
A Simple C Program
·
Writing a C Program
·
Compiling a C Program
o
The C Compiler
o
Syntax and Semantic Errors
·
Link and Run the C Program
o
Run the C Program through the Menu
o
Run from an Executable File
o
Linker Errors
o
Logical and Runtime Errors
·
Diagrammatic Representation of Program
Execution Process
Unit 3:
Variables and Constants
·
Character Set
·
Identifiers and Keywords
o
Rules for Forming Identifiers
o
Keywords
·
Data Types and Storage
·
Data Type Qualifiers
·
Variables
·
Declaring Variables
·
Initialising Variables
·
Constants
o
Integer Constants
o
Floating Point Constants
o
Character Constants
o
String Constants
o
Symbolic Constants
Unit 4:
Expressions and Operators
·
Assignment Statements
·
Arithmetic Operators
·
Relational Operators
·
Logical Operators
·
Comma and Conditional Operators
·
Type Cast Operator
·
Size of Operator
·
C Shorthand
·
Priority of Operators
BLOCK 2: Control Statements, Arrays
and Functions
Unit 5:
Decision and Loop Control Statements
·
Decision Control Statements
o
The if Statement
o
The switch Statement
·
Loop Control Statements
o
The while Loop
o
The do-while
Statement
o
The for Loop
o
The Nested Loop
·
The Goto Statement
·
The Break Statement
·
The Continue
Statement
Unit 6:
Arrays
·
Array Declaration
o
Syntax of Array Declaration
o
Size Specification
·
Array Initialization
o
Initialization of Array Elements in the Declaration
o
Character Array Initialization
·
Subscript
·
Processing the Arrays
·
Multi-Dimensional Arrays
o
Multi-Dimensional Array Declaration
o
Initialization of Two-Dimensional Arrays
Unit 7: Strings
·
Declaration and Initialization of
Strings
·
Display of
Strings Using Different Formatting Techniques
·
Array of Strings
·
Built-in String Functions and Applications
o
Strlen Function
o
Strcpy Function
o
Strcmp Function
o
Strcat Function
o
Strlwr Function
o
Strrev Function
o
Strspn Function
·
Other String
Functions
Unit 8:
Functions
·
Definition of a Function
·
Declaration of a Function
·
Function Prototypes
·
The Return Statement
·
Types of Variables and Storage Classes
o
Automatic Variables
o
External Variables
o
Static Variables
o
Register Variables
·
Types of Function Invoking
·
Call by Value
·
Recursion
BLOCK 3:
Structures, Pointers and File
Handling
Unit 9: Structures
and Unions
·
Declaration of Structures
·
Accessing the Members of a Structure
·
Initializing Structures
·
Structures as Function Arguments
·
Structures and Arrays
·
Unions
·
Initializing an Union
·
Accessing the Members of an Union
Unit 10: Pointers
·
Pointers and their Characteristics
·
Address and Indirection Operators
·
Pointer Type Declaration and Assignment
o
Pointer to a Pointer
o
Null Pointer Assignment
·
Pointer Arithmetic
·
Passing Pointers to Functions
o
A Function Returning More than One Value
o
Function Returning a Pointer
·
Arrays and Pointers
·
Array of
Pointers
·
Pointers and Strings
Unit 11: The C Preprocessor
·
# define to Implement Constants
·
# define to Create Functional Macros
·
Reading from Other
Files using # include
·
Conditional Selection
of Code using #ifdef
o
Using #ifdef
for different computer types
o
Using #ifdef
to temporarily remove program statements
·
Other Preprocessor
Commands
·
Predefined Names Defined
by Preprocessor
·
Macros Vs Functions
Unit 12:
Files
·
File Handling in C Using File Pointers
o
Open a file using the function fopen
( )
o
Close a file using the function
fclose( )
·
Input and Output using file pointers
o
Character Input and Output in Files
o
String Input / Output Functions
o
Formatted Input / Output Functions
o
Block Input / Output Functions
·
Sequential Vs Random Access Files
·
Positioning the File Pointer
·
The Unbufferred I/O - The UNIX like
File Routines