Syllabus

 1. Introduction to Programming (PYTHON)
    a. Data Types
        • Basic Data Types (Numbers, Characters)
        • Data Structures (Arrays, Strings, Dictionaries)
    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
      • Simple simulation examples (TSP)
   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