Course overview

Introduction

I studied Cognitive Science for a master's degree at Osnabrück University (UOS); before, I finished my Bachelor's degree in the same subject. Additionally, I studied one semester abroad (winter term 2013/14) at Orta Doğu Teknik Üniversitesi (ODTÜ), with a focus on Computer Engineering. I also studied a few semesters in the Computer Science master's program at UOS. Some information about my studies and some work I did can be found on these pages.

13th semester, winter term 2017/2018

This semester I am only writing my master's thesis.

Master's Thesis

My thesis Gaze Tracking Using Common Webcams (pdf, approx. 12.5 MB) focuses on a software library to perform gaze tracking.

Abstract

Eye and gaze tracking have long been methods to study visual attention. Many devices for gaze tracking are expensive and require specific setup and calibration procedures. For many gaze tracking setups, it is even mandatory to use multiple computers, for showing stimuli and for tracking gaze, respectively.

Today, modern laptops are equipped with enough processing power to process a video stream live. Additionally, many laptops come with a built-in webcam for teleconferencing and video chats. In this thesis, the possibility of performing gaze tracking using a calibration free, feature-based approach on laptops using built-in webcams is explored. To try the model, the free and open source software library Gaze is implemented and evaluated.

It is shown that Gaze reaches very good eye tracking capabilities and manages to be easily usable and extendable. Its gaze tracking abilities are still to be improved, but because of its modular structure existing solutions like pre-trained neural networks can be integrated to leverage their strengths.

12th semester, summer term 2017

Due to the preparation and teaching of Basic Programming in Python, I cut some classes I wanted to take myself, ending up with a only selection of interdisciplinary courses.

Courses

(Teaching) Basic Programming in Python (Course material and recordings)
An introduction to programming using Python and some basic computer science concepts, like e.g. sorting, or finite state machines.
ANNs for depth estimation, 3D reconstruction and 3D printing (final project)
A mixed seminar with lab sessions, paper discussions and introductions to distributed computing for artificial neural networks. In our final project we focused on Distributed TensorFlow using the SunGridEngine.
Word learning: From sound to meaning
How do children learn language? How can arbitrary sounds be separated into meaningful tokens? What are good models to predict word learning? Is there a way to solve the inference problem (is "dog" a term for one specific dog or for all?)
Conceptual Spaces – Applications and Learning
An introduction to Gärdenfors framework of conceptual spaces, discussing state of the art research.

11th semester, winter term 2016/2017

Focusing on finishing my Computational Linguistics module.

Courses

Construction Grammar
Construction Grammars (CxG) are still a novel concept in Linguistics, although its beginnings were in the 90s already. During this class several advantages and issues of CxGs were discussed and applied.
I know what you are looking at! – Gaze Prediction (course work)
During this seminar different approaches about determining salient regions and thus being able to predict gazes have been evaluated and implemented.
Implementing ANNs with TensorFlow (final project)
While learning about different architectures of Artifical Neural Networks (ANNs) and their applications, this class also introduced practical implementations with TensorFlow. For our final project we plan to implement a genetic selection of different neural networks to learn playing a simple version of snake.
Introduction to analysis of linguistic data with R
During this class the programming language R is introduced by applying it to various statistical test procedures on linguistic data, e.g. the null hypothesis significance test or the t-test.
Language Evolution
A seminar open for Cognitive Science, Philosophy and Anglistics students which covers the history of language of evolution as well as modern theories. To understand language evolution, human language is compared to primate and other communication systems.
(Tutor) Computer Vision
Weekly homework and feedback sessions for small groups of students.

10th semester, summer term 2016

My first semester back in the Cognitive Science program.

Courses

Advanced Computer Vision
Seminar discussing modern approaches in Computer Vision. In each session we discussed a chapter from Moeslund, Hilton, Krüger, and Sigal: Visual Analysis of Humans, Springer, 2011.
Cognitive Modeling in Linguistics
Course introducing working with ACT-R. By working through the tutorials and reading and summarizing the related papers we learned how to model cognition in a cognitive framework like ACT-R.
Mental Causation
A philosophy class dealing mostly with Kim's views about mental causation and arguments for or against it.
(Tutor) Machine Learning (homework and solutions)
Weekly homework and feedback sessions for small groups of students. Additionally we also posted most of the homework exercises.

9th semester, winter term 2015/2016

Courses

Robotics and Artifical Intelligence
Seminar (more like a reading club) with a strong focus on state of the art papers about semantic mapping. We mostly discussed conference papers (e.g. IROS) but also a few journal papers.
Cryptographic Procedures
An introductory course to cryptography: from simple ciphers to complex protocols.
Project Group: Smart Act (course website)
Uncertainty handling in autonomous machines. The second part of the project group focuses on autonomous trajectory following with trust management to overcome noisy sensor data.
(Tutor) Computer Vision (some unofficial example solutions)
Weekly homework and feedback sessions for small groups of students.

8th semester, summer term 2015

Due to an internship starting in early July I am not able to write exams, thus most courses are not listed here as I officially will not pass them. I still joined a project group which lasts for two terms.

Courses

Project Group: Smart Act (course website)
Uncertainty handling in autonomous machines. First part of the project was to have an autonomous vehicle with a trailer to learn to park backwards.

7th semester, winter term 2014/2015

First semester of my master's program. I continue my studies in Osnabrück.

Courses

Social Data Mining
An introductory course to Big Data analysis. Over the semester we had to analyze about 3 GB of twitter data for events, bots and sentiments around the FIFA WorldCup 2014.
Introduction to Technical Computer Science
An overview from logic gates and boolean algebra over circuit design and automaton theory through programming micro processors. Dealt also with ISA, interfacing, cost efficient design, and other relevant topics.
E-Learning
An introduction to different views on learning, e-learning and e-learning tools, platforms and standards. In-depth analysis of MOOCs: After trying some MOOCs, a small (M)OOC had to be designed and created.

6th semester, summer term 2014

Back in Osnabrück. Focus on final courses and bachelor's thesis.

Bachelor's Thesis

My thesis Probabilistic Robot Localization in Continuous 3D Maps (pdf, approx. 1.02 MB) tries to improve the common AMCL approach by expanding it into higher dimensions.

Abstract

Robot localization in known environments is an important topic, especially in the field of mobile robotics. Whenever a robot is turned on or relocated, it has to (re)locate itself in its environment. Several approaches exist for robots to find their three-dimensional pose in two dimensional raster maps. A popular algorithm for the localization task is the Augmented Monte Carlo Localization (AMCL) which is described in details by Thrun et. al. [TBF05]. A localization is successful when the robot found its current three dimensional pose, that is its two dimensional position and its one dimensional orientation.

Mobile robots have to work not only in two, but also in three dimensional environments. This means they can have six dimensional poses because their position consists of three dimensions and so does their orientation. In this thesis I will derive an algorithm based on AMCL to solve the localization problem in such three dimensional environments and find the six dimensional pose. Therefor I will no longer use raster maps but polygon meshes as continuous maps. For the sensor model I will use a ray tracer, which simulates sensor data comparable to real world distance sensors like laser scanners or depth cameras.

After deriving the algorithm and running some simulations with it, I will take a look out about how the algorithm can be developed further.

Courses

Probabilistic Modeling of Perception and Cognition (page)
This course mainly deals with probability theory, taking a Bayesian approach where probabilities are seen as a measurement of beliefs rather than relative frequencies. The course focuses on explaining the math, why it is the same for both approaches and when which approach should be applied – and why.
Computer Science D: Introduction to Theoretical Computer Science
Introduction to formal languages and finite-state machines, how to solve problems with those tools and other things related to theoretical computer science, e.g. Big O notation. The second half dealt with computational complexity: NP-completeness, computationalibity, etc.
Introduction to David Hume's Theoretical Philosophy
In this philosophy seminar we read "An Enquiry concerning Human Understanding" by David Hume and analysed its main arguments up to Hume's critique on religion.
Theory of Concepts
A philosophy seminar focusing on the questions: "What are concepts?", "How do we construct complex concepts?", "What are concepts for natural kinds?" and others.

5th semester, winter term 2013/2014

Semester abroad at Middle East Technical University in Ankara, Turkey (Erasmus program). Focus on topics in computer engineering.

Courses

ceng352 – Database Management Systems (page)
This course focuses on designing databases according to the ER model and improving database designs by applying normal forms. It also focused on query processing and optimization. Furthermore it dealt with ACID properties, especially with protocols to assure isolation (2PL, Timestamp ordering, ...) and crash recovery (ARIES).
The final practical project asked to design a database application for a fictional company.
ceng520 – Computer Networks and Communication
This course dealt with different layers of network communication and their corresponding protocols.
ceng786 – Robot Motion Planning and Control (page, course website)
The topics of Robot Motion Planning and Control include basic and advanced methods for robot navigation like bug algorithms, potential fields, or probabilistic planning algorithms. We discuss the mathematical backgrounds and real applications by modeling robots and their worlds as systems of differential equations and solving them.
The homework required further work in specific areas to deepen the understanding in certain areas like potential fields or probabilistic planning.
ceng786 – Computer Animation
Computer Animation dealt with topics like keyframing, interpolation (e.g. via splines), animation techniques (from stop motion to real time renderings), motion capture techniques, cloth rendering, deformation, different types of physical systems and much more.
The homework were usually to write 3D-applications to show/solve problems discussed in class.

4th semester, summer term 2013

Courses

Structure of interactive 3D-Engines (course website)
A course about the components of modern 3D engines: event queue management, scene graph, views, input handlers, scripting and other things. Mostly based on the book Game Coding Complete.
The main focus was to learn how the components work together and how to use the engine efficiently.
Parallel Algorithms with OpenCL (course website)
Introduction to parallel programming and some basic algorithms like radix-sort, scan and similar ones. Final project with focus on shared buffers between OpenGL and OpenCL.
Computer Science B: Basics of Software-Development (course website)
Introduction to common design patterns, threading, Java API.
Introduction to the Philosophy of Mind
Overview over the history of the philosophy of mind, from Plato's cave over "Cogito, ergo sum." and other ideas to modern questions (freedom of will/determinism, real AI, brain states, ...).

3rd semester, winter term 2012/2013

Courses

Neuroinformatics
Probabilistic methods to model neuronal activity. The main focus of the course was regression and tests for fitness.
Computer Vision
This course focused on image processing with certain filter kernels, kernel design, image enhancements, segmentation and labeling, feature extraction (e.g. SIFT, canny edges, ...) and similar topics.
Methods of Artificial Intelligence
More advanced topics in AI: among others were different calculi, NP completeness, semantic gap, search problems, constraints, and heuristic approaches.
The term project focused on general gameplaying: not only a game had to be defined, also a general gameplayer who could deal with any game.
Robotics (course website)
Navigation with mobile robots (like KURT). The course led from methods like bug algorithms and simple laser scans to SLAM algorithms. A huge focus was on sensor data evaluation and cleanup with e.g. closest point matching algorithms and the kalman filter.
Statistics and Data Analysis I
Introduction to different statistical techniques: Experimental design, evaluation of results, common mistakes, false-positives, types of statistics, types of variables and values.
The Programming Language C++ (course website)
Introduction to C and C++ programming. Contents included pointer-arithmetic, memory allocation, language properties, std-libraries. Also an overview over common libraries like STL/boost/freeglut was part of the course.
MATLAB in Cognitive Science
A small introductory course into scripting with MATLAB with a focus on vectorization.

2nd semester, summer term 2012

Courses

Computer Graphics (course website)
Introduction to mathematics of computer graphics (affine transformations, model/view/projection, ...), usage of OpenGL's programmable pipeline (VS and FS) with the modern VBO approach.
Computer Graphics Practical Course (course website)
Usage of the methods learned in Computer Graphics in small groups working together on a terrain rendering. Introduction to deferred shading.
Focus for my group was fluid rendering, the results can be found online (German).
Agile Web Development with Ruby on Rails (course website)
Different development strategies like test-driven development. Also covered antipatterns and code refactoring, basics of databases, HTTP protocol and other web-related technologies. Ruby on Rails was presented as a framework to handle the complex problems of a web application within an easy framework.
(More) Games, Mechanisms, Rationality and Decisions
Seminar about game theory: backwards induction, reasoning. Famous problems like the prisoner's dilemma.
Sensory Physiology
Overview over functionality of eyes, nose, mouth.
Introduction to Artificial Intelligence and Logical Programming
Focus on introduction to PROLOG. Overview over AI topics like turing tests, knowledge representation, searches and NP completeness.
Introduction to Computational Linguistics
Overview over topics in syntax and semantics. Introduction to problems like universal grammar, ambiguity, formal languages, language acquisition, gardenpath effect, truth values, and similar topics concerning utterances.

1st semester, winter term 2011/2012

First semester of my Cognitive Science degree at Osnabrück University.

Courses

Introduction to Logic
Introduction to propositional and predicate logic and handling calculus proofs. Definition of valid- and soundness and also well-formed formulae.
Mathematics for Natural Sciences I
Detailed introduction to analysis and linear algebra. All materials are available online (German).
Introduction to Neurobiology
Overview over different nerve cells and their functions.
Computer Science A: Algorithms (course website)
First introduction to computer science, dealing with datastructures like heaps, stacks and lists and corresponding search or sort algorithms.
Cognitive Neuropsychology 1 & 2
A detailed introduction to different topics in neuropsychology: Learning, problem solving, language, attention. Additionally covered: research methods in neuropsychology (measurement, statistics,...)
Foundations of Cognitive Science
Overview over different research areas in Cognitive Science.