My BSc computer science degree
Sebastian Simon edited this page May 8, 2023
·
2 revisions
I’m about to finish a bachelor’s degree in computer science at the Technische Universität Berlin. Here’s what I’ve learned in the courses:
Course | Type | Topics |
---|---|---|
Computer architecture | Mandatory | CPU design, FPU, Caches, Pipelining, Machine code, Assembly, MIPS |
Introduction to programming | Mandatory | C, Algorithm basics |
Computer science propaedeutic | Mandatory | Basics |
Formal languages and automatons | Mandatory | State machines, Propositional logic, Chomsky hierarchy |
Analysis I for engineers | Mandatory | Complex numbers, Convergence, Functions, Differentiation, Integration, Fourier analysis, Infinite series |
Systems programming | Mandatory | C, Processes, Threads, Scheduling, Parallelization, Mutexes, Memory |
Algorithms and data structures | Mandatory | Java, OOP, Graph theory, Dynamic programming |
Information systems and data analysis | Mandatory | SQL, ER diagrams, Relational database design, Relational algebra |
Computability and complexity | Mandatory | Turing machines, Decidability, Halting problem, Complexity classes (P vs. NP) |
Linear algebra for engineers | Mandatory | Vectors, Matrices, Linear mappings |
Computer networks and distributed systems | Mandatory | DNS, WWW, OSI layers, NTP, Pub–Sub |
Software techniques and programming paradigms | Mandatory | Requirements engineering, Correctness, Testing, Code quality, UML, Functional programming, Logical programming, Haskell, Prolog, C, Java |
Scientific computing | Mandatory | Python, Numerical analysis, Numerical approximation and error, Regression, SVD, Interpolation, DFT, FFT, Optimization |
Logic | Mandatory | Predicate logic, Normalization, Resolution, Satisfiability problem, Sequent calculus, Models and structures, Finite games |
Discrete structures | Mandatory | Combinatorics, Principle of inclusion and exclusion, Permutations, Partitioning, Recursion, Number theory, Modular arithmetic, Graph theory |
Stochastics for computer science | Mandatory | Probability theory, Random variables, Distributions, Markov chains, Central limit theorem, Hypothesis tests |
Information governance | Mandatory | Scientific and technical writing, Big Data, eCommerce, Privacy |
Digital systems | ⭐ Elective-compulsory | Boolean algebra, CMOS, Logic gates, Number encoding, Circuits |
Programming practical coutse: cyber-physical systems | ⭐ Elective-compulsory | JavaScript, HTML, CSS, Client and server, Node.js, Express.js, Teamwork |
Principles of algorithmics | ⭐ Elective-compulsory | Algorithmics |
Web technologies | ⭐ Elective-compulsory | HTML, CSS, JavaScript, jQuery, Bootstrap, Node.js, Express.js, Client–Server, SPA |
Cognitive algorithms | ⭐ Elective-compulsory | Machine learning, Gradients, Perceptron, NNs, PCA, OLS, KPCA, LDA, MLP |
Python for machine learning | ⭐ Elective-compulsory | Python, machine learning, Numpy, MatPlotLib, Linear algebra, Regression, Cython |
Principles of information security | ⭐ Elective-compulsory | Social engineering, Information security management systems, authentication and authorization, CIA, Standards, PKIs |
Usability engineering | ⭐ Elective-compulsory | Quality engineering, Perception psychology, Human factors, Media systems, Audio and video quality, Video game network considerations, System design, Experiment design |
Database seminar: foundations of database systems | ⭐ Elective-compulsory | Query processing, Presenting, Scientific and technical writing, LaTeX, SQL, Data Warehousing, Transaction management, Parallelism in database systems |
Computer graphics | ⭐ Elective-compulsory | TypeScript, THREE.js, OpenGL, WebGL, GLSL, Perspective geometry and projection, Clipping and culling, Shading and ligting, Texturing, Rasterization, Ray casting, Radiosity, Color theory, Image encoding |
Bachelor’s thesis | ⭐ Elective-compulsory | DNS-based Authentication of Named Entities (DANE) TLSA, TLS, RSA, Security, DNS, DNSSEC, OpenSSL, Identity management |
LaTeX introduction | 🌟 Optional | LaTeX, Typesetting, Packages, Editors, Distributions, Compilation, Document structure |
Data science toolbox | 🌟 Optional | Java, Crawling, Machine learning basics, visualization |
Intellectual property law | 🌟 Optional | Copyright, Software distribution, Brands, Patents |