| CS13002 Programming and Data Structures | Spring semester | 
Contents
- IntroductionWhat is a digital computer?
The basic components of a digital computer.
How does a program run in a computer?
Why need one program?
How can one program?
Your first C programs
- Variables and simple data typesBasic data types
Constants
Variables
Typecasting
Representation of numbers in memory
Introduction to arrays
- AssignmentsAssignments and imperative programming
Built-in operators
- Input/OutputStandard input/output
File input/output
String input/output
Formatted input/output
- Conditions and branchingLogical conditions
The if statement
The if-else statement
Nested if statements
Multi-way branching
- Loops and iterationMathematical induction
Recursive definitions
Loops
Loop invariants
Nested loops
Flow control inside loops
- Exercise set I
- Functions and recursionTranslating mathematical functions in C
Function prototypes
Built-in libraries
Passing parameters
Recursive functions
Recursion or iteration?
- ArraysPassing arrays to functions
Strings
Arrays and pointers
Multi-dimensional arrays
- Exercise set II
- StructuresDefining structures
Passing structures to functions
Structures with self-referencing pointers
Unions
- Pointers and dynamic memory managementOne-dimensional dynamic memory
Two-dimensional dynamic memory
- Exercise set III
- Abstract data typesWhat is an abstract data type?
How to implement an abstract data type?
A complete example : the ordered list ADT
- Stacks and queuesThe stack ADT and its applications
Implementations of the stack ADT
The queue ADT and its applications
Implementations of the queue ADT
- Exercise set IV
- Performance analysis of programsResource usage of a program
The order notation
Worst-case versus average complexity
How to compute the complexity of a program?
- Exercise set V
Animation examples