Gujarat Technological University

Inde · 2024 scheme

Gujarat Technological University

111 travaux pratiques pour le programme GTU.

Le B.E. Computer Engineering de la Gujarat Technological University sur le programme 2024, en C, Python, SQL, Java et web. Chaque séance est progressive, compilée et vérifiée par une véritable chaîne d'outils sur votre propre machine — le modèle relit votre code ensuite, il ne décide pas si vous avez réussi.

Mis à jour

Semestre par semestre

Formation : B.E. Computer Engineering (Branch 07). Régime : 2024 scheme (Sem 1-5); 2018 scheme (Sem 7). Ouvrez un cours pour voir ses unités pratiques et la séance de TP que GroutCode propose pour chacune.

  1. Semestre 1

    1 UE11 leçons de TPC
    • BE01R00121C

      Programming for Problem Solving

      11

      leçons

      • From flowchart to machine code — number systems, algorithms and a tiny compiler
      • Types and operators in C — conversions, logic and bit manipulation
      Voir les 11 leçons
      1. 1From flowchart to machine code — number systems, algorithms and a tiny compilerChapitre 1 · Introduction to Programming
      2. 2Types and operators in C — conversions, logic and bit manipulationChapitre 2 · Basics of C Programming
      3. 3Control flow in C — decisions, loops and a menu-driven calculatorChapitre 3 · Control Structures
      4. 4Functions and recursion in C — from factorial to the Towers of HanoiChapitre 4 · Functions and Modular Programming
      5. 5Arrays, matrices and strings in C — writing <string.h> yourselfChapitre 5 · Arrays and Strings
      6. 6Pointers in C — swapping, walking arrays and passing functionsChapitre 6 · Pointers
      7. 7Structures and unions — a student record system and a tagged valueChapitre 7 · Structures and Unions
      8. 8File handling in C — a small line-based text editorChapitre 8 · File Handling
      9. 9Dynamic memory in C — malloc, calloc, realloc and a growable arrayChapitre 9 · Dynamic Memory Allocation
      10. 10Debugging and testing in C — fix seven bugs, then build a test frameworkChapitre 10 · Debugging and Testing
      11. 11The PPS practical list in C: from arithmetic to linked queues, files and a debugging huntChapitre LAB · List of Practicals
  2. Semestre 3

    2 UE17 leçons de TPCSQL
    • BE03000081C

      Data Structures

      6

      leçons

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

      Database Management System

      11

      leçons

      • From a flat order file to a relational database with views and transactions
      • Relational algebra in SQL — selection, projection, joins, set operators and division
      Voir les 11 leçons
      1. 1From a flat order file to a relational database with views and transactionsChapitre 1 · Introductory concepts of DBMS
      2. 2Relational algebra in SQL — selection, projection, joins, set operators and divisionChapitre 2 · Relational Model
      3. 3SQL from DDL to transactions — constraints, functions, sub-queries and savepointsChapitre 3 · Introduction to SQL
      4. 4From an E-R Diagram to a Relational Schema: a College DatabaseChapitre 4 · Entity-Relationship Model
      5. 5Functional Dependencies and Normalization in SQLChapitre 5 · Relational Database Design
      6. 6Transactions, Serializability, Locking and Recovery in SQLiteChapitre 6 · Transaction Management
      7. 7Query Cost, Size Estimates and a Self-Maintaining Materialized ViewChapitre 7 · Query Processing & Optimization
      8. 8Database Security: Views, RBAC, DAC Grants, MAC and Intrusion DetectionChapitre 8 · Database Security
      9. 9Indexes and hashing in SQLite — ordered, unique, composite, covering and partial indexes, B+-tree height, static and extChapitre 9 · Indexing and Hashing
      10. 10Triggers, procedures and cursors in SQLite — a bank ledger that enforces its own rulesChapitre 10 · PL/SQL Concepts
      11. 11DBMS practicals in SQLite — schema, DDL and DML, constraints, functions, grouping, subqueries, joins, transactions and tChapitre LAB · List of Practicals
  3. Semestre 4

    3 UE27 leçons de TPCJava
    • BE04000221C

      Operating System

      10

      leçons

      • 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
      Voir les 10 leçons
      1. 1Modelling operating systems — batch, multiprogramming, time sharing, system calls and real-time schedulingChapitre 1 · Introduction
      2. 2CPU schedulers and real processes — FCFS, SJF, SRTF, priority, round robin, fork, exec and waitChapitre 2 · Process and Threads Management
      3. 3Synchronization primitives from scratch: locks, semaphores, pipes, messages, signals and monitorsChapitre 3 · Concurrency & Synchronization
      4. 4IPC algorithms replayed: Peterson, producer-consumer, readers-writers and dining philosophersChapitre 4 · Inter Process Communication
      5. 5Deadlock toolkit: Banker's algorithm, detection and preventionChapitre 5 · Deadlock
      6. 6Memory manager simulator: allocation, paging and page replacementChapitre 6 · Memory Management
      7. 7Disk subsystem simulator: head scheduling, RAID and the disk cacheChapitre 7 · I/O Management & Disk Scheduling
      8. 8A Unix toolbox in C — permissions, paths and text filtersChapitre 8 · Unix/Linux Operating System
      9. 9A toy hypervisor — guest bytecode, trap-and-emulate and shadow pagingChapitre 9 · Virtualization Concepts
      10. 10OS lab practicals in C — the shell-script exercises, made checkableChapitre LAB · List of Practicals
    • BE04000231Java

      Object Oriented Programming

      8

      leçons

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

      Analysis and Design of Algorithms

      9

      leçons

      • Measuring algorithms — case analysis, asymptotic bounds and union-find
      • Sorting algorithms and their costs — from bubble sort to bucket sort
      Voir les 9 leçons
      1. 1Measuring algorithms — case analysis, asymptotic bounds and union-findChapitre 1 · Introduction and Analysis of Algorithm
      2. 2Sorting algorithms and their costs — from bubble sort to bucket sortChapitre 2 · Analysis of Sorting Algorithms
      3. 3Divide and conquer — from binary search to Strassen's matrix productChapitre 3 · Divide and Conquer
      4. 4Dynamic programming tables — binomials, change, knapsack, chains and subsequencesChapitre 4 · Dynamic Programming
      5. 5Greedy choices — making change, activities, knapsacks and job deadlinesChapitre 5 · Greedy Algorithm
      6. 6Graph algorithms on an adjacency matrix — traversal, ordering, components, spanning trees and shortest pathsChapitre 6 · Graph Algorithms
      7. 7Backtracking and branch and bound — queens, subsets, colourings, cycles, knapsack and TSPChapitre 7 · Backtracking and Branch and Bound
      8. 8NP-completeness in code — certificate verifiers, exhaustive search and polynomial reductionsChapitre 8 · Introduction to NP-Completeness
      9. 9The ADA practical list — sorting, searching, greedy, DP and backtracking in CChapitre LAB · Suggested Course Practical List
  4. Semestre 5

    4 UE34 leçons de TPPythonCNode.js
    • BE05000181Python

      Data Mining Techniques

      8

      leçons

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

      Python for Data Science

      8

      leçons

      • 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
      Voir les 8 leçons
      1. 1Python foundations: operators, collections, control flow, closures and the math/statistics/random modulesChapitre 1 · Introduction, Data Types, Operators, Decision making, Loops & Functions
      2. 2Files, CSV, binary records and a student database with safe error handlingChapitre 2 · Python File Handling and exception handling
      3. 3Descriptive statistics from scratch — centre, spread, location, shape and correlationChapitre 3 · Data Science and Descriptive Statistics
      4. 4Inside the data libraries — mini NumPy, SciPy, Pandas, Scikit-learn and Beautiful SoupChapitre 4 · Exploring Python libraries
      5. 5Probability distributions and a one-sample z-test, built from first principlesChapitre 5 · Probabilistic and Inferential Statistics
      6. 6A data-preparation toolkit — load, clean, reshape, aggregate, de-outlier and normalise a tableChapitre 6 · Data preparation
      7. 7A text plotting library: axes, ticks, histograms, line plots and subplotsChapitre 7 · Data Visualization
      8. 8Data-science lab toolkit: from raw CSV to a hypothesis testChapitre LAB · List of Practicals
    • BE05000261C

      System Software

      10

      leçons

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

      Web Application Development

      8

      leçons

      • 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
      Voir les 8 leçons
      1. 1Client-server by hand: URLs, HTTP messages, a static file server and a dynamic routerChapitre 1 · Introduction to Web Technologies
      2. 2What the browser computes: HTML generation, nesting checks, specificity, the box model, media queries, flexbox and the BChapitre 2 · HTML & CSS Fundamentals
      3. 3JavaScript from the ground up: data, a hand-built DOM with event bubbling, local storage, and promises over an injectedChapitre 3 · JavaScript Fundamentals
      4. 4HTTP from the wire up: query strings, raw requests and responses, and a CRUD API that speaks JSON and XMLChapitre 4 · APIs & HTTP Communication
      5. 5Express from scratch: routing, middleware, a books REST API, password hashing and JWT auth in plain NodeChapitre 5 · Backend Development with Node.js
      6. 6React from scratch: JSX elements, components, useState, keys, useEffect, a data-fetching hook and CORSChapitre 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 andChapitre 7 · Deployment & Modern Web Concepts
      8. 8Mini project: a Library Management System with form validation, a REST API, a fetch client and a dashboardChapitre LAB · List of Practicals
  5. Semestre 7

    2 UE22 leçons de TPCPython
    • 3170701C

      Compiler Design

      9

      leçons

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

      Artificial Intelligence

      13

      leçons

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

Le programme complet, soit 29 cours, est transcrit dans l'application, cours théoriques compris. Les séances sont rédigées à partir des codes de cours comportant des travaux pratiques, et la liste s'étoffe à chaque version.

GroutCode n'est ni affilié à Gujarat Technological University, ni approuvé par cet établissement. Les codes et intitulés de cours sont transcrits à partir des documents de programme publiés par l'établissement.

Comment se déroule un TP

Les mêmes cinq étapes pour chaque séance, dans chaque langage.

  1. 1

    Choisissez votre programme

    Sélectionnez votre université ou votre académie, puis le semestre ou la classe où vous êtes. La liste des cours reprend le référentiel officiel transcrit, pas une approximation.

  2. 2

    Ouvrez une séance de TP

    Chaque séance est un TP progressif rattaché à un cours précis, avec un fichier de départ que vous modifiez et un fichier de tests auquel vous ne touchez pas.

  3. 3

    Écrivez le code vous-même

    Le fichier de départ contient les signatures et les TODO. C'est à vous de les implémenter dans l'éditeur, dans le langage réellement utilisé par votre cours.

  4. 4

    Lancez les vérifications

    La chaîne d'outils compile et exécute les tests — de 8 à 15 sur l'ensemble de la séance, un par étape, pour que vous sachiez quelle modification a cassé quoi.

  5. 5

    Recevez la relecture

    Une fois les tests passés, le modèle lit votre implémentation et vous indique l'entrée qui la met en défaut. Il n'annonce jamais lui-même la réussite ou l'échec.

Pourquoi c'est le compilateur qui évalue, pas le modèle

La manière évidente de construire un outil de TP piloté par l'IA consiste à laisser le modèle lire le code de l'élève et dire s'il est correct. C'est aussi la manière de produire un outil auquel personne ne peut se fier. Un modèle vous dira que votre code fonctionne alors que le compilateur affirme le contraire, et vous recalera pour un style qui, ce jour-là, ne lui plaît pas.

Les deux rôles sont donc séparés :

  • Le modèle conçoit la séance, écrit le fichier de départ et les tests, puis — une fois les tests passés — lit ce que vous avez réellement écrit et vous indique l'entrée qui le met en défaut.
  • La chaîne d'outils décide si le code compile et si chaque étape passe. Ce verdict n'est pas négociable et le modèle ne le prononce jamais.

Et pourquoi des étapes plutôt qu'une seule grande tâche

Un TP de 40 à 60 minutes avec une unique exécution à la fin ne donne au débutant qu'un seul retour par heure, et ce retour arrive une fois toutes les décisions déjà prises. Chaque séance compte ici 8 à 15 étapes, chacune avec sa consigne et sa vérification, pour que vous découvriez quelle modification a cassé quoi pendant que vous vous en souvenez encore.

Questions fréquentes

GroutCode couvre-t-il le programme GTU 2024 scheme ?

Oui. GroutCode intègre le programme GTU 2024 scheme transcrit pour B.E. Computer Engineering (Branch 07) — soit 29 cours — avec 111 séances de TP rédigées et rattachées à des codes de cours précis. Le programme a été transcrit à partir des documents officiels, et la source ainsi que la somme de contrôle de chacun sont consignées dans l'application.

Quels langages utilisent les TP GTU ?

C (55 séances), Python (29 séances), SQL (11 séances), Java (8 séances), Node.js (8 séances). Le langage est défini par code de cours plutôt que deviné d'après l'intitulé, car une même matière est enseignée dans des langages différents selon les établissements.

L'IA fait-elle le TP à ma place ?

Non. Le fichier de départ contient les signatures et les TODO ; c'est à vous de les implémenter. C'est la chaîne d'outils — et non le modèle — qui décide si votre code compile et si chaque étape passe : l'IA ne peut donc pas vous annoncer que votre code fonctionne alors que le compilateur dit l'inverse. Ce qu'elle fait ensuite, c'est lire votre implémentation et pointer l'entrée qui la met en défaut.

Les TP fonctionnent-ils hors ligne ?

Les séances, le programme et l'exécuteur de tests sont embarqués dans l'application et s'exécutent en local : la boucle compilation-vérification fonctionne donc sans aucune connexion. L'étape de relecture finale fait appel à un modèle, qui peut être local ou bien dans le cloud avec votre propre clé.

Que dois-je avoir installé ?

GroutCode détecte les chaînes d'outils présentes sur votre machine et vous indique ce qui manque et comment y remédier. Il vous faut le compilateur ou l'interpréteur du langage utilisé par votre cours — un compilateur C, un JDK, Python, Node ou SQLite.

Faites vos TP GTU avec les vérifications intégrées

GroutCode est inclus dans chaque licence Grout Suite. Téléchargement gratuit pour Windows et macOS.

Télécharger GroutCode