1. Numerical Approximation

This experiment demonstrates the idea that one can attain a perfect solution in the limit by suucessively computing approximations to the exact value. The intent behind this experiment is to make use of ideas laerned in the previous experiments. This is intended to introduce the student to numerical methods.

Objectives of this experiments are :
1. To understand that for some problems an approximate numerial solution is as good as the exact solution for practical purposes.

Prerequisite :

2. Functions

Functions enable modular decomposition of large programs. They allow reuse and improve readability and maintainability of programs. When constructed properly, functions also enable reasoning about their properties. A function typically receives arguments and returns a value. This experiment shows function definition and invocation within a program.

Objectives of this experiments are :
1. To understand that a big program can be broken up into independent modules.
2. To learn to define functions and call them with appropriate parameters.

Prerequisite :

3. Advanced Control Flow

This experiment shows the execution of programs that use for loops and while loops. It includes programs with nested for loops to illustrate complex control flow within the program. The student will be able to visually comprehend the flow control.

Objectives of this experiments are :
1. To learn how decision making is done while programming.
2. To learn about the various advanced constructs used for control flow.

Prerequisite :

4. Arrays

Arrays are used to store multiple data of same type. There are the most efficient means to store sequential collection of values. Programs use loops to process data stored in arrays. This experiment demonstrates steps involved in defining arrays, initializing them and processing the data contained in the arrays.

Objectives of this experiments are :
1. To learn how to use arrays for storing large amount of data.
2. To learn how to use array to create a common reference for a large number of variables.

Prerequisite :

5. Structures

Structures are used to represent records - a logical group of related items. Individual items in a structure are usually of different data types. Programming languages provide unique syntactic constructs to access fields of a record. This experiment demonstrates the use of structures within a program.

Objectives of this experiments are :
1. To understand how to use structures as a compund datatype.
2. To be able to design structures according to your requirement.

Prerequisite :

6. Basic Control Flow

Computer programs employ control structures such as conditional statements, multi-way branches and iteration. This experiment allows the student to execute programs that use if-then-else statements and switch-case statements. The execution of a program is animated and the intermediate results are displayed in seperate output sections for better comprehension.

Objectives of this experiments are :
1. To learn how decision making is done while programming.
2. To learn about the various simple constructs used for control flow.

Prerequisite :

7. Strings

Strings in the C programming language are represented by a sequence of characters terminated by an ASCII zero ('\0') charcter. Strings are processed using a charcter pointer that traverses the string from one end to the other. The ANSI C standard defines a standard string library containing useful functions. This experiment demonstrates the use of these functions.

Objectives of this experiments are :
1. To understand the concept of strings and how they are a special type of character arrays.
2. To understand the usage of string libraries to do common string operations.

Prerequisite :

8. Pointers

A pointer data type represnts addresses in program address space. In the C programming language, pointers are used for efficiency and for causing side-effects. They are also used for dynamic memory management within programs. This experiment demonstrates such uses of pointers in C programs.

Objectives of this experiments are :
1. To understand the concept of memory adddress associated with every variable.
2. To understand pointer referencing and dereferencing.

Prerequisite :

9. Recursion

Many data structures are self-similar at different levels. Many operations over such data are naturally expressed as operations that repetitively process diminishing parts of such data. In many cases, ieration can be naturally viwed as a function that reflexively applies itself on the data. This experiment is intended to demonstrate the use of recursion in programs.

Objectives of this experiments are :
1. To understand that some problems can be broken down into smaller similar problems.
2. To solve such problems using recursive procedures.

Prerequisite :

10. Expression Evaluation

This experiment demostrates the automatic evaluation of expressions involving arithmetic and logical operators. Input expressions may be arbitrarily nested. The evaluation employs a stack to handle operator precedence and nesting. The evaluation steps are simple animation.

Objectives of this experiments are :
1. To learn about different types of operators
2. To learn about the precedence of the operators.

Prerequisite :