DiplomaIntermediate

DCS - Diploma in Computer Science

Programming logic, data structures, SQL databases, computing concepts, testing and an application project.

Talk to a counsellor about DCS - Diploma in Computer Science

Fees, batch dates and timings are shared by a counsellor. No payment is needed to ask.

What you will cover
  • Programming logic
  • data structures
  • SQL databases
  • computing concepts
  • testing
  • an application project

Topic list from the institute's programme record.

Certification

Certificate terms for this programme are confirmed by the institute at admission. Any ADIVAS course-completion certificate is an institute certificate; it is not a university degree, an externally accredited qualification or a vendor certification (such as AWS or Microsoft) unless the institute states so in writing.

The programme title is as supplied in the institute's list. Please confirm the awarding body and recognition with the institute before enrolling.

Curriculum 0.1 · Draft: written for ADIVAS and awaiting academic review and approval. Topics and weeks may change before your batch starts.

Your skill trail

You move through 8 stations. Each week builds one skill you can show, not just a topic you have heard.

  1. Computing foundations

    Understand how computers represent data, think in algorithms and write the first Python programs.

    • Week 1 How a computer works
    • Week 2 Algorithms and problem decomposition
    • Week 3 Python setup, variables and input
    • Week 4 Decisions and loops
  2. Programming fundamentals

    Write structured, tested Python with functions, collections, files, exceptions, Git and objects.

    • Week 5 Functions
    • Week 6 Strings and text processing
    • Week 7 Lists and tuples
    • Week 8 Dictionaries and sets
    • Week 9 Files and exceptions
    • Week 10 Command line, Git and debugging
    • Week 11 Object-oriented programming I
    • Week 12 Object-oriented programming II and mini project
  3. Data structures

    Implement and compare the core data structures and understand their costs.

    • Week 13 Complexity and measuring performance
    • Week 14 Arrays and dynamic arrays
    • Week 15 Linked lists
    • Week 16 Stacks
    • Week 17 Queues and deques
    • Week 18 Recursion
    • Week 19 Hash tables
    • Week 20 Binary trees and binary search trees
    • Week 21 Heaps and priority queues
    • Week 22 Graphs and traversals
  4. Algorithms

    Apply searching, sorting, greedy and dynamic programming techniques to practical problems.

    • Week 23 Searching techniques
    • Week 24 Elementary sorting
    • Week 25 Merge sort and quick sort
    • Week 26 Greedy algorithms
    • Week 27 Dynamic programming introduction
    • Week 28 Problem-solving workshop and mid-course assessment
  5. Databases and SQL

    Design relational schemas and use SQL from the command line and from Python.

    • Week 29 Data, databases and the relational model
    • Week 30 SQL basics: creating and changing data
    • Week 31 Querying: filtering, sorting and aggregates
    • Week 32 Joins and subqueries
    • Week 33 Database design and normalisation
    • Week 34 Indexes and transactions
    • Week 35 Databases from Python and SQL safety
  6. Computing concepts

    Understand operating systems, networks, the web and security at concept level.

    • Week 36 Operating systems: processes and scheduling
    • Week 37 Memory and file systems
    • Week 38 Computer networks
    • Week 39 The web: HTTP, clients and servers
    • Week 40 Security fundamentals
  7. Software engineering and testing

    Test, design and review software and build a small web service with reviewed AI assistance.

    • Week 41 Software testing
    • Week 42 Requirements and design
    • Week 43 Building a small web service
    • Week 44 Code review and responsible AI-assisted development
  8. Application project

    Plan, build, test and present a complete database-backed application.

    • Week 45 Project: proposal and design
    • Week 46 Project: build core features
    • Week 47 Project: testing and hardening
    • Week 48 Project: presentation and review
  9. Neighbourhood Library or Shop Management System

    Your project, reviewed by a trainer.

The ADIVAS mastery ladder: how each skill is recognised
  1. Explored You have seen the idea and tried a first example.
  2. Practising You can do it with hints and keep improving.
  3. Proficient You complete the weekly practical task correctly on your own.
  4. Proven You apply it in a project reviewed by your trainer.

Skill-level tracking is being added to the learner workspace. Your trainer already reviews weekly practical work.

What you will be able to do

  • Explain how a computer represents and processes data, and express solutions as algorithms before coding.
  • Write Python programs using conditions, loops, functions and structured problem decomposition.
  • Process text, lists, dictionaries and files, and handle errors with exceptions.
  • Design classes and objects with encapsulation, inheritance and polymorphism.
  • Use the command line and Git, and debug programs systematically.
  • Implement arrays, linked lists, stacks, queues, hash tables, trees, heaps and graphs, and compare their costs.
  • Apply searching, sorting, recursion, greedy and dynamic programming techniques and estimate running time.
  • Design normalised relational schemas and write SQL for CRUD, joins, aggregates, indexes and transactions.
  • Explain at concept level how operating systems, networks, the web and basic security work.
  • Write unit tests, derive test cases, review code, and use AI assistants with careful verification.
  • Plan, build, test and present a database-backed application as a project.

Who it suits

  • School Class 11-12 students who want a thorough, practical computer science foundation beyond the school syllabus.
  • College Diploma and degree students who want strong programming, data structure and database skills and clear concepts behind them.
  • Professional Working adults and career changers who want a systematic computer science grounding over one year.

Prerequisites: Comfort with basic computer use and school mathematics. No prior programming is required; the course starts from the beginning. Tools: Python 3 with pip and venv, VS Code or PyCharm Community Edition, SQLite and MySQL Community Server with a SQL client, Git and a free code hosting account, A Linux or macOS terminal, or WSL on Windows, pytest, Flask (for the web application weeks), An AI coding assistant (with review rules taught in the course).

Weekly plan

Computing foundations Weeks 1–4

Week 1: How a computer works

Theory
  • Hardware, software and the fetch-execute idea
  • Binary numbers and text encoding (ASCII and Unicode, including Tamil)
  • Memory, storage and units from bit to gigabyte
Lab
Convert numbers between decimal and binary by hand and with a calculator, and inspect a text file in a hex viewer to see how a Tamil letter and an English letter are stored.
Homework
Convert ten decimal numbers to binary and back, and explain why 8 GB of RAM is not the same as 8 GB of storage.
Deliverable
A one-page worksheet of conversions with a short note on Unicode.
Weekly checkpoint
Convert binary values, identify hardware roles and explain why text needs an encoding.
You will be able to
Explain how a computer represents and processes data, and express solutions as algorithms before coding.

Week 2: Algorithms and problem decomposition

Theory
  • What an algorithm is and how to write pseudocode
  • Flowcharts and tracing with sample data
  • Breaking a big problem into smaller steps
Lab
Write pseudocode and a flowchart for three problems (largest of three, bill with discount, ATM withdrawal limits) and trace each with two sample inputs.
Homework
Write pseudocode for sorting five numbers by hand, and trace it.
Deliverable
Pseudocode and flowcharts for three problems with trace tables.
Weekly checkpoint
Trace a given algorithm; arrange the steps of an algorithm in order.
You will be able to
Explain how a computer represents and processes data, and express solutions as algorithms before coding.

Week 3: Python setup, variables and input

Theory
  • Installing Python, running scripts and the REPL
  • Variables, int, float, str and bool
  • input(), print(), f-strings and type conversion
Lab
Write a GST bill calculator, a simple interest calculator and a temperature converter; read inputs, convert types and format output to two decimals.
Homework
Write a program that splits a bill equally among friends and prints each share.
Deliverable
Three Python scripts with sample runs.
Weekly checkpoint
Predict outputs involving integer and float division and string concatenation.
You will be able to
Write Python programs using conditions, loops, functions and structured problem decomposition.

Week 4: Decisions and loops

Theory
  • if, elif, else and Boolean logic
  • for and while loops, range, break and continue
  • Nested loops and pattern problems
Lab
Write programs for grade assignment, leap year, a multiplication table, digit sum and a pyramid pattern.
Homework
Write a guess-the-number game with a limit of five attempts.
Deliverable
A set of five loop and decision programs with test inputs.
Weekly checkpoint
Trace a nested loop; fix an off-by-one error in a loop.
You will be able to
Write Python programs using conditions, loops, functions and structured problem decomposition.
Programming fundamentals Weeks 5–12

Week 5: Functions

Theory
  • Defining functions, parameters and return values
  • Scope, default and keyword arguments
  • Writing small reusable functions and docstrings
Lab
Refactor the earlier bill and loop programs into functions and write functions for prime check, gcd and factorial.
Homework
Write a function library file and import it from another script.
Deliverable
A utilities module with at least eight documented functions.
Weekly checkpoint
Predict outputs of function calls with default arguments and variable scope.
You will be able to
Write Python programs using conditions, loops, functions and structured problem decomposition.

Week 6: Strings and text processing

Theory
  • Indexing, slicing and immutability
  • Common string methods: split, join, strip, replace, find
  • Simple validation and text cleaning
Lab
Write a palindrome checker, word counter, vowel counter and a validator for Indian mobile numbers and PIN codes.
Homework
Write a function that converts a name to initials and another that masks the middle digits of a phone number.
Deliverable
A text toolkit with tests for each function.
Weekly checkpoint
Predict outputs of slices and split/join; find a bug in a validator.
You will be able to
Process text, lists, dictionaries and files, and handle errors with exceptions.

Week 7: Lists and tuples

Theory
  • List creation, indexing, append, insert, remove
  • Iteration, sorting and list comprehensions
  • Tuples, unpacking and list aliasing versus copying
Lab
Analyse a list of 20 exam marks: total, average, highest, rank list and count above average.
Homework
Rotate a list by k positions and remove duplicates while keeping order.
Deliverable
A marks-analysis script using list operations.
Weekly checkpoint
Predict list outputs, including aliasing with b = a.
You will be able to
Process text, lists, dictionaries and files, and handle errors with exceptions.

Week 8: Dictionaries and sets

Theory
  • Key-value pairs and dictionary methods
  • Sets for uniqueness and membership
  • Counting and grouping patterns
Lab
Count word frequency in a paragraph, group transactions by category and find common and unique items between two class lists using sets.
Homework
Build a phone-book program with add, search, update and delete.
Deliverable
A phone-book program and a word-frequency report.
Weekly checkpoint
Choose a list, dictionary or set for scenarios; predict a counting loop's output.
You will be able to
Process text, lists, dictionaries and files, and handle errors with exceptions.

Week 9: Files and exceptions

Theory
  • Reading and writing text and CSV files with with-blocks
  • try, except, finally and raising errors
  • JSON for saving structured data
Lab
Make the phone book persistent with JSON, and read a CSV of sales while handling missing or malformed rows gracefully.
Homework
Add a log file that records each error with a timestamp.
Deliverable
A persistent application with error handling and a log.
Weekly checkpoint
Order try/except/finally output; fix code that crashes on a missing file.
You will be able to
Process text, lists, dictionaries and files, and handle errors with exceptions.

Week 10: Command line, Git and debugging

Theory
  • Terminal navigation, files and pipes
  • Git: init, add, commit, branch, merge and remote
  • Debugging method: reproduce, isolate, fix, verify; IDE debugger and print tracing
Lab
Create a repository for the course, commit weekly work on branches, resolve a deliberate merge conflict and debug a provided program with three seeded bugs.
Homework
Write a bug report for each bug found: symptom, cause, fix and evidence.
Deliverable
A repository with a clean history and a bug log.
Weekly checkpoint
Sequence a branch and merge workflow; locate a bug from a traceback.
You will be able to
Use the command line and Git, and debug programs systematically.

Week 11: Object-oriented programming I

Theory
  • Classes, objects, attributes and methods
  • __init__, __str__ and encapsulation by convention
  • Modelling real things: students, accounts, products
Lab
Model a BankAccount and a Student class with validation, and write a small program that manages a list of objects.
Homework
Add a class for Library Book with issue and return and a fine rule.
Deliverable
Two modelled classes with a demo script.
Weekly checkpoint
Read a class and predict output; identify attributes and methods in a design.
You will be able to
Design classes and objects with encapsulation, inheritance and polymorphism.

Week 12: Object-oriented programming II and mini project

Theory
  • Inheritance, overriding and super()
  • Polymorphism and composition
  • Structuring a small multi-file project
Lab
Build an inventory manager with Product, PerishableProduct and Inventory classes, file persistence and a menu.
Homework
Write a README and a short design note with a class diagram.
Deliverable
Mini project 1: a menu-driven inventory manager.
Weekly checkpoint
Practical: extend the inventory manager with one new feature in 45 minutes.
You will be able to
Design classes and objects with encapsulation, inheritance and polymorphism. Use the command line and Git, and debug programs systematically.
Data structures Weeks 13–22

Week 13: Complexity and measuring performance

Theory
  • Counting operations and growth of functions
  • Big-O intuition: constant, log, linear, n log n, quadratic
  • Measuring with the time module and why measurements vary
Lab
Time three ways to check for duplicates in lists of 1000 to 20000 items and fit the results to O(n) or O(n^2).
Homework
State the complexity of ten short code fragments with a reason for each.
Deliverable
A timing table and a short analysis.
Weekly checkpoint
Classify code fragments by complexity.
You will be able to
Implement arrays, linked lists, stacks, queues, hash tables, trees, heaps and graphs, and compare their costs. Apply searching, sorting, recursion, greedy and dynamic programming techniques and estimate running time.

Week 14: Arrays and dynamic arrays

Theory
  • Contiguous memory and indexing cost
  • Dynamic arrays and amortised append
  • Two-pointer and prefix-sum techniques
Lab
Implement a dynamic array class with resize and use two pointers and prefix sums to solve pair-sum and range-sum problems.
Homework
Solve five array problems and state each solution's complexity.
Deliverable
A dynamic array class with tests plus solved problems.
Weekly checkpoint
Explain why append is usually cheap but sometimes expensive.
You will be able to
Implement arrays, linked lists, stacks, queues, hash tables, trees, heaps and graphs, and compare their costs.

Week 15: Linked lists

Theory
  • Nodes and references
  • Singly linked list insert, delete and traversal
  • Array versus linked list trade-offs
Lab
Implement a linked list with append, prepend, delete and reverse, and write tests for empty, one-element and many-element lists.
Homework
Detect a cycle in a linked list and find its middle node.
Deliverable
A tested linked list implementation.
Weekly checkpoint
Trace deletion of a middle node; choose array or list for a scenario.
You will be able to
Implement arrays, linked lists, stacks, queues, hash tables, trees, heaps and graphs, and compare their costs.

Week 16: Stacks

Theory
  • Last-in first-out and its operations
  • Implementing with list and with a linked list
  • Applications: bracket matching, undo and expression evaluation
Lab
Build a stack, write a balanced bracket checker and evaluate postfix expressions.
Homework
Convert an infix expression to postfix by hand and by program.
Deliverable
A stack module with a bracket checker and a postfix evaluator.
Weekly checkpoint
Trace stack contents during postfix evaluation.
You will be able to
Implement arrays, linked lists, stacks, queues, hash tables, trees, heaps and graphs, and compare their costs.

Week 17: Queues and deques

Theory
  • First-in first-out and circular buffers
  • collections.deque and why list.pop(0) is slow
  • Applications: scheduling, ticket queues and buffers
Lab
Implement a queue and simulate a ticket counter with arrival and service times, reporting average waiting time.
Homework
Implement a queue using two stacks.
Deliverable
A queue module and a counter simulation.
Weekly checkpoint
Choose stack or queue for scenarios; trace queue operations.
You will be able to
Implement arrays, linked lists, stacks, queues, hash tables, trees, heaps and graphs, and compare their costs.

Week 18: Recursion

Theory
  • Base case and recursive case
  • The call stack and stack overflow
  • Recursion versus iteration; memoisation idea
Lab
Write recursive factorial, Fibonacci, power, binary search and a directory-size calculator, and trace the call stack for two of them.
Homework
Fix three recursive functions with a missing or wrong base case.
Deliverable
A recursion workbook with call-stack drawings.
Weekly checkpoint
Trace a recursive call; find the bug in a recursive function.
You will be able to
Apply searching, sorting, recursion, greedy and dynamic programming techniques and estimate running time.

Week 19: Hash tables

Theory
  • Hash functions, buckets and collisions
  • Chaining and load factor
  • How Python dict and set use hashing; mutable keys
Lab
Implement a hash table with chaining and compare lookup times against a list for 100000 student IDs.
Homework
Solve two-sum and first non-repeating character using a dictionary.
Deliverable
A hash table implementation and a timing comparison.
Weekly checkpoint
Explain a collision; predict where keys land in a small table.
You will be able to
Implement arrays, linked lists, stacks, queues, hash tables, trees, heaps and graphs, and compare their costs.

Week 20: Binary trees and binary search trees

Theory
  • Tree terms: root, leaf, height
  • Traversals: in-order, pre-order, post-order
  • BST insert, search and delete; balance problem
Lab
Build a BST for student IDs with insert, search and in-order listing, and measure height after sorted versus random insertion.
Homework
Compute tree height and count leaves recursively.
Deliverable
A BST class with tests and a height experiment.
Weekly checkpoint
Insert values by hand and list traversals; explain why sorted input hurts a plain BST.
You will be able to
Implement arrays, linked lists, stacks, queues, hash tables, trees, heaps and graphs, and compare their costs.

Week 21: Heaps and priority queues

Theory
  • Heap property and array representation
  • Insert and extract with heapify
  • heapq and priority queue use cases such as emergency triage
Lab
Implement a min-heap, then use heapq to run a hospital-style triage queue and to find the k largest items in a list.
Homework
Explain why heap sort is O(n log n).
Deliverable
A heap implementation and a triage simulation.
Weekly checkpoint
Show heap contents after insertions; choose a heap for a scenario.
You will be able to
Implement arrays, linked lists, stacks, queues, hash tables, trees, heaps and graphs, and compare their costs.

Week 22: Graphs and traversals

Theory
  • Vertices, edges and adjacency lists
  • Breadth-first and depth-first search
  • Shortest path in an unweighted graph and connected components
Lab
Model a bus-route map of Madurai as a graph and find the route with the fewest stops with BFS, then count connected areas with DFS.
Homework
Detect whether a graph has a cycle.
Deliverable
A route finder with a drawn graph.
Weekly checkpoint
Trace BFS on a given graph; choose BFS or DFS for a task.
You will be able to
Implement arrays, linked lists, stacks, queues, hash tables, trees, heaps and graphs, and compare their costs. Apply searching, sorting, recursion, greedy and dynamic programming techniques and estimate running time.
Algorithms Weeks 23–28

Week 23: Searching techniques

Theory
  • Linear search and binary search with preconditions
  • Search on answers and boundary conditions
  • Counting comparisons
Lab
Implement binary search iteratively and recursively, test on edge cases and count comparisons for 1000000 items.
Homework
Find the first and last position of a value in a sorted list with duplicates.
Deliverable
Search functions with a boundary test table.
Weekly checkpoint
Find the bug in a binary search with an incorrect loop condition.
You will be able to
Apply searching, sorting, recursion, greedy and dynamic programming techniques and estimate running time.

Week 24: Elementary sorting

Theory
  • Bubble, selection and insertion sort
  • Stability and in-place sorting
  • When simple sorts are acceptable
Lab
Implement three sorts, count comparisons and swaps on random, sorted and reverse-sorted data, and tabulate the results.
Homework
Sort a list of students by marks and then by name stably.
Deliverable
A comparison report of three sorts.
Weekly checkpoint
Trace one pass of each sort; identify which sorts are stable.
You will be able to
Apply searching, sorting, recursion, greedy and dynamic programming techniques and estimate running time.

Week 25: Merge sort and quick sort

Theory
  • Divide and conquer
  • Merge sort and its n log n bound
  • Quick sort, pivot choice and worst case
Lab
Implement merge sort and quick sort and compare them with Python's built-in sort for sizes up to 200000.
Homework
Explain in writing why quick sort can degrade to quadratic time.
Deliverable
Sorting implementations with a benchmark chart.
Weekly checkpoint
Trace a merge on two sorted lists; explain pivot effect.
You will be able to
Apply searching, sorting, recursion, greedy and dynamic programming techniques and estimate running time.

Week 26: Greedy algorithms

Theory
  • Greedy choice idea and when it works
  • Activity selection and coin change with Indian denominations
  • Counterexamples
Lab
Solve activity selection for a seminar hall booking problem, write coin change greedy and find a coin system where greedy fails.
Homework
Explain why greedy works for activity selection but not for every coin system.
Deliverable
Greedy solutions with a counterexample note.
Weekly checkpoint
Decide whether greedy is valid for three problems.
You will be able to
Apply searching, sorting, recursion, greedy and dynamic programming techniques and estimate running time.

Week 27: Dynamic programming introduction

Theory
  • Overlapping subproblems and memoisation
  • Bottom-up tables
  • Examples: Fibonacci, climbing stairs, 0/1 knapsack, longest common subsequence
Lab
Compare naive and memoised Fibonacci run times, then solve knapsack for a shopkeeper's weight-limited carry plan with a table.
Homework
Solve a minimum coin change problem with a table.
Deliverable
DP solutions with filled tables and run-time comparison.
Weekly checkpoint
Fill a small DP table by hand; spot overlapping subproblems.
You will be able to
Apply searching, sorting, recursion, greedy and dynamic programming techniques and estimate running time.

Week 28: Problem-solving workshop and mid-course assessment

Theory
  • Strategy for unfamiliar problems: restate, examples, brute force, improve
  • Choosing structures and algorithms together
  • Reading and writing time-limited solutions
Lab
Solve a set of eight mixed problems in a timed session and then review each solution's complexity and edge cases in pairs.
Homework
Rewrite two weakest solutions after feedback.
Deliverable
Annotated solutions with complexity statements.
Weekly checkpoint
Mid-course written and practical assessment.
You will be able to
Implement arrays, linked lists, stacks, queues, hash tables, trees, heaps and graphs, and compare their costs. Apply searching, sorting, recursion, greedy and dynamic programming techniques and estimate running time.
Databases and SQL Weeks 29–35

Week 29: Data, databases and the relational model

Theory
  • Files versus databases
  • Tables, rows, columns, keys and data types
  • SQLite and MySQL: where each is used
Lab
Set up SQLite and MySQL, create a school database and explore tables with a SQL client.
Homework
Identify entities and attributes for a clinic and list candidate primary keys.
Deliverable
A first database with two tables and sample rows.
Weekly checkpoint
Identify keys and data types for a given table.
You will be able to
Design normalised relational schemas and write SQL for CRUD, joins, aggregates, indexes and transactions.

Week 30: SQL basics: creating and changing data

Theory
  • CREATE TABLE and constraints
  • INSERT, UPDATE and DELETE
  • Why WHERE matters in updates and deletes
Lab
Create tables for students, courses and marks with constraints and practise insert, update and delete with safe WHERE clauses.
Homework
Write statements that fail on purpose to see each constraint working.
Deliverable
A SQL script creating and populating the school database.
Weekly checkpoint
Find the flaw in an UPDATE missing a WHERE clause.
You will be able to
Design normalised relational schemas and write SQL for CRUD, joins, aggregates, indexes and transactions.

Week 31: Querying: filtering, sorting and aggregates

Theory
  • SELECT, WHERE, ORDER BY, LIMIT and LIKE
  • COUNT, SUM, AVG, MIN, MAX
  • GROUP BY and HAVING; NULL handling
Lab
Write 15 queries on the marks data: toppers, class averages, subject-wise counts and students without marks.
Homework
Write queries answering five management questions in plain English first.
Deliverable
A query workbook with expected results.
Weekly checkpoint
Predict query output; choose WHERE or HAVING.
You will be able to
Design normalised relational schemas and write SQL for CRUD, joins, aggregates, indexes and transactions.

Week 32: Joins and subqueries

Theory
  • INNER, LEFT joins and join conditions
  • Subqueries and EXISTS
  • Why a bad join duplicates rows
Lab
Join students, courses and marks to build a report card query, find students with no enrolment and verify row counts by hand on small data.
Homework
Rewrite one subquery as a join and compare results.
Deliverable
Report-card and exception queries with verified results.
Weekly checkpoint
Predict the row count of INNER and LEFT joins on small tables.
You will be able to
Design normalised relational schemas and write SQL for CRUD, joins, aggregates, indexes and transactions.

Week 33: Database design and normalisation

Theory
  • Entity-relationship diagrams
  • One-to-many and many-to-many with junction tables
  • Anomalies and 1NF, 2NF, 3NF
Lab
Take a single wide order sheet, find its anomalies, normalise it into four tables and draw the ER diagram.
Homework
Design a schema for a bus ticket booking system.
Deliverable
ER diagram and DDL for the normalised design.
Weekly checkpoint
Identify the normal form violated in a table.
You will be able to
Design normalised relational schemas and write SQL for CRUD, joins, aggregates, indexes and transactions.

Week 34: Indexes and transactions

Theory
  • How an index speeds queries and its cost
  • Transactions, commit, rollback and ACID idea
  • Query plans with EXPLAIN
Lab
Time a query on 200000 rows with and without an index, and run a money-transfer transaction that rolls back after an error.
Homework
Pick which columns to index for a given workload and justify it.
Deliverable
A performance and transaction report.
Weekly checkpoint
Explain why a transfer needs a transaction.
You will be able to
Design normalised relational schemas and write SQL for CRUD, joins, aggregates, indexes and transactions.

Week 35: Databases from Python and SQL safety

Theory
  • sqlite3 and a MySQL connector: connect, cursor, commit
  • Parameterised queries and SQL injection
  • Separating data-access code from application logic
Lab
Write a data-access module for the school database using parameterised queries and demonstrate then block an injection attempt.
Homework
Add search and report functions to the module with tests.
Deliverable
A tested data-access module.
Weekly checkpoint
Rewrite an unsafe query safely.
You will be able to
Design normalised relational schemas and write SQL for CRUD, joins, aggregates, indexes and transactions. Write unit tests, derive test cases, review code, and use AI assistants with careful verification.
Computing concepts Weeks 36–40

Week 36: Operating systems: processes and scheduling

Theory
  • What an operating system does
  • Processes, threads and context switching
  • CPU scheduling: first-come first-served and round robin
Lab
Observe processes with the task manager and ps or top, then simulate round-robin scheduling in Python for five jobs and compute average waiting time.
Homework
Compare FCFS and round robin on the same job list.
Deliverable
A scheduling simulation and a comparison table.
Weekly checkpoint
Compute waiting times for a small scheduling example.
You will be able to
Explain at concept level how operating systems, networks, the web and basic security work.

Week 37: Memory and file systems

Theory
  • Virtual memory, paging and why swapping slows a machine
  • Files, directories, permissions and inodes at concept level
  • Deadlock idea with a simple example
Lab
Explore file permissions and a directory tree on Linux, change permissions with chmod and explain the results.
Homework
Explain a scenario of a slow computer with full memory in plain words.
Deliverable
A permissions exercise log and a one-page memory explainer.
Weekly checkpoint
Interpret a permission string; choose the likely cause of slowdown.
You will be able to
Explain at concept level how operating systems, networks, the web and basic security work.

Week 38: Computer networks

Theory
  • Layers: link, internet, transport, application
  • IP addresses, subnets idea, ports and DNS
  • TCP versus UDP at concept level
Lab
Use ping, traceroute and nslookup to inspect a path to a website, and draw the layers a web request passes through.
Homework
Explain the difference between an IP address and a domain name with an example.
Deliverable
A network trace report with a layer diagram.
Weekly checkpoint
Order the steps from typing a URL to seeing a page.
You will be able to
Explain at concept level how operating systems, networks, the web and basic security work.

Week 39: The web: HTTP, clients and servers

Theory
  • HTTP requests, methods, status codes and headers
  • Client-server model, cookies and sessions
  • APIs and JSON
Lab
Inspect requests in the browser's developer tools and call a public JSON API from Python with the requests library.
Homework
Write a script that fetches data from an API and prints a summary.
Deliverable
An API client script with sample output.
Weekly checkpoint
Match status codes to meanings; trace a login using cookies.
You will be able to
Explain at concept level how operating systems, networks, the web and basic security work.

Week 40: Security fundamentals

Theory
  • Passwords, salted hashing and why not to store plain text
  • HTTPS and certificates at concept level; phishing
  • Common web risks: injection and cross-site scripting
Lab
Hash passwords with a salt using the standard library, show why plain text storage is dangerous and review a small program for injection risks.
Homework
Write a checklist of ten security habits for a small business website.
Deliverable
A password-hashing script and a security checklist.
Weekly checkpoint
Choose safe password storage; spot an injection risk in code.
You will be able to
Explain at concept level how operating systems, networks, the web and basic security work.
Software engineering and testing Weeks 41–44

Week 41: Software testing

Theory
  • Unit, integration and acceptance tests
  • Test case design: normal, boundary and invalid inputs
  • pytest basics, fixtures and test-first thinking
Lab
Write twenty pytest tests for the data-access module and a business-rule function, including boundary and failure cases, and fix defects found.
Homework
Measure what your tests cover and list what remains untested.
Deliverable
A test suite with a short coverage note.
Weekly checkpoint
Design test cases for a given function; read a failing test.
You will be able to
Write unit tests, derive test cases, review code, and use AI assistants with careful verification.

Week 42: Requirements and design

Theory
  • User stories and acceptance criteria
  • Layered design and simple UML sketches
  • Estimating work and managing scope
Lab
Write user stories for a small shop or clinic application and draw its layers, data model and main screens or endpoints.
Homework
Rank stories into must-have and later features with reasons.
Deliverable
A requirements and design document.
Weekly checkpoint
Write acceptance criteria for a given story.
You will be able to
Write unit tests, derive test cases, review code, and use AI assistants with careful verification. Plan, build, test and present a database-backed application as a project.

Week 43: Building a small web service

Theory
  • Flask routes, request and response
  • JSON endpoints and input validation
  • Connecting a web layer to the data-access module
Lab
Build a Flask service exposing list, add and search endpoints over the database and test it with curl and pytest.
Homework
Return correct status codes for invalid input and missing records.
Deliverable
A working Flask service with tests.
Weekly checkpoint
Choose the right method and status code for operations.
You will be able to
Explain at concept level how operating systems, networks, the web and basic security work. Write unit tests, derive test cases, review code, and use AI assistants with careful verification.

Week 44: Code review and responsible AI-assisted development

Theory
  • Reviewing code: correctness, readability, security
  • Prompting with context and constraints
  • Verifying AI output: tests, documentation checks, licensing and privacy
Lab
Ask an AI assistant to write a reporting function, then review, test and correct it, logging each defect found.
Homework
Review a peer's code with five specific comments.
Deliverable
An AI review log and a peer review.
Weekly checkpoint
Given AI-written code, list defects and tests that would catch them.
You will be able to
Write unit tests, derive test cases, review code, and use AI assistants with careful verification.
Application project Weeks 45–48

Week 45: Project: proposal and design

Theory
  • Choosing a realistic scope
  • Schema, API and screen design review
  • Planning milestones and test strategy
Lab
Finalise the project proposal, schema and plan with the trainer and create the repository with an issue list.
Homework
Prepare the database script and a skeleton application.
Deliverable
Approved proposal, schema, plan and repository.
Weekly checkpoint
Proposal review with the trainer.
You will be able to
Plan, build, test and present a database-backed application as a project.

Week 46: Project: build core features

Theory
  • Implementing in small, tested increments
  • Keeping data access separate from logic
  • Using Git branches for features
Lab
Implement the core data model, data-access layer and first features with tests.
Homework
Complete one more feature and update the plan.
Deliverable
Working core features on a feature branch merged to main.
Weekly checkpoint
Progress demo with a test run.
You will be able to
Use the command line and Git, and debug programs systematically. Plan, build, test and present a database-backed application as a project.

Week 47: Project: testing and hardening

Theory
  • Edge cases, validation and error messages
  • Peer testing and bug triage
  • Security and performance checks
Lab
Swap projects with a peer, report five defects each, fix them and add tests so they stay fixed.
Homework
Write the README and user guide.
Deliverable
A tested, hardened application with a bug list closed.
Weekly checkpoint
Peer test report and fixes.
You will be able to
Write unit tests, derive test cases, review code, and use AI assistants with careful verification. Plan, build, test and present a database-backed application as a project.

Week 48: Project: presentation and review

Theory
  • Explaining design decisions
  • Demonstrating and answering questions
  • Reflecting and planning next learning
Lab
Final demo, code walkthrough and a viva where each learner modifies a function or query live.
Homework
Submit a tagged repository and a one-page reflection.
Deliverable
Tagged repository, README, schema diagram, test report and demo.
Weekly checkpoint
Final practical and viva.
You will be able to
Explain how a computer represents and processes data, and express solutions as algorithms before coding. Plan, build, test and present a database-backed application as a project.

Sample lessons

Week 18

Recursion and the call stack

A recursive function solves a problem by calling itself on a smaller version of the same problem. It needs a base case that stops the calls and a recursive case that moves toward that base case. Each call is stored on the call stack with its own variables, which is why too many calls cause a stack overflow. Drawing the calls on paper is the fastest way to understand and debug recursion.

  1. f(0) returns 0
  2. f(1) waits: 1 + f(0)
  3. f(2) waits: 2 + f(1)
  4. f(3) waits: 3 + f(2)
  5. f(4) called first
Calls pile up until the base case, then answers return one by one.

Step by step

  1. Write the problem as a smaller version of itself: factorial(n) = n * factorial(n-1).
  2. Write the base case first: factorial(0) is 1.
  3. Write the recursive case that calls the function with n - 1.
  4. Trace factorial(4) by drawing each call and the value it waits for.
  5. Run it, then try a negative number and observe the stack overflow error.

In real life

Your phone's file manager shows the total size of a folder by adding the sizes of its files and, for each sub-folder, repeating the same procedure inside it. That is recursion on a folder tree.

Worked example

Problem. What does f(4) return? def f(n): if n == 0: return 0 return n + f(n - 1)

Solution. f(4) = 4 + f(3) = 4 + 3 + f(2) = 4 + 3 + 2 + f(1) = 4 + 3 + 2 + 1 + f(0) = 10. The base case returns 0, then the pending additions are completed.

Common mistakes

  • Forgetting the base case, which leads to infinite recursion and a RecursionError.
  • Calling the function with a value that does not get closer to the base case.

Try it yourself

  • Write a recursive function that sums the digits of a number and trace it for 4821.
  • Explain why recursive Fibonacci(40) is slow and how memoisation helps.

Week 32

SQL joins: combining tables correctly

Related data is stored in separate tables to avoid repetition, and a join combines it again for a report. An INNER JOIN keeps only rows that have a match on both sides, while a LEFT JOIN keeps every row from the left table and fills the missing right side with NULL. Most join mistakes come from a wrong join condition or from forgetting that one-to-many relationships multiply rows, so you should always check a result on small data by hand.

StudentSubjectMarkKept by
AnuMaths80INNER and LEFT
RaviMaths70INNER and LEFT
SitaNULLNULLLEFT only

Step by step

  1. Identify the two tables and the matching columns, such as students.id and marks.student_id.
  2. Write SELECT with the columns you need from both tables.
  3. Add INNER JOIN ... ON students.id = marks.student_id and run it.
  4. Change to LEFT JOIN and notice students with no marks now appear with NULL.
  5. Count the rows you expect on paper and compare with the result.

In real life

A school office needs one report card showing student names with subject marks, while students who missed all exams still need to appear on the list so that follow-up can happen.

Worked example

Problem. students has 3 rows (Anu, Ravi, Sita). marks has 2 rows: (Anu, Maths, 80) and (Ravi, Maths, 70). How many rows do INNER JOIN and LEFT JOIN return?

Solution. INNER JOIN returns 2 rows (Anu and Ravi). LEFT JOIN returns 3 rows, because Sita is kept with NULL in the marks columns.

Common mistakes

  • Leaving out the ON condition, which produces every combination of rows.
  • Using INNER JOIN when unmatched rows must be shown, so missing students silently disappear.

Try it yourself

  • Write a query listing each course with the number of students enrolled, including courses with none.
  • Predict the row count when one student has three marks rows and you join with the students table.

Try the questions

The same skills are asked at three levels: School (Classes 6–12), College and Professional. Switch the level and the language (English or Tamil), and say how sure you are before you check: knowing what you are unsure about is part of learning.

Classes 6–12: everyday examples, no prior knowledge. Practice only. Nothing here is graded or saved.

Question 1 / 4 · Read a binary number

Computers store numbers using only 0 and 1. What is the binary number 101 in our usual decimal numbers?

Computers store numbers using only 0 and 1. What is the binary number 101 in our usual decimal numbers?
How sure are you?

Projects

Neighbourhood Library or Shop Management System

Build a database-backed Python application for a small library or shop in your locality. It must store data in a relational database, offer a console or Flask interface, include automated tests and show careful use of any AI assistance.

Tasks

  1. Interview a real or imagined user and write at least eight user stories with acceptance criteria.
  2. Design a normalised schema with at least four tables and an ER diagram.
  3. Write a data-access layer with parameterised queries and a service layer with business rules.
  4. Implement a console menu or Flask endpoints for add, search, update, delete and a report using a join and a GROUP BY.
  5. Write at least 25 tests covering normal, boundary and invalid cases.
  6. Maintain a Git history with feature branches and an AI review log.

Sample input

Issue book B105 to member M22 when M22 already holds the maximum of 3 books.

Expected output

The application refuses with the message 'Limit reached: return a book first', the database is unchanged and the matching test passes.

How it is assessed

CriterionWeight
Requirements and design quality15%
Schema and SQL20%
Code structure, correctness and error handling25%
Tests and debugging evidence20%
Git, AI review log and documentation10%
Demo and viva10%

Stretch challenge: Add password-protected staff login with salted hashes and an index backed by EXPLAIN evidence.

Algorithm Toolkit and Benchmark Report

Build a small Python package of data structures and algorithms from your own implementations and produce a benchmark report that compares them and explains the results with Big-O reasoning.

Tasks

  1. Implement a dynamic array, linked list, stack, queue, hash table and BST.
  2. Implement linear and binary search plus insertion, merge and quick sort.
  3. Write unit tests for each structure and algorithm including empty and single-element cases.
  4. Benchmark operations for several input sizes and plot or tabulate the results.
  5. Write a two-page report explaining which results match the expected complexity and which do not.

Sample input

Sort lists of 1000, 10000 and 100000 random integers with each sort and record the time.

Expected output

A table showing insertion sort growing roughly quadratically while merge and quick sort grow close to n log n.

How it is assessed

CriterionWeight
Correct implementations35%
Unit tests25%
Benchmark method and data20%
Report and complexity reasoning20%

Stretch challenge: Add a heap and a graph class with BFS and compare priority queue implementations.

How you are assessed

Each week ends with a 20 to 30 minute checkpoint of 5 to 6 questions: code reading, output prediction, debugging, a short design or SQL item, plus a lab submission checked against written test cases. Every fourth week includes a timed problem-solving practical.

Practical work. Four practicals (weeks 12, 28, 35 and 48): solve unseen programming problems, implement or fix a data structure, write SQL against a given schema, debug a seeded failure and defend choices in a short viva.

What trainers look forWeight
Correctness against test cases30%
Code quality and design20%
Algorithmic and data structure reasoning20%
Database and SQL skills15%
Testing, debugging and Git practice10%
Explanation and responsible AI use5%

Where this can lead

  • Prepares you for junior programmer, trainee software developer and database support roles.
  • Prepares you for degree-level study in computer science or further specialised courses in web, data or cloud development.
  • Gives a base for building small database-backed tools for local businesses.

These describe skills you will build. ADIVAS does not guarantee jobs, placement or salary.