Master’s Degree Courses
Applications of Artificial IntelligenceCategorize a given real-world problem and know which AI methods are appropriate
- Standard concepts for defining the problem situation
- Get a broad overview over AI methods
Know existing tools which implement AI methods
- Exercises with different toolkits
- Know how to avoid pitfalls
Big Data InfrastructuresStudy new principles of data management
– Data properties, data independence, scale-out, etc.
Study key DBMS design issues
– Transactions, parallel data processing, etc.
– Consistency, Availability, network Partition
Hands on some current, hot Big Data topics
– Get exposed to recent trends / technologies / start-ups
Technologies used; PostgreSQL, HDFS, HBase, ArangoDB, Map Reduce, Spark and Streaming
Compiler ConstructionOn successful completion of this course, you will be able to:
- Distinguish formal and practical properties of different approaches to parsing
- Understand and implement various techniques to parse source code
- Implement a basic compiler
- Use visitors to process an abstract syntax tree (AST)
- Transform an AST to intermediate representation (IR)
- Perform peephole optimization on the IR
- Generate target code (eg Java bytecode) from IR
Technologies used; Java 8, JavaCC, and Eclipse
Concurrency: State Models and Design PatternsIntroduce basic concepts of concurrency
— safety, liveness, fairness
Present tools for reasoning about concurrency
— LTS, Petri nets
Learn the best practice programming techniques
— idioms and patterns
Get experience with the techniques
— lab sessions
Technologies used; Java 8 and Eclipse
- Evaluate concepts and prototypes
- Develop graphical and interactive applications
- Understand the different components of a game engine and new methods
- Include in your design commonly used algorithms for videogames
- Team collaboration
Technologies used; Unity and C#
Machine Learning and Data MiningIntroduction to Machine Learning & Data Mining, Simple Rules, Bayes Learning, Decision Trees, Evaluation Methodology, Rules Models, Association Rules, Nearest Neighbors (NN, k-NN, minHash), Advanced Models, Combining Methods, Practical Exercises (WEKA), Another course on Statistical Learning Models (R)
Technologies used; Weka
Programming LanguagesOn successful completion of this course, you will be able to:
- distinguish the key programming paradigms and know how to apply them
- know how to program a stack machine
- understand different forms of polymorphism
- exercise basic skills in functional programming
- understand how the lambda calculus offers a basic semantic foundation for programming
- understand the role of static typing in object-oriented programming
- exercise basic skills in logic programming
Seminar: Data ScienceGather in-depth knowledge of an advanced topic/paper in data science: graph embedding.
Focus on one research paper/topic.
Learn how to critically read and study a research paper.
Describe a paper in a report, present it in front of an audience and empirically reevaluate the proposed techniques.
Able to read / interpret scientific papers
Go beyond a simple implementation
- Implement correctly a given algorithm
- Test it
- Understand its weakness
- Analysis its behaviour
- Evaluate its performance (comparative basis, statistical tests)
- Limit(s) of the proposed model
Different topics (articles) on the same data
Technologies used; Python and Jupyter Notebook
- Build an Eclipse plugin for static analysis, or
- Write a crawler that analyzes open source software repositories, or
- Create a new method of visualizing software systems, or
- Work on the design and implementation of programming language tools
Technologies used; Java, JavaParser, MySQL, SQL and NetBeans
Social Media AnalyticsThe main things we will learn in this course:
- To learn how to collect, represent and mine social media data.
- Hands-on knowledge of a toolbox of social graph algorithms.
- To find and analyze communities in social media networks.
- To understand relationships in real-world social media networks.
Technologies used; Python and PyCharm Edu
Software Modeling and AnalysisHow to:
- recognize the problems of legacy software
- use reflection and metaprogramming techniques
- extract software models from source code and other artifacts
- apply software metrics to detect quality problems
- visualize software to support program comprehension
- apply basic static and dynamic analysis techniques
Technologies used; Pharo