Skip to content

Latest commit

 

History

History
21 lines (19 loc) · 6.75 KB

bsc_classes.md

File metadata and controls

21 lines (19 loc) · 6.75 KB

This file covers classes taken during the last 2 years of my BSc.

Course Name Description Coursework
Advanced Operating Systems real-time task scheduling (periodic, aperiodic, sporadic), garbage collection, region-based memory, multi-core systems, message passing, gpu programming, virtualisation Class exercises in Rust and C
Advanced Programming threading, concurrency and memory management. Class exercises in Java and C
Algorithmics II geometric algorithms, AVL trees, graph algorithms (matching, network flow, residual), stable-matching algorithms, strings (suffix trees, longest common subsequence, regex), "hard" problems (NP-Complete, NP-hard, polynomial approximations) Class exercises in Python
Algorithmics I stacks, queues, binary trees, heaps, sorting algorithms, search algorithms, strings (compression and pattern-matching), graphs (representation, search and traversal), complexity analysis (P, NP, NP-Complete, NP-hard), finite state automata Class exercises in Java
Artificial Intelligence PEAS representation, audio and image processing, thresholding, probability and statistics, decision theory, supervised and unsupervised learning, regression Class project classifying speech in Python
Computer Vision Methods digital image formation, domain frequency analysis, filtering, edge detection, image segmentation, multi-resolution, Hough & Radon transform, video compression, optical flow estimation, object tracking, image classification Class exercies in Python
Constraint Programming constraint satisfcation problems, search backtracking, arc consistency, phase transition, parallel search, discrepancy search, heuristics Class exercises in Java
Database Systems relational databases, advanced SQL, query optimisation, embedded SQL, transactions, security, distributed DBs Class exercises in Java, PostgresSQL
Distributed Algorithms and Systems distributed system models, inter-process communication, remote procedure calls, distributed objects, time and global states, coordination agreements, load balancing, distributed file systems Class project to implement auction server in Java
Interactive Systems human perception, computer interaction paradigms, interface design and rules, exploratory data analysis (statistics, data design, visualisation) Class project of web frontend in Javascript, HTML, CSS
Machine Learning regression (linear, polynomial), cross-validation, maximum likelihood, classification (Bayes, logistic regression, KNN, SVM), unsupervised (K-means), performance analysis Class project to predict and correct touchscreen typing in Python
Networked Systems OSI Model, communications theory, low-level protocols and physical layers, data link layer, media access control (MAC), bridging, addressing, intra-domain and inter-domain routing, TCP, UDP, NAT, congestion control, security Class project of multi-threaded web server in C
Operating Systems OS structure (boot, kernels, system calls), processes (control blocks, scheduling, inter-process communication), threading (multicore, operations, race conditions, synchronisation methods), memory management (dynamic linking, address binding, swapping, segmentation) Class exercises in C
Professional Software Development software development cycles (waterfall, agile), project planning and metrics, software failure, requirements gathering, prototyping, acceptance testing, software patterns, refactoring, legacy systems Class project practicing software concepts in a team
Programming Languages typing, compilers, interpreters, abstract syntax trees, scoping, syntactic analysis, code generation, address allocation, generics, run-time code generation, native code generation Class project to write own programming language
Safety Critical Systems designing safe systems, risk analysis, safety evaluation techniques, redundancy, human error Class case studies