Syllabus
1. Introduction to Programming (MATLAB)
a. Data Types
• Basic Data Types (Numbers, Characters)
• Data Structures (Arrays, Strings, Structures)
b. Imperative Programming
• Program Control
• Sequential, Conditional and Repeated Execution
• Functions
• Nested and Recursive Functions
• Input-Output
• Operation Systems and File Types
• Text Files (Reading from / Writing to)
• Basic Text Processing
• Graphs and Images
2. Algorithms
a. Search in Arrays
• Sequential vs. Bipartite
b. Sorting algorithms
• Bubble, Insertion, Quick and Merge Sort
• Correctness and Complexity
c. Simulation
• Random Variables and Processes
• Automata (State and Transitions)
d. Graph Properties and Algorithms
• Polynomial:
• Minimum Spanning Trees (Prim)
• Shortest Distances (Floyd-Wrashall)
• Nondeterministic
• Graph Colouring
• Hamiltonian Circuit
• Correctness and Complexity
3. Introduction to Databases
a. Relational Databases
• History and Applications
b. Modelling and Design
• Entities, Attributes and Keys
• Entity-Relational Model
• Relational Algebra (Brief Introduction)
c. Normalisation
• Functional Dependencies
• Closures
• Normal Forms
d. Querying Relational Databases
• SQL - Structured Query Language (DDL and DML)
• Queries - Joins, Aggregation Functions, Views
• Consistency; Triggers