University College London

Reino Unido · 2026/27

University College London

51 prácticas de laboratorio para el temario de UCL.

El BSc y MEng Computer Science de UCL, de primero a cuarto: principios de programación, POO, algoritmos, compiladores y sistemas. Cada práctica está guiada paso a paso, se compila y se comprueba con una cadena de herramientas real en tu propio equipo: el modelo revisa tu código después, no decide si has aprobado.

Actualizado

Semestre a semestre

Programa: BSc / MEng Computer Science. Plan: 2026/27 module catalogue. Abre una asignatura para ver sus unidades prácticas y la práctica de laboratorio que GroutCode incluye para cada una.

  1. Year 1

    3 asignaturas13 prácticasCPythonJava
    • COMP0002CPython

      Principles of Programming

      4

      prácticas

      • From algorithms to a tiny compiler — gcd, primes, bases, a tokenizer and an expression evaluator
      • Imperative C from the ground up — control flow, types, scope, pointers, the heap and files
      Ver las 4 prácticas
      1. 1From algorithms to a tiny compiler — gcd, primes, bases, a tokenizer and an expression evaluatorUnidad I · Core Programming Concepts
      2. 2Imperative C from the ground up — control flow, types, scope, pointers, the heap and filesUnidad II · Introduction to Imperative Programming
      3. 3Functional programming in Python — cons lists, folds, composition, lazy streams and persistent treesUnidad III · Introduction to Functional Programming
      4. 4Small programs, designed well — binary search, a stack, a ring-buffer queue and a linked listUnidad IV · Program design in the small
    • COMP0004Java

      Object-Oriented Programming

      3

      prácticas

      • Object-oriented principles in Java — a small bank built from value objects, interfaces and encapsulation
      • Object-oriented design — a lending library with abstract classes, interfaces and a service layer
      Ver las 3 prácticas
      1. 1Object-oriented principles in Java — a small bank built from value objects, interfaces and encapsulationUnidad I · Object-Oriented Principles
      2. 2Object-oriented design — a lending library with abstract classes, interfaces and a service layerUnidad II · Object-Oriented Programming
      3. 3Data representation — growable list, linked stack, hash map and a CSV data setUnidad III · Data Representation
    • COMP0005Python

      Algorithms

      6

      prácticas

      • Analysing algorithms — counting, doubling experiments and growth orders
      • Abstract data types — stacks, queues, deques and a priority queue from scratch
      Ver las 6 prácticas
      1. 1Analysing algorithms — counting, doubling experiments and growth ordersUnidad I · Analysis of algorithms
      2. 2Abstract data types — stacks, queues, deques and a priority queue from scratchUnidad II · Abstract Data Types
      3. 3Sorting algorithms — from selection sort to 3-way quicksort and heapsortUnidad III · Sorting Algorithms
      4. 4Searching — binary search, an ordered BST and two hash tablesUnidad IV · Searching Algorithms
      5. 5Graph algorithms — BFS, components, topological sort, SCCs and shortest pathsUnidad V · Graphs Algorithms
      6. 6String processing — radix sorts, tries, KMP, Boyer-Moore, Rabin-Karp and HuffmanUnidad VI · String-processing Algorithms
  2. Year 2

    1 asignatura5 prácticasJava
    • COMP0010Java

      Software Engineering

      5

      prácticas

      • Object-oriented design principles — fixing ten broken designs
      • Design patterns — ten Gang of Four patterns, built and tested
      Ver las 5 prácticas
      1. 1Object-oriented design principles — fixing ten broken designsUnidad I · Object Oriented Design Principles
      2. 2Design patterns — ten Gang of Four patterns, built and testedUnidad II · Design Patterns
      3. 3A ports-and-adapters order system: domain core, adapters, events and a composition rootUnidad III · Software Architecture
      4. 4Build a unit-testing framework, then make tests that kill mutantsUnidad IV · Testing
      5. 5Refactor a legacy rental statement under a golden masterUnidad V · Tools and Processes
  3. Year 3

    3 asignaturas26 prácticasJavaCPython
    • COMP0012Java

      Compilers

      6

      prácticas

      • A hand-written lexer, then regular expressions to NFA to DFA
      • Recursive-descent parsing to ASTs, then FIRST/FOLLOW and a table-driven LL(1) parser
      Ver las 6 prácticas
      1. 1A hand-written lexer, then regular expressions to NFA to DFAUnidad I · Anatomy of a compiler and lexical analysis
      2. 2Recursive-descent parsing to ASTs, then FIRST/FOLLOW and a table-driven LL(1) parserUnidad II · Syntax analysis (parsing)
      3. 3Syntax-directed translation — a parser whose actions build the ASTUnidad III · Syntax-directed translation
      4. 4Semantic analysis — a scoped symbol table and a Visitor type checkerUnidad IV · Semantic analysis
      5. 5Three-address code — generating IR from a tree, and running itUnidad V · Intermediate code generation
      6. 6Code generation and optimisation — frames, basic blocks, IR passes and a peephole optimiserUnidad VI · Code generation and optimisation
    • COMP0019C

      Computer Systems

      9

      prácticas

      • Machine-level data — bits, two's complement, byte order, layout and the stack frame
      • Bug hunting with gdb — ten broken C functions, found with breakpoints, watchpoints and backtraces
      Ver las 9 prácticas
      1. 1Machine-level data — bits, two's complement, byte order, layout and the stack frameUnidad I · Machine-level representation of code and data
      2. 2Bug hunting with gdb — ten broken C functions, found with breakpoints, watchpoints and backtracesUnidad II · Debugging C with gdb
      3. 3Undefined behaviour in C — overflow-checked arithmetic, safe shifts, type punning and saturating castsUnidad III · Undefined behaviour
      4. 4Cache simulator — address splitting, LRU set-associative caches, write-back and the cost of loop orderUnidad IV · The memory hierarchy
      5. 5A linker in miniature — symbol resolution, archive order, section layout, relocations and PLT/GOT bindingUnidad V · Linking
      6. 6A model kernel — wait statuses, errno, signal sets, fork/exit/waitpid, signal delivery and job controlUnidad VI · Processes and exceptional control flow
      7. 7Virtual memory — page tables, a TLB and a heap allocator in CUnidad VII · Virtual memory
      8. 8System I/O — robust reads and writes, buffered lines, files and dup2Unidad VIII · System I/O
      9. 9Concurrent C — threads, locks, condition variables and deadlock-free transfersUnidad IX · Concurrent systems programming
    • COMP0023Python

      Networked Systems

      11

      prácticas

      • Information, error-control codes and compression — entropy to Hamming, CRC, Huffman and LZW
      • Sharing the wire — ALOHA, CDMA, Ethernet backoff, learning switches and spanning trees
      Ver las 11 prácticas
      1. 1Information, error-control codes and compression — entropy to Hamming, CRC, Huffman and LZWUnidad I · Introduction to Networking
      2. 2Sharing the wire — ALOHA, CDMA, Ethernet backoff, learning switches and spanning treesUnidad II · Medium Access Control and the Link Layer
      3. 3Reliable delivery over a lossy channel: checksums, stop-and-wait and Go-Back-NUnidad III · Achieving Reliability
      4. 4Selective Repeat, IP prefixes, NAT and a router's forwarding planeUnidad IV · Selective Repeat and Internetworking
      5. 5A DNS message codec, an iterative resolver and the end-to-end argument in numbersUnidad V · The Domain Name System
      6. 6Inside TCP: headers, the connection state machine, reassembly and retransmission timersUnidad VI · Reliable Transport and TCP
      7. 7TCP congestion control: slow start, AIMD, Reno fast recovery and fairnessUnidad VII · TCP and Congestion Control
      8. 8Intra-domain routing — Dijkstra link-state and Bellman-Ford distance-vectorUnidad VIII · Intra-Domain Routing
      9. 9Inter-domain routing — BGP path selection and Gao-Rexford policyUnidad IX · Inter-Domain Routing
      10. 10Wireless networks — link budgets, hidden terminals and the 802.11 DCFUnidad X · Wireless Networks
      11. 11Security and content delivery — firewall, IDS, HTTP caching and a CDN hash ringUnidad XI · Security and Content Delivery
  4. Year 4

    1 asignatura7 prácticasPython
    • COMP0089Python

      Reinforcement Learning

      7

      prácticas

      • Markov decision processes — returns, Bellman equations and the Student MDP
      • Planning by dynamic programming — policy evaluation, policy iteration and value iteration on a gridworld
      Ver las 7 prácticas
      1. 1Markov decision processes — returns, Bellman equations and the Student MDPUnidad I · Markov decision processes
      2. 2Planning by dynamic programming — policy evaluation, policy iteration and value iteration on a gridworldUnidad II · Planning by dynamic programming
      3. 3Model-free prediction and control — Monte Carlo, TD(λ), SARSA and Q-learning from raw episodesUnidad III · Model-free prediction and control
      4. 4Value function approximation — linear features, semi-gradient TD, LSTD and a replay-buffer DQNUnidad IV · Value function approximation
      5. 5Policy gradients and actor-critic — a softmax policy trained by REINFORCE and by its own criticUnidad V · Policy gradient methods, Actor-critic algorithms
      6. 6Integrating learning and planning — learned models, Dyna-Q and Monte Carlo tree searchUnidad VI · Integration of Learning and Planning
      7. 7Multi-armed bandits — epsilon-greedy, UCB, gradient and Thompson agentsUnidad VII · Exploration vs exploitation trade-offs

El temario completo de 34 asignaturas está transcrito en la aplicación, incluidas las asignaturas teóricas. Las prácticas están elaboradas siguiendo los códigos de asignatura que tienen trabajo de laboratorio, y la lista crece con cada versión.

GroutCode no está afiliado a University College London ni cuenta con su respaldo. Los códigos y nombres de las asignaturas se han transcrito de los documentos del plan publicados por la institución.

Cómo se hace una práctica

Los mismos cinco pasos en todas las prácticas y en todos los lenguajes.

  1. 1

    Elige tu temario

    Selecciona tu universidad o consejería y el semestre o curso en el que estás. La lista de asignaturas es el plan oficial transcrito, no una aproximación.

  2. 2

    Abre una práctica

    Cada práctica está guiada paso a paso para una asignatura concreta, con un archivo inicial que editas tú y un archivo de pruebas que no debes tocar.

  3. 3

    Escribe tú el código

    El archivo inicial trae las firmas y los TODO. Tú los implementas en el editor, en el lenguaje que se usa realmente en tu asignatura.

  4. 4

    Ejecuta las comprobaciones

    La cadena de herramientas compila y ejecuta las pruebas: entre 8 y 15 a lo largo de la práctica, una por paso, para que descubras qué cambio ha roto qué.

  5. 5

    Recibe la revisión

    Cuando las pruebas pasan, el modelo lee tu implementación y te dice con qué entrada se rompe. Nunca es él quien dicta el aprobado o el suspenso.

Por qué corrige el compilador y no el modelo

La forma obvia de construir una herramienta de laboratorio con IA es dejar que el modelo lea el código del estudiante y diga si es correcto. Es también la forma de acabar con una herramienta en la que nadie puede confiar. Un modelo te dirá que tu código funciona cuando el compilador dice lo contrario, y te suspenderá por un estilo que resulta que no le gusta.

Por eso los dos trabajos están separados:

  • El modelo diseña la práctica, escribe el archivo inicial y las pruebas y, una vez que las pruebas pasan, lee lo que has escrito de verdad y te dice con qué entrada se rompe.
  • La cadena de herramientas decide si compila y si cada paso pasa. Ese veredicto no se negocia y el modelo nunca lo emite.

Y por qué pasos en lugar de una única tarea grande

Una práctica de 40 a 60 minutos con un solo Run al final le da a alguien que empieza un bit de información por hora, y llega cuando ya ha tomado todas las decisiones. Aquí cada práctica tiene entre 8 y 15 pasos, cada uno con su propia instrucción y su propia comprobación, para que descubras qué cambio ha roto qué mientras todavía recuerdas haberlo hecho.

Preguntas frecuentes

¿GroutCode cubre el plan 2026/27 de UCL?

Sí. GroutCode incluye el plan 2026/27 de UCL transcrito para BSc / MEng Computer Science —34 asignaturas— con 51 prácticas de laboratorio elaboradas y asociadas a códigos de asignatura concretos. El temario se transcribió a partir de los documentos oficiales, y en la aplicación queda registrada la fuente y la suma de verificación de cada uno.

¿Qué lenguajes se usan en las prácticas de UCL?

Python (25 prácticas), Java (14 prácticas), C (12 prácticas). El lenguaje se fija por código de asignatura en lugar de deducirlo del título, porque la misma materia se imparte en lenguajes distintos según la institución.

¿La IA me hace la práctica directamente?

No. El archivo inicial trae las firmas y los TODO; los implementas tú. Es la cadena de herramientas, y no el modelo, la que decide si tu código compila y si cada paso pasa, de modo que la IA no puede decirte que tu código funciona cuando el compilador opina lo contrario. Lo que sí hace después es leer tu implementación y señalarte la entrada con la que se rompe.

¿Las prácticas funcionan sin conexión?

Las prácticas, el temario y el ejecutor de pruebas van incluidos en la aplicación y se ejecutan en local, así que el ciclo de compilar y comprobar funciona sin conexión. El paso final de revisión usa un modelo, que puede ser local o en la nube con tu propia clave.

¿Qué necesito tener instalado?

GroutCode detecta qué cadenas de herramientas hay en tu equipo y te indica qué falta y cómo solucionarlo. Necesitas el compilador o intérprete del lenguaje que use tu asignatura: un compilador de C, un JDK, Python, Node o SQLite.

Haz tus prácticas de UCL con las comprobaciones incluidas

GroutCode va incluido en todas las licencias de Grout Suite. Descarga gratuita para Windows y macOS.

Descargar GroutCode