Books
Algorithms and Complexity Theory
Main
Regulament
Lectures:
3 Problems Challenge
Problems and Algorithms + Turing Machines
Computing
Multitape TMs + Universal TMs
Undecidable problems
Reductions
Undecidability Results
Computational resources
Complexity across computational models
"Hard?" problems
Polynomial-time reductions
P vs. NP
Hardness and completeness
Recurrence relations
The Master Method
Quicksort
Amortized Analysis
Algebraic Data Types
Structural Induction
Labs:
Math recap
Turing Machines
Computing
Reduceri
Mai multe reduceri
Notații asimptotice
Hard Problems
Polynomial-time reductions
Hardness and Completeness
Recurrence relations
Recurrence relations (part 2)
Amortized Analysis
Structural Induction
Formal Languages and Automata
LFA 2023-2024
Echipa
Regulament
Lectures
Proiect
Etapa 1
Etapa 2
Labs
1. DFA intro
2. Programming introduction - Python
3. Regular Expressions
4. Regex Representation in Python
5. Regex to NFA to DFA conversions
6. DFA Minimisation
7. Closure properties
8. Pumping lemma
9. Push Down Automata
10. Context-Free Grammars
11. Closure properties for Context-Free Languages
Programming Paradigms
PP 2023-2024
Team
Rules
Plagiarism
Resurse
Scala Environment
Scala Cheatsheet
Haskell Environment
Ghid de utilizare Hoogle
Haskell Cheatsheet
Labs
L01: Recursion
L02: Higher-order functions
L03: Algebraic Datatype Definition
L04: Lists in Scala
L05: Data types in Scala
L06: For expressions
L07: Lambda Calculus
L08: Intro to Haskell
L09: Lazy Evaluation
L10: Functors & Monads
L11: Classes, Applicatives and More Monads
Homeworks
Homework 1
Homework 2
Homework 3
Functional Programming
Functional Programming 2024
Team
Rules
Plagiarism
Lecture notes
TBA
Labs
Lab 01: Scala IDEs
Lab 02: Recursion
Lab 03: Higher-order functions
Lab 04: Type definitions
Lab 05: Functional vs OO decomposition
Lab 06: List applications
Lab 07: Matrices
Homework
Submission Guidelines
Homework 1: Sets as functions
Homework 2: Sets as trees
Homework 3: Five-in-a-row