
India · 2022 scheme
Visvesvaraya Technological University
123 lab practicals for the VTU syllabus.
Karnataka’s 2022 scheme across CSE, ISE, AI-ML, AI-DS and ECE, including the dedicated lab courses. Every lesson is stepped, compiled and checked by a real toolchain on your own machine — the model reviews your code afterwards, it does not decide whether you passed.
Updated
Semester by semester
Programme: B.E. CSE / ISE / AI-ML / AI-DS / ECE. Scheme: 2022 scheme. Open a course to see its practical units and the lab lesson GroutCode ships for each.
Semester 3
8 courses29 lab lessonsCJavaC++Python- BCS303C
Operating Systems
6
lessons
- A tiny kernel's plumbing — traps, system calls, files, ports and boot
- Writing the scheduler — FCFS, SJF, SRTF, priority, ageing and round robin
- 1A tiny kernel's plumbing — traps, system calls, files, ports and bootUnit I · Introduction to operating systems, System structures
- 2Writing the scheduler — FCFS, SJF, SRTF, priority, ageing and round robinUnit II · Process Management
- 3Process synchronization and deadlocks — building the algorithms instead of tracing themUnit III · Process Synchronization
- 4Memory management — relocation, paging, segmentation and the page-replacement policiesUnit IV · Memory Management
- 5Building the file system — control blocks, directories, allocation, the disk arm and the access matrixUnit V · File System, Implementation of File System
- 6The whole operating systems lab, simulated — process table, schedulers, semaphores, pipes, the banker, memory, pages andUnit LAB · Practical Component of IPCC
- BCS304C
Data Structures and Applications
5
lessons
- Arrays, polynomials, sparse matrices, strings and stacks — Unit I in C
- Queues, shared arrays and linked chains — Unit II in C
- 1Arrays, polynomials, sparse matrices, strings and stacks — Unit I in CUnit I · Introduction to Data Structures
- 2Queues, shared arrays and linked chains — Unit II in CUnit II · Queues
- 3Chains that point both ways — list surgery, linked sparse matrices, and trees with and without threadsUnit III · Linked Lists
- 4Search trees, tournaments, forests and graphs — the structures that answer a query fastUnit IV · TREES(Cont..): Binary Search trees
- 5Hash Table Implementation with Linear ProbingUnit V · Hashing
- BCS306AJava
Object Oriented Programming with JAVA
5
lessons
- A numeric and tabular toolkit — types, casts, operators and control flow
- An immutable Fraction and the machinery around it
- 1A numeric and tabular toolkit — types, casts, operators and control flowUnit I · An Overview of Java
- 2An immutable Fraction and the machinery around itUnit II · Introducing Classes
- 3A document tree — abstract classes, super, dispatch and interfacesUnit III · Inheritance
- 4A configuration loader that fails precisely — access, exceptions and finallyUnit IV · Packages
- 5A ticket desk with several clerks — threads, locks, an enum and the boxes around intUnit V · Multithreaded Programming
- BCS306BC++
Object Oriented Programming with C++
5
lessons
- A Clock class — constructors, destructors, statics and friends
- A Buffer that owns its memory — copies, pointers and this
- 1A Clock class — constructors, destructors, statics and friendsUnit I · An overview of C++
- 2A Buffer that owns its memory — copies, pointers and thisUnit II · Arrays, Pointers, References, and the Dynamic Allocation Operators
- 3Polynomials that add themselves, and a hierarchy that logs its own constructionUnit III · Operator Overloading
- 4A shape hierarchy that dispatches late, and templates that work for any typeUnit IV · Virtual Functions and Polymorphism
- 5A ledger that throws, and a report it writes and reads backUnit V · Exception Handling
- BCS358DPython
Data Visualization with Python
1
lesson
- Data visualization without a plotting library
- 1Data visualization without a plotting libraryUnit LAB · List of Experiments
- BCSL305C
Data Structures Laboratory
1
lesson
- Calendar Management System
- 1Calendar Management SystemUnit LAB · List of Experiments
- BDS306BPython
Python Programming for Data Science
5
lessons
- Python Variables and Data Types
- Conditional Logic with Grade Classification
- 1Python Variables and Data TypesUnit I · Introduction to python
- 2Conditional Logic with Grade ClassificationUnit II · Decision structure
- 3List Sorting with Bubble SortUnit III · Lists
- 4NumPy Array Manipulation with Basic OperationsUnit IV · The NumPy Library
- 5Data I/O tools and pandas-style manipulation from the standard libraryUnit V · The pandas
- BEC358CC++
C++ Basics
1
lesson
- C++ Student Marks Average Calculator
- 1C++ Student Marks Average CalculatorUnit LAB · List of Experiments
Semester 4
6 courses20 lab lessonsSQLCNode.jsJava- BCS403SQL
Database Management System
6
lessons
- An ER design, interrogated — entities, weak entities, participation and specialization
- The relational model with its constraints on — keys, integrity, the algebra, and the ER mapping
- 1An ER design, interrogated — entities, weak entities, participation and specializationUnit I · Introduction to Databases
- 2The relational model with its constraints on — keys, integrity, the algebra, and the ER mappingUnit II · Relational Model
- 3Normalization as arithmetic — 1NF to 5NF, with the dependencies stored as rowsUnit III · Normalization
- 4Advanced SQL and the theory of transactions — windows, recursion, an updatable view, an assertion, and six schedulesUnit IV · SQL
- 5Concurrency control protocols, and the four NoSQL data models — all of them as queriesUnit V · Concurrency Control in Databases
- 6The BCS403 experiment list, run end to end — DDL, transactions, triggers, cursors, a merge and documentsUnit LAB · Practical Component of IPCC
- BCSL404C
Analysis & Design of Algorithms Lab
1
lesson
- Kruskal's Algorithm for Minimum Spanning Tree
- 1Kruskal's Algorithm for Minimum Spanning TreeUnit LAB · List of Experiments
- BDSL456CNode.js
MERN
1
lesson
- MERN lab logic: Mongo-style queries, cookies, file CRUD, Express routes, auth and fetch
- 1MERN lab logic: Mongo-style queries, cookies, file CRUD, Express routes, auth and fetchUnit LAB · List of Experiments
- BEC405DC
Data Structures Using C
5
lessons
- Dynamic Array Implementation with malloc
- An array stack, infix to postfix and prefix, and recursive programs in C
- 1Dynamic Array Implementation with mallocUnit I · Arrays
- 2An array stack, infix to postfix and prefix, and recursive programs in CUnit II · The Stack
- 3Implementing a Circular Queue using ArrayUnit III · Queues and Lists
- 4Binary Tree Node Creation and TraversalUnit IV · Trees
- 5Hash Table Implementation with ChainingUnit V · Hashing
- BECL456DC
Data Structures Lab using C
1
lesson
- Stack Implementation with Linked List
- 1Stack Implementation with Linked ListUnit LAB · List of Experiments
- BIS402Java
Advanced Java
6
lessons
- A course enrolment register — lists, sets, iterators and the collection algorithms
- A student record cleaner — constructors, character extraction and StringBuffer
- 1A course enrolment register — lists, sets, iterators and the collection algorithmsUnit I · The collections and Framework
- 2A student record cleaner — constructors, character extraction and StringBufferUnit II · String Handling
- 3From the Alpha and Beta buttons to a registration form that validates itselfUnit III · Introducing Swing
- 4A servlet container in plain Java - requests, responses, cookies, sessions and JSPUnit IV · Introducing servlets
- 5The Student database and its login page — schema, queries, the ResultSet cursor and the bound loginUnit V · JDBC Objects
- 6The twelve experiments in one file — collections, strings, events, a modelled container and a modelled driverUnit LAB · Practical Component of IPCC
Semester 5
6 courses27 lab lessonsPythonJavaC++CNode.js- BAI515EPython
Exploratory Data Analysis
5
lessons
- NumPy Array Sorting
- Series, DataFrame, missing data, MultiIndex and pivot tables from scratch
- 1NumPy Array SortingUnit I · Introduction to Python and NumPy
- 2Series, DataFrame, missing data, MultiIndex and pivot tables from scratchUnit II · Data Manipulation with Pandas - I
- 3Vectorised strings, time series and a safe eval/query, in plain PythonUnit III · Data Manipulation with Pandas - II
- 4Under Matplotlib and Seaborn: axes, ticks, format strings, histograms, KDE and an SVG plotUnit IV · Data Visualization with MatPlotlib
- 5Scikit-Learn Model Validation WorkflowUnit V · Introduction to Machine Learning
- BCS502Java
Computer Networks
6
lessons
- A protocol stack in memory — encapsulation, segmentation, delay, and the two kinds of switch
- The data link layer in memory — framing, error control, ARQ and the medium
- 1A protocol stack in memory — encapsulation, segmentation, delay, and the two kinds of switchUnit I · Introduction
- 2The data link layer in memory — framing, error control, ARQ and the mediumUnit II · Data Link Layer
- 3The network layer in memory — addressing, forwarding, fragmentation and four routing algorithmsUnit III · Network Layer
- 4The transport layer, written out — demultiplexing, UDP, and the whole of TCPUnit IV · Introduction to Transport Layer
- 5The application layer without a socket — HTTP, DNS, SMTP, FTP and a file serverUnit V · Introduction to Application Layer: Introduction
- 6A network you can count — queues, routing, collisions, CRC, windows, sockets and bucketsUnit LAB · Practical Component of IPCC
- BCS515AC++
Computer Graphics
5
lessons
- A graphics system in miniature: frame buffer, pinhole and synthetic camera, pipeline
- Event-Driven Menu Interaction with GLUT
- 1A graphics system in miniature: frame buffer, pinhole and synthetic camera, pipelineUnit I · Graphics Systems and Models
- 2Event-Driven Menu Interaction with GLUTUnit II · Input and Interaction
- 3Homogeneous-coordinate transformations, the colored cube and frames in C++Unit III · Geometric Objects and Transformations
- 4Camera, projection, viewport and the Phong lighting model in C++Unit IV · Viewing
- 5Cohen-Sutherland Line ClippingUnit V · From Vertices to Fragments
- BCS515CC
Unix System Programming
5
lessons
- Unix Command Line Argument Parser
- File Permission String Builder
- 1Unix Command Line Argument ParserUnit I · Introduction
- 2File Permission String BuilderUnit II · File attributes and permissions
- 3Unix File Operations: Basic File ManagementUnit III · Unix Standardization and Implementations
- 4Process Creation with fork()Unit IV · Process Control
- 5Signals with sigaction, signal masks, sigsuspend and daemon coding rulesUnit V · Signals and Daemon Processes: Introduction
- BCSL504Node.js
Web Technology Lab
1
lesson
- HTML Page Generator
- 1HTML Page GeneratorUnit LAB · List of Experiments
- BEC515CC++
Data Structures using C++
5
lessons
- An array-based list template that owns its memory
- Linked List Stack Implementation
- 1An array-based list template that owns its memoryUnit I · UNIT-I
- 2Linked List Stack ImplementationUnit II · UNIT-III
- 3Implementing a Queue using ArrayUnit III · UNIT-IV
- 4Binary Search Tree InsertionUnit IV · UNIT-V
- 5Graph Adjacency List ImplementationUnit V · UNIT-VI
Semester 6
9 courses30 lab lessonsPythonJavaCNode.js- BAI602Python
Machine Learning
5
lessons
- Robust statistics and the shape of a distribution
- Splits, confusion matrices, ROC and the bootstrap
- 1Robust statistics and the shape of a distributionUnit I · Introduction
- 2Splits, confusion matrices, ROC and the bootstrapUnit II · Understanding Data - 2
- 3Nearest Centroid Classifier ImplementationUnit III · Similarity-based Learning
- 4CART, pruning and Gaussian naive BayesUnit IV · Decision Tree Learning
- 5A softmax classifier, and clustering by proximityUnit V · Artificial Neural Networks
- BAIL606Python
Machine Learning lab
1
lesson
- Statistical Analysis of Numerical Data
- 1Statistical Analysis of Numerical DataUnit LAB · List of Experiments
- BAIL657CPython
Generative AI
1
lesson
- Word Embedding Similarity Search
- 1Word Embedding Similarity SearchUnit LAB · List of Experiments
- BCS602Python
Machine Learning
5
lessons
- Descriptive statistics, batch and streaming
- Correlation, feature engineering and the version space
- 1Descriptive statistics, batch and streamingUnit I · Introduction
- 2Correlation, feature engineering and the version spaceUnit II · Understanding Data - 2
- 3K-Nearest Neighbor Classifier ImplementationUnit III · Similarity-based Learning
- 4Bayesian learning and neural networks from the counts upUnit IV · Bayesian Learning
- 5Clustering by partition, and control by rewardUnit V · Clustering Algorithms
- BCS613DJava
Advanced Java
5
lessons
- A parcel depot's dispatch board — maps, queues, comparators and the collection algorithms
- A template engine and its tokeniser — searching, slicing and StringBuilder
- 1A parcel depot's dispatch board — maps, queues, comparators and the collection algorithmsUnit I · The collections and Framework
- 2A template engine and its tokeniser — searching, slicing and StringBuilderUnit II · String Handling
- 3A ticket kiosk's component tree — containment, layout, dispatch and a paint passUnit III · Introducing Swing
- 4The container behind a reporting API — servlet life cycle, mapping, filters, dispatchers and sessionsUnit IV · Introducing servlets
- 5A JDBC driver taken apart — the URL, the DriverManager, the pool and the transactionUnit V · JDBC Objects
- BCS654AC
Introduction to Data Structures
5
lessons
- Dynamic 2D Array Implementation
- Array-Based Stack Implementation
- 1Dynamic 2D Array ImplementationUnit I · Arrays
- 2Array-Based Stack ImplementationUnit II · Stacks
- 3Singly Linked List ImplementationUnit III · Linked Lists
- 4Binary Search Tree InsertionUnit IV · Trees
- 5Insertion Sort ImplementationUnit V · Sorting
- BCSL606Python
Machine Learning lab
1
lesson
- The ten ML lab experiments, written from scratch
- 1The ten ML lab experiments, written from scratchUnit LAB · List of Experiments
- BEC657DPython
Python Programming for Machine Learning Applications
1
lesson
- ID3 Decision Tree Construction
- 1ID3 Decision Tree ConstructionUnit LAB · List of Experiments
- BIS601Node.js
Full Stack Development
6
lessons
- A marks report in plain JavaScript — parse, coerce, group, rank, format
- The Document Object Model, implemented — there is no browser, so you write the DOM
- 1A marks report in plain JavaScript — parse, coerce, group, rank, formatUnit I · Basic JavaScript Instructions
- 2The Document Object Model, implemented — there is no browser, so you write the DOMUnit II · Document Object Model
- 3React from the inside — elements, composition, and the Issue Tracker's validated formUnit III · Form enhancement and validation
- 4State, lifting it up, and the API under it — hooks, Express and one GraphQL endpointUnit IV · React State
- 5The aggregation pipeline, and the bundler that ships the appUnit V · MongoDB
- 6The whole stack, one experiment at a timeUnit LAB · Practical Component of IPCC
Semester 7
3 courses17 lab lessonsPythonCSQL- BCS701Python
Internet of Things
6
lessons
- IoT Network Topology Analyzer
- NETCONF Configuration Parser
- 1IoT Network Topology AnalyzerUnit I · Introduction to Internet of Things
- 2NETCONF Configuration ParserUnit II · IOT and M2M
- 3IoT Weather Station Data ProcessingUnit III · IoT Platforms Design Methodology
- 4Raspberry Pi Sensor Data ProcessingUnit IV · IoT Physical Devices & End points
- 5Apache Spark Streaming Window OperationsUnit V · Data Analytics for IoT
- 6Blinking LEDs Back and ForthUnit LAB · Practical Component of IPCC
- BCS702C
Parallel Computing
6
lessons
- Parallel MIMD System Process Coordination
- OpenMP Parallel Reduction
- 1Parallel MIMD System Process CoordinationUnit I · Introduction to parallel programming
- 2OpenMP Parallel ReductionUnit II · GPU programming
- 3MPI Parallel Merge SortUnit III · Distributed memory programming with MPI
- 4Parallel Sum Reduction with OpenMPUnit IV · Shared-memory programming with OpenMP
- 5The CUDA execution model on the CPU: vector addition and the trapezoidal rule I-IIIUnit V · GPU programming with CUDA
- 6OpenMP Parallel Merge SortUnit LAB · Practical Component of IPCC
- BCS755ASQL
Introduction to DBMS
5
lessons
- Basic SQL Queries with SQLite
- ER Diagram to Relational Schema Mapping
- 1Basic SQL Queries with SQLiteUnit I · Introduction to Databases
- 2ER Diagram to Relational Schema MappingUnit II · Conceptual Data Modeling using Entities and Relationships
- 3Relational Algebra with SQLiteUnit III · Relational Model
- 4Basic SQL Query ConstructionUnit IV · SQL
- 5Nested and correlated queries, views and triggers on the COMPANY databaseUnit V · SQL
The full 157-course syllabus is transcribed in the app, including the theory courses. Lessons are authored against the course codes that have practical work, and the list grows with each release.
GroutCode is not affiliated with or endorsed by Visvesvaraya Technological University. Course codes and titles are transcribed from the institution’s published scheme documents.
How a practical runs
The same five steps for every lesson, in every language.
- 1
Pick your syllabus
Choose your university or board and the semester or class you are in. The course list is the transcribed official scheme, not an approximation.
- 2
Open a lab lesson
Each lesson is a stepped practical for a specific course, with a starter file you edit and a test file you do not.
- 3
Write the code yourself
The starter has the signatures and the TODOs. You implement them in the editor, in the language your course actually uses.
- 4
Run the checks
The toolchain compiles and runs the tests — 8 to 15 of them across the lesson, one per step, so you find out which change broke what.
- 5
Get the review
Once the tests pass, the model reads your implementation and tells you the input that breaks it. It never reports the pass or fail itself.
Why the compiler grades, not the model
The obvious way to build an AI lab tool is to let the model read the student’s code and say whether it is correct. It is also the way that produces a tool nobody can trust. A model will tell you your code works when the compiler says otherwise, and it will fail you for a style it happens to dislike.
So the two jobs are split:
- The model designs the lesson, writes the starter and the tests, and — after the tests pass — reads what you actually wrote and tells you the input that breaks it.
- The toolchain decides whether it compiles and whether each step passes. That verdict is not negotiable and the model never issues it.
And why steps instead of one big task
A 40-to-60 minute practical with a single Run at the end gives a beginner one bit of feedback an hour, and it arrives after every decision has already been made. Each lesson here is 8 to 15 steps, each with its own instruction and its own check, so you find out which change broke what while you still remember making it.
Frequently asked questions
Does GroutCode cover the VTU 2022 scheme?
Yes. GroutCode ships the transcribed VTU 2022 scheme for B.E. CSE / ISE / AI-ML / AI-DS / ECE — 157 courses — with 123 authored lab lessons mapped to specific course codes. The syllabus was transcribed from the official documents, and the source and checksum of each one is recorded in the app.
Which languages do the VTU practicals use?
C (35 lessons), Python (31 lessons), Java (22 lessons), C++ (16 lessons), SQL (11 lessons), Node.js (8 lessons). The language is set per course code rather than guessed from the title, because the same subject is taught in different languages at different institutions.
Does the AI just write the practical for me?
No. The starter file has the signatures and the TODOs; you implement them. The toolchain — not the model — decides whether your code compiles and whether each step passes, so the AI cannot tell you your code works when the compiler disagrees. What it does afterwards is read your implementation and point out the input that breaks it.
Do the practicals work offline?
The lessons, the syllabus and the test runner are bundled in the app and run locally, so the compile-and-check loop works with no connection. The review step at the end uses a model, which can be a local one or a cloud one with your own key.
What do I need installed?
GroutCode detects which toolchains are present on your machine and tells you what is missing and what would fix it. You need the compiler or interpreter for the language your course uses — a C compiler, a JDK, Python, Node or SQLite.
Other syllabuses

KTU
APJ Abdul Kalam Technological University
The 2024 scheme for Kerala’s technological university, covering CSE, IT, AI & DS and ECE from semester three onwards.
85
lab lessons

Anna University
Anna University, Chennai
Anna University’s Regulations 2021 B.E. CSE, from Python and C programming to the data structures and OOP laboratories.
31
lab lessons

AKTU
Dr. A.P.J. Abdul Kalam Technical University, Lucknow
AKTU Lucknow’s B.Tech CSE for the 2026-27 session: C programming, data structures, Java OOP and the operating system lab.
28
lab lessons
Do your VTU lab work with the checks built in
GroutCode is included in every Grout Suite license. Free download for Windows and macOS.
Download GroutCode