Gujarat Technological University

India · 2024 scheme

Gujarat Technological University

111 labpractica voor het GTU-leerplan.

De B.E. Computer Engineering van Gujarat Technological University volgens het 2024-schema, met C, Python, SQL, Java en web. Elke les verloopt in stappen en wordt gecompileerd en gecontroleerd door een echte toolchain op je eigen computer — het model beoordeelt je code achteraf, het bepaalt niet of je geslaagd bent.

Bijgewerkt

Semester per semester

Opleiding: B.E. Computer Engineering (Branch 07). Regeling: 2024 scheme (Sem 1-5); 2018 scheme (Sem 7). Open een vak om de practicumonderdelen te zien en het labpracticum dat GroutCode bij elk onderdeel meelevert.

  1. Semester 1

    1 vak11 lablessenC
    • BE01R00121C

      Programming for Problem Solving

      11

      lessen

      • From flowchart to machine code — number systems, algorithms and a tiny compiler
      • Types and operators in C — conversions, logic and bit manipulation
      Bekijk alle 11 lessen
      1. 1From flowchart to machine code — number systems, algorithms and a tiny compilerOnderdeel 1 · Introduction to Programming
      2. 2Types and operators in C — conversions, logic and bit manipulationOnderdeel 2 · Basics of C Programming
      3. 3Control flow in C — decisions, loops and a menu-driven calculatorOnderdeel 3 · Control Structures
      4. 4Functions and recursion in C — from factorial to the Towers of HanoiOnderdeel 4 · Functions and Modular Programming
      5. 5Arrays, matrices and strings in C — writing <string.h> yourselfOnderdeel 5 · Arrays and Strings
      6. 6Pointers in C — swapping, walking arrays and passing functionsOnderdeel 6 · Pointers
      7. 7Structures and unions — a student record system and a tagged valueOnderdeel 7 · Structures and Unions
      8. 8File handling in C — a small line-based text editorOnderdeel 8 · File Handling
      9. 9Dynamic memory in C — malloc, calloc, realloc and a growable arrayOnderdeel 9 · Dynamic Memory Allocation
      10. 10Debugging and testing in C — fix seven bugs, then build a test frameworkOnderdeel 10 · Debugging and Testing
      11. 11The PPS practical list in C: from arithmetic to linked queues, files and a debugging huntOnderdeel LAB · List of Practicals
  2. Semester 3

    2 vakken17 lablessenCSQL
    • BE03000081C

      Data Structures

      6

      lessen

      • How primitive and non-primitive data are stored: bits, floats, arrays, links and structs
      • Stacks, queues and linked lists from arrays and pointers
      Bekijk alle 6 lessen
      1. 1How primitive and non-primitive data are stored: bits, floats, arrays, links and structsOnderdeel 1 · Introduction to Data Structures
      2. 2Stacks, queues and linked lists from arrays and pointersOnderdeel 2 · Linear Data Structure
      3. 3Binary search trees, traversals and graph algorithms on an adjacency matrixOnderdeel 3 · Non Linear Data Structure
      4. 4Hash tables, a symbol table and fixed, variable, sequential and indexed record filesOnderdeel 4 · Hashing and File Structures
      5. 5Six sorts and two searches in C — bubble, selection, insertion, quick, merge, heap, sequential and binaryOnderdeel 5 · Sorting & Searching
      6. 6Data Structures lab in C — stacks, queues, lists, trees and graphsOnderdeel LAB · List of Practicals
    • BE03000091SQL

      Database Management System

      11

      lessen

      • From a flat order file to a relational database with views and transactions
      • Relational algebra in SQL — selection, projection, joins, set operators and division
      Bekijk alle 11 lessen
      1. 1From a flat order file to a relational database with views and transactionsOnderdeel 1 · Introductory concepts of DBMS
      2. 2Relational algebra in SQL — selection, projection, joins, set operators and divisionOnderdeel 2 · Relational Model
      3. 3SQL from DDL to transactions — constraints, functions, sub-queries and savepointsOnderdeel 3 · Introduction to SQL
      4. 4From an E-R Diagram to a Relational Schema: a College DatabaseOnderdeel 4 · Entity-Relationship Model
      5. 5Functional Dependencies and Normalization in SQLOnderdeel 5 · Relational Database Design
      6. 6Transactions, Serializability, Locking and Recovery in SQLiteOnderdeel 6 · Transaction Management
      7. 7Query Cost, Size Estimates and a Self-Maintaining Materialized ViewOnderdeel 7 · Query Processing & Optimization
      8. 8Database Security: Views, RBAC, DAC Grants, MAC and Intrusion DetectionOnderdeel 8 · Database Security
      9. 9Indexes and hashing in SQLite — ordered, unique, composite, covering and partial indexes, B+-tree height, static and extOnderdeel 9 · Indexing and Hashing
      10. 10Triggers, procedures and cursors in SQLite — a bank ledger that enforces its own rulesOnderdeel 10 · PL/SQL Concepts
      11. 11DBMS practicals in SQLite — schema, DDL and DML, constraints, functions, grouping, subqueries, joins, transactions and tOnderdeel LAB · List of Practicals
  3. Semester 4

    3 vakken27 lablessenCJava
    • BE04000221C

      Operating System

      10

      lessen

      • Modelling operating systems — batch, multiprogramming, time sharing, system calls and real-time scheduling
      • CPU schedulers and real processes — FCFS, SJF, SRTF, priority, round robin, fork, exec and wait
      Bekijk alle 10 lessen
      1. 1Modelling operating systems — batch, multiprogramming, time sharing, system calls and real-time schedulingOnderdeel 1 · Introduction
      2. 2CPU schedulers and real processes — FCFS, SJF, SRTF, priority, round robin, fork, exec and waitOnderdeel 2 · Process and Threads Management
      3. 3Synchronization primitives from scratch: locks, semaphores, pipes, messages, signals and monitorsOnderdeel 3 · Concurrency & Synchronization
      4. 4IPC algorithms replayed: Peterson, producer-consumer, readers-writers and dining philosophersOnderdeel 4 · Inter Process Communication
      5. 5Deadlock toolkit: Banker's algorithm, detection and preventionOnderdeel 5 · Deadlock
      6. 6Memory manager simulator: allocation, paging and page replacementOnderdeel 6 · Memory Management
      7. 7Disk subsystem simulator: head scheduling, RAID and the disk cacheOnderdeel 7 · I/O Management & Disk Scheduling
      8. 8A Unix toolbox in C — permissions, paths and text filtersOnderdeel 8 · Unix/Linux Operating System
      9. 9A toy hypervisor — guest bytecode, trap-and-emulate and shadow pagingOnderdeel 9 · Virtualization Concepts
      10. 10OS lab practicals in C — the shell-script exercises, made checkableOnderdeel LAB · List of Practicals
    • BE04000231Java

      Object Oriented Programming

      8

      lessen

      • Java fundamentals — data types, operators and type conversion
      • Java control flow — every branch and loop form in one file
      Bekijk alle 8 lessen
      1. 1Java fundamentals — data types, operators and type conversionOnderdeel 1 · Basic of Java
      2. 2Java control flow — every branch and loop form in one fileOnderdeel 2 · Conditional and looping statements
      3. 3Points, rectangles and bank accounts — classes and objects in JavaOnderdeel 3 · Basics of Object Oriented Programming
      4. 4Shapes, vehicles and strings — inheritance and polymorphism in JavaOnderdeel 4 · Inheritance, Polymorphism and Wrapper classes
      5. 5Results, orders and a library — interfaces, abstract classes and exceptionsOnderdeel 5 · Interface, Abstract class and Exception Handling
      6. 6Parallel sums, tables and a bounded buffer — threads in JavaOnderdeel 6 · Concurrency control
      7. 7Student records and a generic toolkit — file I/O and generics in JavaOnderdeel 7 · I/O Management and Generics
      8. 8Designing GUI Applications using JavaFx
      9. 9GTU Java practical list — from unit conversion to genericsOnderdeel LAB · List of Practicals
    • BE04000241C

      Analysis and Design of Algorithms

      9

      lessen

      • Measuring algorithms — case analysis, asymptotic bounds and union-find
      • Sorting algorithms and their costs — from bubble sort to bucket sort
      Bekijk alle 9 lessen
      1. 1Measuring algorithms — case analysis, asymptotic bounds and union-findOnderdeel 1 · Introduction and Analysis of Algorithm
      2. 2Sorting algorithms and their costs — from bubble sort to bucket sortOnderdeel 2 · Analysis of Sorting Algorithms
      3. 3Divide and conquer — from binary search to Strassen's matrix productOnderdeel 3 · Divide and Conquer
      4. 4Dynamic programming tables — binomials, change, knapsack, chains and subsequencesOnderdeel 4 · Dynamic Programming
      5. 5Greedy choices — making change, activities, knapsacks and job deadlinesOnderdeel 5 · Greedy Algorithm
      6. 6Graph algorithms on an adjacency matrix — traversal, ordering, components, spanning trees and shortest pathsOnderdeel 6 · Graph Algorithms
      7. 7Backtracking and branch and bound — queens, subsets, colourings, cycles, knapsack and TSPOnderdeel 7 · Backtracking and Branch and Bound
      8. 8NP-completeness in code — certificate verifiers, exhaustive search and polynomial reductionsOnderdeel 8 · Introduction to NP-Completeness
      9. 9The ADA practical list — sorting, searching, greedy, DP and backtracking in COnderdeel LAB · Suggested Course Practical List
  4. Semester 5

    4 vakken34 lablessenPythonCNode.js
    • BE05000181Python

      Data Mining Techniques

      8

      lessen

      • Descriptive statistics from scratch — the summaries before the mining
      • Data pre-processing by hand — cleaning, integration, transformation and reduction
      Bekijk alle 8 lessen
      1. 1Descriptive statistics from scratch — the summaries before the miningOnderdeel 1 · Introduction to Data Mining
      2. 2Data pre-processing by hand — cleaning, integration, transformation and reductionOnderdeel 2 · Data Pre-processing
      3. 3Apriori from scratch — frequent itemsets, association rules and pattern evaluationOnderdeel 3 · Mining Frequent Patterns, Associations, and Correlations
      4. 4Classifiers from scratch — k-NN, ID3, naive Bayes, evaluation and regressionOnderdeel 4 · Classification and Prediction
      5. 5Clustering from scratch: k-Means, k-Medoids, agglomerative and DBSCANOnderdeel 5 · Cluster Analysis
      6. 6Tuning kNN with cross-validation and explaining models with stumps, permutation importance and Shapley valuesOnderdeel 6 · Hyperparameters and Explainable AI
      7. 7Advanced mining toolkit: TF-IDF, PageRank, sequences, geo-radius, stream summaries and MapReduceOnderdeel 7 · Advance data mining techniques
      8. 8Data mining lab: cleaning, normalisation, Apriori rules and a Naive Bayes classifier by handOnderdeel LAB · List of Practicals
    • BE05000231Python

      Python for Data Science

      8

      lessen

      • Python foundations: operators, collections, control flow, closures and the math/statistics/random modules
      • Files, CSV, binary records and a student database with safe error handling
      Bekijk alle 8 lessen
      1. 1Python foundations: operators, collections, control flow, closures and the math/statistics/random modulesOnderdeel 1 · Introduction, Data Types, Operators, Decision making, Loops & Functions
      2. 2Files, CSV, binary records and a student database with safe error handlingOnderdeel 2 · Python File Handling and exception handling
      3. 3Descriptive statistics from scratch — centre, spread, location, shape and correlationOnderdeel 3 · Data Science and Descriptive Statistics
      4. 4Inside the data libraries — mini NumPy, SciPy, Pandas, Scikit-learn and Beautiful SoupOnderdeel 4 · Exploring Python libraries
      5. 5Probability distributions and a one-sample z-test, built from first principlesOnderdeel 5 · Probabilistic and Inferential Statistics
      6. 6A data-preparation toolkit — load, clean, reshape, aggregate, de-outlier and normalise a tableOnderdeel 6 · Data preparation
      7. 7A text plotting library: axes, ticks, histograms, line plots and subplotsOnderdeel 7 · Data Visualization
      8. 8Data-science lab toolkit: from raw CSV to a hypothesis testOnderdeel LAB · List of Practicals
    • BE05000261C

      System Software

      10

      lessen

      • A hypothetical machine and the life cycle of a source program
      • Symbol tables and allocation structures for a language processor
      Bekijk alle 10 lessen
      1. 1A hypothetical machine and the life cycle of a source programOnderdeel 1 · Overview of System Software
      2. 2Symbol tables and allocation structures for a language processorOnderdeel 2 · Overview of Language Processors
      3. 3A two-pass assembler with literals, ORIGIN and EQU - then one pass with backpatchingOnderdeel 3 · Assemblers
      4. 4A two-pass macro processor with MNT, MDT, defaults and nested callsOnderdeel 4 · Macro and Macro Processors
      5. 5Absolute, relocating and linking loaders for SIC-style object programsOnderdeel 5 · Linkers and Loaders
      6. 6Scanner, recursive-descent parser and table-driven LL(1) parserOnderdeel 6 · Scanning and Parsing
      7. 7Scopes, frame layout, quadruples and three code optimisationsOnderdeel 7 · Compilers
      8. 8A stack-machine interpreter with an assembler, debugger and bytecode verifierOnderdeel 8 · Interpreters & Debuggers
      9. 9Storage allocation and scope of names: struct layout, a block-structured symbol table and a heapOnderdeel 9 · Programming Languages
      10. 10System software lab: lexer, recursive descent and LL(1) parsers, grammar rewriting, quadruples and SYMTAB/LITTABOnderdeel LAB · List of Practicals
    • BE05000281Node.js

      Web Application Development

      8

      lessen

      • Client-server by hand: URLs, HTTP messages, a static file server and a dynamic router
      • What the browser computes: HTML generation, nesting checks, specificity, the box model, media queries, flexbox and the B
      Bekijk alle 8 lessen
      1. 1Client-server by hand: URLs, HTTP messages, a static file server and a dynamic routerOnderdeel 1 · Introduction to Web Technologies
      2. 2What the browser computes: HTML generation, nesting checks, specificity, the box model, media queries, flexbox and the BOnderdeel 2 · HTML & CSS Fundamentals
      3. 3JavaScript from the ground up: data, a hand-built DOM with event bubbling, local storage, and promises over an injectedOnderdeel 3 · JavaScript Fundamentals
      4. 4HTTP from the wire up: query strings, raw requests and responses, and a CRUD API that speaks JSON and XMLOnderdeel 4 · APIs & HTTP Communication
      5. 5Express from scratch: routing, middleware, a books REST API, password hashing and JWT auth in plain NodeOnderdeel 5 · Backend Development with Node.js
      6. 6React from scratch: JSX elements, components, useState, keys, useEffect, a data-fetching hook and CORSOnderdeel 6 · Frontend Development with React.js
      7. 7Shipping a website: domain and DNS rules, a static host with caching, SEO audits, robots.txt, a replay-proof CAPTCHA andOnderdeel 7 · Deployment & Modern Web Concepts
      8. 8Mini project: a Library Management System with form validation, a REST API, a fetch client and a dashboardOnderdeel LAB · List of Practicals
  5. Semester 7

    2 vakken22 lablessenCPython
    • 3170701C

      Compiler Design

      9

      lessen

      • A complete language processor in miniature: preprocessor, interpreter, compiler, assembler
      • A hand-written scanner: finite automata, longest match and a symbol table
      Bekijk alle 9 lessen
      1. 1A complete language processor in miniature: preprocessor, interpreter, compiler, assemblerOnderdeel 1 · Overview of the Compiler and its Structure
      2. 2A hand-written scanner: finite automata, longest match and a symbol tableOnderdeel 2 · Lexical Analysis
      3. 3From grammar to parser: left recursion, FIRST/FOLLOW, LL(1), SLR and syntax-directed translationOnderdeel 3 · Syntax Analysis
      4. 4A parser that keeps going: error detection, panic mode and phrase-level recoveryOnderdeel 4 · Error Recovery
      5. 5Three-address code generator: quadruples, triples, DAGs and type coercionOnderdeel 5 · Intermediate-Code Generation
      6. 6A run-time environment: frames, access links and a heap allocatorOnderdeel 6 · Run-Time Environments
      7. 7Basic blocks, flow graphs and a simple code generator for three-address codeOnderdeel 7 · Code Generation and Optimization
      8. 8Basic-block scheduling and a two-pass SIC assemblerOnderdeel 8 · Instruction-Level Parallelism
      9. 9Compiler lab: automata, parsers, FIRST/FOLLOW and three-address codeOnderdeel LAB · Sample List of Experiments
    • 3170716Python

      Artificial Intelligence

      13

      lessen

      • Tic-tac-toe three ways: the AI techniques of Unit 1
      • Searching state spaces: water jugs, the 8-puzzle and map colouring
      Bekijk alle 13 lessen
      1. 1Tic-tac-toe three ways: the AI techniques of Unit 1Onderdeel 1 · Introduction
      2. 2Searching state spaces: water jugs, the 8-puzzle and map colouringOnderdeel 2 · Problems, State Space Search & Heuristic Search Techniques
      3. 3From isa hierarchies to a tiny Prolog: knowledge representation in codeOnderdeel 3 · Knowledge Representation
      4. 4Tweety, Nixon and abnormal birds: nonmonotonic reasoning enginesOnderdeel 4 · Symbolic Reasoning Under Uncertainty
      5. 5Reasoning with uncertainty: Bayes, certainty factors, Dempster-Shafer and fuzzy rulesOnderdeel 5 · Probabilistic Reasoning
      6. 6Minimax, alpha-beta and iterative deepening on game trees and NimOnderdeel 6 · Game Playing
      7. 7Blocks-world planner: STRIPS operators, goal stack planning and a reactive agentOnderdeel 7 · Planning
      8. 8A small NLP pipeline: spelling correction, CYK parsing, logical forms and pronoun resolutionOnderdeel 8 · Natural Language Processing
      9. 9Neural networks from scratch: a Hopfield memory, a perceptron, backpropagation and an RNNOnderdeel 9 · Connectionist Models
      10. 10An expert system shell: forward and backward chaining, explanations and certainty factorsOnderdeel 10 · Expert Systems
      11. 11A genetic algorithm from its parts: selection, crossover, mutation, schemata and terminationOnderdeel 11 · Genetic Algorithms
      12. 12A Prolog interpreter in Python: matching, backtracking and the cutOnderdeel 12 · Introduction to Prolog
      13. 13AI lab: water jug, 8-puzzle search, minimax, family trees, Hanoi, N-Queens and TSPOnderdeel LAB · Sample List of Experiments

Het volledige leerplan van 29 vakken is in de app uitgewerkt, inclusief de theorievakken. De lessen zijn geschreven bij de vakcodes met practicumwerk, en de lijst groeit met elke release.

GroutCode is niet verbonden aan of goedgekeurd door Gujarat Technological University. Vakcodes en vaktitels zijn overgenomen uit de gepubliceerde regelingsdocumenten van de instelling.

Zo verloopt een practicum

Dezelfde vijf stappen bij elke les, in elke taal.

  1. 1

    Kies je leerplan

    Kies je universiteit of examenorgaan en het semester of de klas waarin je zit. De vakkenlijst is de officiële regeling zoals die is overgenomen, geen benadering.

  2. 2

    Open een labpracticum

    Elke les is een practicum in stappen bij een specifiek vak, met een startbestand dat je bewerkt en een testbestand dat je met rust laat.

  3. 3

    Schrijf de code zelf

    In het startbestand staan de signatures en de TODO's. Jij werkt ze uit in de editor, in de taal die je vak daadwerkelijk gebruikt.

  4. 4

    Draai de controles

    De toolchain compileert en draait de tests — 8 tot 15 stuks verspreid over de les, één per stap, zodat je ziet welke wijziging wat kapotmaakte.

  5. 5

    Krijg de review

    Zodra de tests slagen, leest het model je uitwerking en vertelt het je welke invoer hem laat vastlopen. Het meldt zelf nooit of je geslaagd of gezakt bent.

Waarom de compiler beoordeelt en niet het model

De voor de hand liggende manier om een AI-labtool te bouwen, is het model de code van de student te laten lezen en te laten zeggen of die klopt. Het is ook de manier die een tool oplevert die niemand kan vertrouwen. Een model vertelt je dat je code werkt terwijl de compiler iets anders zegt, en laat je zakken op een stijl die het toevallig niet aanstaat.

Daarom zijn de twee taken gescheiden:

  • Het model ontwerpt de les, schrijft het startbestand en de tests, en leest — zodra de tests slagen — wat jij daadwerkelijk hebt geschreven, om je te vertellen welke invoer het laat vastlopen.
  • De toolchain bepaalt of het compileert en of elke stap slaagt. Dat oordeel staat vast en het model velt het nooit.

En waarom stappen in plaats van één grote opdracht

Een practicum van 40 tot 60 minuten met één keer Run aan het eind geeft een beginner één stukje feedback per uur, en dat komt pas nadat alle beslissingen al genomen zijn. Elke les hier bestaat uit 8 tot 15 stappen, elk met een eigen instructie en een eigen controle, zodat je ziet welke wijziging wat kapotmaakte terwijl je je die wijziging nog herinnert.

Veelgestelde vragen

Ondersteunt GroutCode de GTU 2024 scheme?

Ja. GroutCode bevat de overgenomen GTU 2024 scheme voor B.E. Computer Engineering (Branch 07) — 29 vakken — met 111 uitgewerkte labpractica die aan specifieke vakcodes zijn gekoppeld. Het leerplan is overgenomen uit de officiële documenten, en van elk document zijn de bron en de checksum in de app vastgelegd.

Welke talen gebruiken de GTU-practica?

C (55 lessen), Python (29 lessen), SQL (11 lessen), Java (8 lessen), Node.js (8 lessen). De taal is per vakcode ingesteld en niet afgeleid uit de titel, omdat hetzelfde vak op verschillende instellingen in verschillende talen wordt gegeven.

Schrijft de AI het practicum gewoon voor me?

Nee. In het startbestand staan de signatures en de TODO's; jij werkt ze uit. De toolchain — niet het model — bepaalt of je code compileert en of elke stap slaagt, zodat de AI je niet kan wijsmaken dat je code werkt terwijl de compiler het er niet mee eens is. Wat het daarna wel doet, is je uitwerking lezen en aanwijzen welke invoer hem laat vastlopen.

Werken de practica offline?

De lessen, het leerplan en de testrunner zitten in de app en draaien lokaal, dus de cyclus van compileren en controleren werkt zonder verbinding. Voor de reviewstap aan het eind wordt een model gebruikt; dat kan een lokaal model zijn of een cloudmodel met je eigen sleutel.

Wat moet ik geïnstalleerd hebben?

GroutCode kijkt welke toolchains er op je computer staan en vertelt je wat er ontbreekt en hoe je dat oplost. Je hebt de compiler of interpreter nodig voor de taal die je vak gebruikt — een C-compiler, een JDK, Python, Node of SQLite.

Doe je GTU-labwerk met de controles ingebouwd

GroutCode zit bij elke Grout Suite-licentie inbegrepen. Gratis te downloaden voor Windows en macOS.

Download GroutCode