Course Outline with sample applications/exercises:
- Introduction to computer terminology: architectures and components, programming languages, editors, and compilers. Installation of IDE. Using python interface as a calculator; Data types, basics of strings, assigning and printing variables, formatted output, scientific notation, built-in functions, importing modules, plotting mathematical functions like sin x, tan x, exp(x). Converting formulas into programming statements; sample applications: examples of conversion of units, calculating distances, areas and volumes, the roots of a quadratic equation.
- Simple examples of defining custom functions; returning multiple values, passing functions as arguments. Sample applications: plotting custom functions, functions to calculate roots of a quadratic equations, functions to covert units, etc.
- Conditionals and Branching and Looping: Programs to illustrate logical expressions, conditional evaluation of functions in different domains, multiway branching; Iterations: while and for loops.
- Arrays and list: Arrays, Lists, tuples, sets, dictionaries, mutable and immutable objects, operations on lists, formatted printing of arrays.
Repetitive operations using looping tools.
Scientific computing applications: calculations on sequences and series, recursion relations: calculating summation of power series of functions: sample applications: approximations for infinite series for trigonometric, exponential and logarithmic functions, average or mean value of a data set, variance, and standard deviation; Taylor series approximations; Generating data sets from functions and plotting. - Plotting simple functions using matplotlib. Basic file operations; Coding style and commenting the code for readability; testing and debugging the code with print statements.
- Sample comprehensive example/project for programming tools, algorithm development, and mathematical computing concepts: generating data sets from functions, plotting the functions, determine local and global minima of narrowly spaced data points.