bild
Skolan för
elektroteknik
och datavetenskap

Sidan är under uppdatering.

Essay Project Proposals

Themes: Security, protocols and systems, database systems, programming languages, language technology, artificial intelligence, algorithms, computer graphics, simulation, speech and music


Security


Title: Security Monitoring

Theme: Security

Subject: Security monitoring is a technique used to enforce security policies, for instance for access control. A very general and flexible approach to security monitoring uses automata to represent security policies. For instance, a security automaton with two states *unchecked* and *checked* can be used to define the policy that boarding of an aircraft should be allowed only after check in has been properly completed.

In an ongoing EU project HATS (www.hats-project.org) we are exploring the use of security automata and automata inlining for multithreaded Java and a prototype inliner has been developed. A lot of open ends are left, however, which may be suitable for small student projects.

Possible essay projects:

  • Study the HATS inlining tool, test and fix some bugs, propose and implement some minor extension such as a new data type, or adapt to a new application by adding new API calls
  • Examine the ConSpec policy format and study how suitable it is to define security policies for some interesting Java applications of your choice. Does it contribute anything to WebGoat, for instance?
  • Propose some simple language extensions to make ConSpec more usable in practice. Or, study background information on web application security (see e.g. owasp.org) to perform a preliminary evaluation of how suitable security automata are to protect against a range of common web application attacks

References:

  • http://www.csc.kth.se/~landreas/inlining/
  • Papers on inlining available from http://www.csc.kth.se/~mfd

Contact: Get in touch with Mads or PhD student Andreas Lundblad in the theory corridor if you are interested in this line of work.

Supervisor: Mads Dam

Top


Title: Multilevel secure programming

Theme: Security

Subject: Many programs need to process data with different security requirements. A webshop, for instance, may need to process data on behalf of customers, payment receivers, and suppliers, with different requirements regarding confidentiality and integrity. In multilevel security data is assigned security levels in some security lattice, and a multilevel secure program must respect this lattice such that data e.g. at a high confidentility level cannot be read by agents at level "public". Several prototype languages such as FlowCAML and JIF have been developed over the recent years to support multilevel secure programming using type systems. A project in the area of multilevel secure programming might experiment with such a language to try it out on a concrete application, or it might document or compare some approaches to multilevel security in the literature.

Possible essay projects:

  • Develop a simple multilevel secure application using JIF or FlowCAML
  • Try to break JIF or FlowCAML by producing typesafe programs which violate the intended security policies
  • Reproduce some recent work on multilevel secure programming such as [DP-10] below and consider its potentials and limitations

References:

  • JIF: http://www.cs.cornell.edu/jif/
  • FlowCAML: http://www.normalesup.org/~simonet/soft/flowcaml/
  • Dominique Devriese, Frank Piessens: Noninterference through Secure Multi-execution. IEEE Symposium on Security and Privacy 2010: 109-124

Contact: Seeral researchers in the theory group is currently active in this research area. Talk to a member of {Mads,Gurvan le Guernic,Musard Balliu} if you are interested in joining this work.

Supervisor: Mads Dam

Top


Title: Proof of work

Theme: Security

Subject: One way to try to avoid DOS attacks, brute force attacks or having someone use a mail server for mass email (SPAM) is to use a proof of work protocol. Essentially it involves the server not processing a client request right away. Instead it sends a puzzle to the client and the client needs to return a solution before the request is processed. The idea is that checking the solution should be much simpler than solving the problem, thereby limiting the rate at which the server would process requests from the client while not overloading the server with the task of checking solutions.

Study, present and implement a proof of work protocol. Explain assumptions and examine performance.

References:

Supervisor: Mikael Goldmann

Top


Title: Secure multiparty computation

Theme: Security

Subject: In the design of secure cryptographic protocols, one important aspect is to define what it would mean for the protocol to be secure — without a definition of security, it is of course impossible to prove that a protocol is secure. The notion of an ideal functionality can be intuitively described by an example. Consider the fallowing sealed bid auction: There is a trusted person to whom all others can send a bid over a secure channel. Once the auction is over the winner is the one who handed in the highest bid, and that person pays the value of the second highest bid. The trusted person announces the winner and the value of the second highest bid amd the bidders do not learn anything else about the other bids. This would be our ideal functionality.

Now, let us say that we want to remove the trusted person and instead use cryptography. We then want to prove that the cryptographic protocol behaves the same as the ideal functionality, i.e., that (for all practical purposes) the outcome is the same and the information leaked to the participants is the same.

There are a number of frameworks available for implementing secure multiplarty computation. Use one or two to implement some simple examples. Document your examples and the properties of the framework(s). If you look at more than one, then do a comparison on e.g., usability and efficiency.

References: Some frameworks

Supervisor: Mikael Goldmann

Top


Title: Net voting

Theme: Security

Subject: Most people agree that traditional ballot voting should be replaced by some form of net voting. The security issues have been deterrent so far, but now is the time to present an attractive solution. The goal of the project is to pinpoint the weak points and the fortes of different possibilities and to recommend the ultimate net voting system.

Project highlights:

  • Authentication issues and schemes.
  • Secrecy issues and schemes.
  • Ballot rigging issuses and counter-measures.
  • Extra features.
  • Design of an ultimate net voting system.
  • Programming a demo [if possible]

References:

  • Wikipedia. Voting system.

Supervisor: Henrik Eriksson

Top


Protocols and Systems


Title: System Virtualization

Theme: Protocols and systems

Subject: A hypervisor, or systems virtualizer, is a slim piece of systems software operating directly on top of processing hardware, allowing several guest systems to share a common physical processor. Virtualization is a key enabling technology for cloud computing, but it also is promising for embedded systems, for instance to provide memory separation between an (insecure) operating system implemented as one guest system and a set of security services as another guest system. In a research project currently running as a collaboration between SICS and the theory group at CSC we are developing a hypervisor for the ARM family of processors. In the context of this project it is possible to identify some interesting and challenging subjects that a suitable as essay projects. One topic might be to understand and document the design, and implement some benchmark tests together with the research student Oliver Schwarz at SICS currently responsible for the work. Interested students should get in touch with Mads.

References

  • H. Douglas, C. Gehrmann: Secure Virtualization and Multicore Platforms State-of-the-Art report, available at http://soda.swedish-ict.se/3800/

Supervisor: Mads Dam


Title: GPGPU APIs and architectures

Theme: Paralell programming

Subject: Using graphics cards and APIs, such as OpenCL and CUDA C, for general purpose programming, have in recent years become a cost-effective way to radically improve the performance of many commonly used algorithms. In some cases speed-ups of as much as 100 times have been reported relative to typical CPU implementations. The question is for what applications can you get such speed-ups. For which kind of problems are GPU architectures not at all suitable? Are there any fundamental differences between the GPU architectures from AMD and NVidia, that could explain observed differences in benchmarks?

Project ideas:

  • Study the similarities and differences between the GPU architectures of AMD and NVidia.
  • Identify problems suitable and not suitable for the respective architectures.
  • Implement and test a subset of such problems to validate your hypotheses.

References:

  • Lee et al, "Debunking the 100X GPU vs. CPU myth: an evaluation of throughput computing on CPU and GPU", SIGARCH, 2010.
  • NVIDIA CUDA Programming Guide
  • AMD Accelerated Parallel Processing (APP) SDK

Supervisor: Mårten Björkman

Top


Database Systems


Title: Building 3D Models of a City

Theme: Spatial Databases

Subject: The objective of this thesis is to explore different approaches to building 3D models of a city from readily available data sources. The inputs to the problem are: 1) a database of polygons (e.g. from OpenStreetMaps) that represent buildings over the region of interest; (2) height measurements (e.g. derived from LIDAR data) represented as a two dimensional array at a fixed granularity (e.g. every 50cm x 50cm cell) over the region of interest. The output of the problem is a 3D model of some sort that can readily be accessed by first person shooter type engines where building ids can easily be recovered. An additional interesting issue might be investigating how to obtain (or synthesize) textures for the faces of the 3D objects.

Preferably the student(s) will implement and evaluate a (partial) solution using real data for an area in Stockholm including the KTH campus. Alternatively the thesis might review various approaches to this problem taken by outside industrial or academic groups.

References:

Supervisor: Michael Minnock

Top


Title: Implementing A View for Visibility in PostGIS

Theme: Spatial Databases

Subject: Spatial Databases often contain polygons that represent objects such as buildings. Assuming only a 2D representation, how can we define a view for the visibility relationship. That is, given a user (at a known x,y coordinate), how can we define the view canSee(userId, buildingId)? Clearly there are multiple ways to solve this problem. You will define, explore and evaluate alternatives for PostGIS.

Time permitting, richer issues like determining the amount of visual angle a building occupies from the user's perspective could be implemented and evaluated. Also given height and elevation attributes for buildings, you could consider generalizing your solutions to 3D visibility determination.

Note that we could provide a database containing the polygons of the buildings in and around the KTH campus for benchmarking purposes.

References:

Supervisor: Michael Minnock

Top


Title: Generating Efficient SQL over Views in PostGIS

Theme: Databases

Subject: Modern databases give us a lot of power to define views. This is especially interesting in spatial databases where we can define views such as 'near to', 'left of', etc. In practice however, these views are not always accessed in the most efficient manner. In fact often the whole view will be needlessly materialized.

In many industrial cases this does not have much practical impact. Programmers experiment with EXPLAIN ANALYSE and design an approach that either spreads a complex query over a sequence of queries, or they write the query in such a way that forces order of evaluation via sub-queries.

Where this 'hand-crafted' approach breaks down, is when we automatically build SQL from logical expressions (e.g. Datalog). This thesis will explore aspects of this generating efficient SQL in such cases. The student(s) may focus their efforts through benchmarking query performance over the spatial database used in the SpaceBook project.

References:

Supervisor: Michael Minnock

Top


Programming Languages


Title: Software model checking using BLAST or SPIN

Theme: Programming languages

Subject: Model checking is based on the idea of automatically traversing a program execution graph to determine some desired property such as: Is there a way for program line 47 to be executed? Will execution eventually terminate? Does the equation x = y^2 - tmp always hold? Since these problems are generally undecidable, answers cannot be guaranteed, neither can they be guaranteed to be obtainable in reasonable time. Even so, with good engineering and using suitable abstractions, good results can nonetheless often be obtained. Examples of model checkers are BLAST, for C programs, and SPIN which is mainly applied to communications software or protocol modeling.

Project ideas:

The goal of an essay project on software model checking would be to learn a model checking tool such as BLAST or SPIN and apply it to a selected application. Many examples exist in the literature which can serve a suitable starting points. It would be possible, for instance, to start from a worked example and augment it step by step by adding some additional features. It is important to keep in mind that complexity often increases very quickly, so by adding features simplifications of the existing code/models will very often be needed. So small increments are highly recommended.

References:

  • SPIN: http://spinroot.com/spin/whatispin.html
  • BLAST: http://mtc.epfl.ch/software-tools/blast/index-epfl.php

Supervisor: Mads Dam

Top


Title: Call by contract and SPEC#

Theme: Programming languages

Subject: In the call-by-contract paradigm, methods, objects, and classes are equipped with contracts - formal assertions - that describe how they are expected to behave. For instance, methods may be equipped with pre- and postconditions to determine properties that should be established upon method entry, resp. exit. Much work has been been done to realize such contract-oriented programming frameworks over the past 10-15 years. A well-known example for Java is the Java Modeling Language, JML, for which a number of prototype tools have been developed. See the reference below. Another example is SPEC# which extends the C# programming language with contracts. A related project is Code Contracts, also at Microsoft Research, which uses Microsoft's common intermediate language format to support contracts in a more language-independent way.

Project ideas:

Projects can be defined based on one of the JML tools, SPEC#, or Code Contracts. Many other tools with similar functionality exists, including some developed here. A suitable project will be to select one of the above tools and learn it well enough to apply it to a selected application. Given the time available for the work, it is better to start from something modest and add complexity, than the other way around. One possible outcome for the ambitious might be to produce a lab suitable for a future advanced programming languages course.

References:

  • JML: http://www.eecs.ucf.edu/~leavens/JML/
  • SPEC#: http://research.microsoft.com/en-us/projects/specsharp/
  • Code contracts: http://research.microsoft.com/en-us/projects/contracts/default.aspx

Supervisor: Mads Dam

Top


Title: ABS -An experimental object-based programming language

Theme: Programming languages

Subject: ABS is an experimental object-based programming language at a level of abstraction somewhere between UML and Jav. ABS is being developed in the EU project HATS. The theory group is involved in several aspects of ABS language use, design, and implementation. Currently a language definition for a core part of ABS is available, along with prototype compilers and other tools. At KTH we are currently developing a compiler/virtualization layer for ABS with the goal of allowing programs execute efficiently on a highly dynamic network and dynamically adapt to changes in operating conditions. There are opportunities for defining a number of small projects of a size suitable for an essay project in the context of this work.

Possible essay projects:

  • Experiment with the language to e.g. implement some classic distributed algorithms in ABS. Execute the programs using the available ABS backends and examine traces to make sure the implementation is correct.
  • Write a code translator to enable a small fragment of ABS programs to execute as Erlang programs. Develop test cases to make sure execution is done in accordance with ABS semantics.

References:

Contact: Mads Dam or Karl Palmskog in the theory corridor

Supervisor: Mads Dam

Top


Title: Go, Erlang and F#

Theme: Programming languages

Subject: With the increasing multi core processor PC available today, functional languages has gained popularity. Go is a new language developed by old C/Unix designers with built in concurrency support (basically a unix pipe construct). Erlang (1982) is a revived programming language used by Ericcson, Klarna (online payment company) and others. Erlang has built in concurrency that also support scaling on several machines. F# was developed from ML, an old functional language, and is promoted by Microsoft on the .NET platform.

Essay project proposal:

  • Implement a small number of functional and concurrent programs in the above mentioned languages. Identify possible unique selling points. Do a comparison with java (a language all D-students are trained in). Form an opinion about each language and argue it in your thesis.

References:

Supervisor: Alexander Baltatzis

Top


Language Technology


Title: Linguistic steganography

Theme: Language technology

Subject: Steganography is the technique of hiding secret messages. For instance, if one writes a message with lemon juice on a piece of paper, the paper looks blank until it is heated, when the message magically re-appears. Another example is the technique (used during the second world war) of shrinking a text to a tiny dot, and then hiding the dot on top of a full stop in an innocuous letter.

A recent twist of the same idea is linguistic steganography, where secret machine-readable data is encoded as a seemingly innocuous natural-language text. This can be done either by generating the natural-language text from scratch in such a way that it encodes the secret message, or alternatively by modifying an existing text. In the latter case, the encoding is made by making cleverly substituting sentences, words or characters in the original text.

Possible essay project:

  • Design and describe a method of generating steganograms of secret messages. Preferably, the steganograms should look like realistic texts, e.g. spam mails, or news items one might find in "Metro" or "Aftonbladet".

References:

  • Towards linguistic steganography: A systematic investigation of approaches, systems and issues. http://richard.bergmair.eu/pub/towlingsteg-rep-inoff-b5.pdf

Supervisor: Johan Boye

Top


Title: Program plagiarism detection

Theme: Language Technology

Subject: At KTH CSC we use a tool to try to detect similarities between students' solutions to programming assignments. The toold was originally developed for Pascal and has worked pretty well, as far as can be determined. This is partly due to Pascal's requirement that a procedure or function is declared prior to being called which enforces a certain structure on a lot of programs -- procedures and functions cannot be put in arbitrary order. Languages like Java and python give you more freedom to rearrange classes and methods in a file which may make it easier to fool the tool. The topic is to investigate the effectiveness of the old tool and consider and test some hopefully better method of detecting plagiarised code. On possible approach is to compute a call graph from the source code of two solutions and examine if the graphs are similar.

Supervisor: Johan Boye

Top


Title: Automatic classification of opinions

Theme: Language technology

Subject: Many companies worry about their public image. Therefore it is of great interest to be able to automatically sift through blogs and articles and count the number of occurrences where the a certain product is mentioned in a positive way, and compare it to the number of times it is mentioned in a negative way. It order to do this rapidly and to a low cost, it would be preferable to use a simple classification method, provided it gives sufficiently accurate results. One possibility is to use a "bag-of-words" approach, i.e. only take into account which words occur in the text, not their grammatical relations.

Possible essay project:

  • Use Weka or some other open-source machine learning toolkit to build a bag-of-words classifier for movie reviews, wine reviews or something similar. Each review in the training set could be classified with "positive", "negative", or "neutral". Try out various machine learning methods and see which one works best.

References:

  • I. Witten and E. Frank. Data Mining, 2nd edition. Elsevier, 2005.
  • Weka toolkit at http://www.cs.waikato.ac.nz/ml/weka/

Supervisor: Johan Boye

Top


Artificial Intelligence


Title: Automatic Wordfeud / Scrabble player

Theme: Language technology / Artificial intelligence

Subject: The objective is to implement and evaluate different strategies for playing the immensely popular Wordfeud (Scrabble) game. For instance, a straightforward greedy strategy would always choose the move which gives the maximum number of points, whereas a more sophisticated strategy would also consider the possible responses of the opponent. (A good move gives many points but also limits the opponent's possibilities of making a good move in return). Such a sophisticated strategy would necessarily take into account which tiles have already been used, as well as the probabilities of the opponent being in possession of certain tiles. Different strategies can be evaluated by letting them play many games against each other.

References:

  • Wordfeud rules: (link)
  • Den stora svenska ordlistan: (link)

Supervisor: Johan Boye

Top


Title: 'Sims' for Pedestrian Behavior

Theme: Artificial intelligence

Subject: We are all familiar with the game, 'The Sims'. In this thesis you will explore building a simulation of a pedestrian walking around Stockholm. You will be given a spatial database that has buildings, streets, museums, etc. (obtained from OpenStreetsMaps). The pedestrian will have a mental model of what they are interested in, what they know about the city, etc. This will result in the simulated pedestrian embarking on a tour around the city. You will build a more or less complicated simulator using whatever algorithm you wish.

Now what can you say about the resulting behavior? Is it human like or not? Is it possible for you to generate walking paths that are indistinguishable from real human walking paths? If you instantiate your simulator under two alternative parameter settings, how could you determine that one parameter setting produced more 'human like' behavior than the other. What are the wider implications for AI research if we succeed in generating convincing simulated behavior?

Supervisor: Michael Minnock

Top


Title: Grounding Language in Perception

Theme: Machine Learning

Subject: Quoting Jeffery Siskind:

Suppose that you were a child. And suppose that you heard the utterance 'John walked to school'. And suppose that when hearing this utterance, you saw John walk to school. And suppose, following Jackendoff (1983), that upon seeing John walk to school, your perceptual faculty could produce the expression GO(John, TO(school)) to represent that event. And further suppose that you would entertain this expression as the meaning of the utterance that you just heard. At birth, you could not have known the meanings of the words 'John', 'walked', 'to', and 'school', for such information is specific to English. Yet, in the process of learning English, you come to possess a mental lexicon that maps the words 'John', 'walked', 'to', and 'school' to representations like 'John', 'GO(x,y)', 'TO(x)', and 'school', respectively. This paper explores one way that this might be done.

In this thesis, you are to replicate (some variant of) Siskind's experiment and comment on its suitability for practical application.

References:

Supervisor: Michael Minnock

Top


Algorithms and Problems


Title: Multi-skill call centers

Theme: Problem solving

Subject: Modern call centers often handle a large variety of calls. When a customer calls, he is first asked to give information concerning his reason for calling. This is usually made either via a push-button interface, or an interface that employs automatic speech recognition. Once the type of the call has been identified, the call is routed to a queue serviced by dedicated service agents.

On the other hand, many service agents have multiple skills and are capable of handling more than one type of call. Thus, in general the relation between call types and service agents is a many-to-many relation (i.e. calls of a given type can be handled by several different agents, and a given agent can handle serveral different call types).

Due to the ever-increasing proliferation of such multi-skill call centers, their organisation and properties has become an active research area. Two of the problems studied by computer scientists and mathematicians is the staffing an routing problems:

  • How many agents are needed, given quality constraints such as "The expected queue time must not exceed 20 seconds" or "The probability that a customer must wait for more than 1 minute must be smaller than 1%"?
  • How many skills, and what combination of skills, should the different agents have?
  • How should calls be routed in order to minimize waiting times for customers, and to minimize the time service agents are idle?

Possible essay project:

  • Survey and describe the state-of-the-art in this active research field, in particular with respect to the staffing and routing problems.

References:

  • G. Koole. Call center mathematics. http://www.cs.vu.nl/~koole/ccmath/book.pdf
  • Koole, G and Pot, A. (2008) An overview of routing and staffing algorithms in multi-skill customer contact centers. http://www.cs.vu.nl/~koole/articles/report06a/art.pdf
  • Wallace R. and Whitt W. (2005) A staffing algorithm for call centers with skill-based routing. Manufacturing and service operations management, Vol 7, issue 4, 276-294. http://pages.stern.nyu.edu/~gjanakir/WhittPaper.pdf

Supervisor: Johan Boye

Top


Title: Analysis of voting algorithms

Theme: Algorithms

Subject: Parliament seats are to be divided proportionally to the parties, but also proportionally over Sweden. Many algorithms exist for optimizing the solution to this problem and different countries employ very different algorithms. A rational choice is possible only when the outcome of the competing algorithms has been computed for many political situations. The goal of the project is to program two or three algorithms and study their behaviour in different situations. Parameter tweaking is particularly interesting.

Project highlights:

  • Pseudocoding existing and proposed voting algorithms for Sweden.
  • Implementing the algorithms.
  • Testing, debugging and comparison with real outcomes.
  • Construction of critical test cases.
  • Running tests and tweaking parameters.
  • Conclusions and recommendations.

References:

  • Wikipedia. Voting system.
  • Svante Linusson and Svante Jansson: Unpublished paper.

Supervisor: Henrik Eriksson

Top


Title: Clustering

Theme: Algorithms

Subject: Investigate use of different clustering algorithms for classification on relatively large data sets. Possible uses include recognition of hand written characters and classification of articles.

References:

  • Starting point for clustering algorithms
  • AOL query log (that caused controversy when released as it turned out to be easy to infer who had searched for what even though the data had supposedly been anonymized).
  • Datasets from the UCI machine learning repository
  • There is a large dataset of hand written digits.
  • There are also archives of articles from Swedish newspapers classified by type (e.g., news, sports, culture) where one can compare clustering results to actual classification.

Supervisor: Mikael Goldmann

Top


Title: Constructing Hierarchical Variability Models for Software Product Lines

Theme: Formal Methods

Subject: Dilian Gurov (KTH CSC), Bjarte Østvold and Ina Schaefer have propsed a formal, tree-like, representation of software product lines, where the tree represents a family of different products where each product is assembled from "artifacts" (e.g., modules, classes or methods). For instance, a product line could be the thunderbird mail client which has a code base made up of parts that are common to all platforms as well as parts for specific platforms, such as OSX, Linux or Windows. A product in this case is a particular choice of software components suitable to run on a particular platform, and the product line consists of all thunderbird implementations for all the platforms supported. The tree-like model is intended to capture both the common components and the variants.

If a product line (that is a set of products where each product is simply a set of software components) has certain properties, then a "good" hierarchical variability model can be computed for the given product line.

The project involves understanding the above results and writing a program that given a product line computes the unique optimal model (provided it exists). You should consider the complexity of your implementation so that it is efficient. Possible extensions are to visualize the model graphically or to find "good" models for product lines that are not simple enough to be handled by the given method.

Contact: Dilian Gurov

Supervisor: Mikael Goldmann

Top


Title: Sudoko solvers

Theme: Algorithms

Subject: In principle Sudoku can be solved using a brute-force algorithm but it is more interesting to find an efficient sudoku solver. The task is to study and implement som sudoku solving algorithms, and hopefully to design your own solution or variation. The algorithms should be tested and bench marked against sudoku instances of varying difficulty.

Supervisor: Mikael Goldmann

Top


Title: Asymmetric travelling sales person

Theme: Algorithms

Subject: In the normal, symmetric, version of the travelling sales person problem disances are symmetric, that is, for two cities i, j the distance from i to j is the same as the distance from j to i. However in practice that may not hold. For instance in a city where some streets are one way, the distances may not be symetric. Much less is known about how to find good tours for the asymmetric case. Study this problem, examine available algorithms, implement a few and compare them on reasonable-size examples. You will need to make reasonably efficient implementations.

Supervisor: Mikael Goldmann

Top


Title: Optimal Yatzee

Theme: Algorithms

Subject: Construct a program that plays Yatzee well, preferably optimally. The program should, given the current result and the current values of the dice, determine which dice to save or, if all three throws have been used in this round, determine where to put the score. There are several variations of this problem. The simplest one is to always maximize the expected points you will get, and a probably more difficult one is to, given both your own and an opponents current score, maximize the likelyhood of winning, provided the opponent also aims to win. There are also variations depending on the exact rules used.

Supervisor: Mikael Goldmann

Top


Title: Finding the shortest connection with a genetic algorithm

Theme: Genetic algorithms

Subject: A Steiner network is the shortest road network connecting a given set of points in the plane. The four corners of the unit square may be connected along three sides (total length 3) or by the two diagonals and an internal node at the center (total length 2.828), but the Steiner solution has two internal nodes and total length 2.732 /try to find it!). Finding the Steiner solution is NP-hard in general, so exhaustive search is out of the question. However, starting with a small set of (bad) candidates, we may use selection and mutation to improve the set and eventually converge to one proposed solution. This may be the correct solution but it may also be just a local optimum, so the procedure has to be repeated hundreds of times.

This idea has played an important role in the discussion about Darwinian evolution vs.~intelligent design, see reference [D Thomas].

Project highlights:

  • The geometrical properties of Steiner networks are studied.
  • A data structure representing a network is invented.
  • The calculation of network length is coded.
  • Random initial set, mutation and selection is coded.
  • Tests, debugging and comparisons are carried out.
  • Lots of results and experiences are reported!

References:

  • Dave Thomas: http://www.pandasthumb.org/archives/2006/07/target_target_w_1.html
  • Adam Marczyk: Genetic algorithms http://www.talkorigins.org/faqs/genalg/genalg.html

Supervisor: Henrik Eriksson

Top


Computer Graphics and Visualisation


Title: Particle systems and flock behaviours

Theme: Computer graphics / Simulations

Subject: Particle systems are based on modelling and visualisation of a larger or smaller set of particles and can be applied to create images of e.g. fireworks, smoke and water cascades. Similar techniques can also be used to model the behaviour of flocks, of for examples birds, that are given specific characteristics in order to keep together, avoid collisions, etc.

Possible essay projects:

  • Visualisation of smoke using particle systems.
  • Similar flocks of birds or fish.

References:

  • W. Reeves, Particle systems – a technique for modelling a class of fuzzy objects, Transaction on Graphics, April 1983
  • C. Reynolds, Boids, Background and Update (link)

Supervisor: Mårten Björkman

Top


Title: Perceptual aspects of computer graphics and visualisation

Theme: Computer graphics

Subject: Human visual perception plays a large role in what to visualise in computer graphics. A commonly used technique is to draw objects located far away in a lower resolution, a technique which is called ”level of detail” (LOD). There are also other techniques that exploit what the human visual system is unable to perceive.

Possible essay projects:

  • Study the concept of LOD
  • Overview of the perceptual aspects relevant to computer graphics and visualisation
  • Technical aspects of what we don't see in animations

References:

  • E. Angel, Interactive Computer Graphics, Pearson, 2006
  • L. Kjelldahl, A survey of some perceptual features for computer graphics and visualization, SIGRAD conference, 2003

Supervisor: Mårten Björkman

Top


Title: Graphics with limited resources

Theme: Computer graphics

Subject: Lots of software development today are done for portable devices, such as mobile phones. Computer graphics has today become a natural component in such devices. However, portable devices are limited in terms of screen resolutions, memory and processor capabilities and battery resources. Some of these obstacles will be possible to overcome in the near future, but some problems will always remain, such as the limited sizes of screens for example.

Possible essay projects:

  • What techniques can be used for limited screen sizes?
  • What can be done with Graphics APIs for portable devices?

References:

  • K. Pulli, T. Aarnio, V. Miettinen, K. Roimela, J. Vaarala, Mobile 3D Graphics with OpenGL ES and M3G, Morgan Kaufmann, 2008
  • Stanford course in Iphone programming (link).

Supervisor: Mårten Björkman

Top


Title: Multiplayer games on IOS

Theme: Visualisation

Subject: The sheer explosion of games for IOS and Android is spectacular; currently there are more than 500 000 apps in Apple App Store, most of which are games. Although multiplayer is almost mandatory on other platforms, it's relatively rare on mobile devices, typically due to high costs for the connections and high amount of drop-outs. This is rapidly changing though, and games start to appear. In parallel, the interest and popularity of e-sports (live and via YouTube channels) is increasing.

Possible essay projects:

  • Which are the relevant infrastructures for mobile multiplayer games? Advantages, drawbacks? Benchmarking? Scaling?
  • Concepts for mobile multiplayer games? How can you experience the games? For the players? For viewers? Separate views and a joint game arena? Others? It could be extended with a practical part, making a proof of concept in the CSC Visualisation studio.

Contact: Björn Thuresson (CSC Visualisation lab)

Supervisor: Mårten Björkman

Top


Title: Large scale multi touch

Theme: Visualisation

Subject: In recent years, multi touch has become an extremely common way of interacting with digital content, especially via mobile platforms. There are also larger scale examples, e.g., Microsoft Surface and Multitouch, and the full support for multi touch in Windows 7 (and in 8). In the visualisation studio at CSC we have a Surface 1 and will get a Surface 2 when it's released. The Surface platform is somewhat different from its competitors in that it also has object recognition.

Possible essay projects:

  • Which are the mayor technologies used for multi touch? Advantages, drawbacks?
  • Application areas? Distribution platforms?

Contact: Björn Thuresson (CSC Visualisation lab)

Supervisor: Mårten Björkman

Top


Title: High resolution stereoscopic solutions

Theme: Visualisation

Subject: In the visualiation studio at CSC we have two 4K projectors (JVC D-ILA) with Infitec interference filters delivering a stereo image. We have two specially built servers by Zaxel to produce the content. The cluster is used to seamlessly switch between computer-generated material in mono and stereo, and cinema in mono and stereo.

Possible essay projects:

  • There are several options for synching content (right and left eye as well as image/audio/interaction) via a server cluster, e.g., software synching, network synching etc. How is it typically solved? Advantages, drawbacks? Examples of solutions? It could be extended with a practical approach benchmarking relevant and available solutions.
  • To produce stereoscopic content (still and moving) is of course a challenge. The Infitec system does not require any manipulation of the content apart from the two data streams (typically two views, 60-65 mm apart). Which are the typical production environments? How does a workflow look like? Advantages, drawbacks? It could be extended with a practical part defining a somewhat generic production environment that supports an equally generic workflow.

Contact: Björn Thuresson (CSC Visualisation lab)

Supervisor: Mårten Björkman

Top


Title: Stereoscopy (3D) for home use

Theme: Visualisation

Subject: Currently, there are several solutions for experiencing stereoscopy (popularly referred to as 3D) at home. The applications are most often cinema (on DVD or blu-ray) or games. There are also a few example of TV content in 3D. In the visualiation studio at CSC we have a workstation for nVIDIA 3D Vision.

Possible essay projects:

  • How does the nVIDIA 3D Vision system work? What are the typical application areas? Advantages, drawbacks?
  • How do you produce for the nVIDIA 3D Vision system? Workflows? Benchmarking?

Contact: Björn Thuresson (CSC Visualisation lab)

Supervisor: Mårten Björkman

Top


Title: A mobile dictionary sans words

Theme: Visualisation

Subject: Travellers have sometimes a difficult task of making themselves understood in various situations in many parts of the world. The language barrier can often become a huge problem very fast, even in typical situations of daily life. Can you drink this water? Where is the nearest 24hr pharmacy? Do you have anything vegetarian on the menu? Often conversations are supported by gestures and amateur drawings, which sometimes resolve the situation - and sometimes not. The assumption is that having a timely set of professional images and drawings, corresponding to a fair set of everyday needs and wisely chosen subjects can resolve many of these situations in an efficient manner.

The aim of this thesis proposal is to bring fourth a model as well as a working, navigational demonstrator of a wordless dictionary for everyday life, aiming to aid the traveller by providing assorted high-quality professional images to help bridge the babelicious conversation between two or more parties who to a greater or lesser extent lack the ability to interact using the spoken word alone. Related theory will be investigated and applied.

Possible essay project:

  • Grouping and categorization of common events for a typical business traveller in typical use cases, including e.g. eating out, travel, hotel, health, recreation, media, transport and social life. Relevant metadata need to be structured and added, to allow grouping and flocking of related images. This work will also result in a list of demands for corresponding digital images to be acquired. A proof-of-concept demonstrator, a software platform on which to display and navigate through sets of images. Suggested framework is the MoSync SDK, for its simplicity and high level of support by agreement with KTH.

Contact: Alex Jonsson (KTH / MoSync)

Supervisor: Mårten Björkman

Top


Title: Graph editor

Theme: Computer graphics

Subject: In computer science, automata and graphs are important and useful mathematical concepts. Often these are represented in some textual format which represents the states and the transitions of the automata/graph. However, graphs are more understandable if they are visualized by circles to represent states and arrows (or lines) to represent transitions.

There are quit a number of tools available for transforming the textual representation of a graph to a visual representation, e.g. Graphviz which transforms DOT textual format of a graph to a variety of image formats (e.g. jpeg,ps,etc.). There are also tools that provide graphical user interface for drawing and editing visually represented graphs. For example www.lucidchart.com application in google Chrome provides a web-based graph drawing interface or Dia Diagram Editor which is a tool to draw structured diagrams.

The task of this project is to develop a web-based application that accepts a textual representation of a graph as input, and provides facilities for visually displaying and editing the graph. Furthermore, The application should be able to transform the visualized graphs into a textual format. To this end, existing tools and techniques can be exploited and thus a part of the project is to investigate the available web-based graph editors (e.g., www.lucidchart.com application in google Chrome).

Possible Essay Projects:

  • Document the investigations on the existing graph editors and the textual representations.
  • Document the implementation of your tool.

References:

  • A web-based graph editor: https://www.lucidchart.com/
  • Graphviz: http://www.graphviz.org/
  • Examples for textual representation: http://en.wikipedia.org/wiki/DOT_language

Contact: Get in touch with Siavash Soleimanifard in room 1433, E building, KTH main campus if you are interested in this line of work.

Supervisor: Mads Dam

Top


Simulation


Title: Event based vs. activity based simulation

Theme: Web apps/Programming languages

Subject: An office building obviously needs lifts but how many, how large and how quick? Such questions may be studied by computer simulation of lifts and people involved. For specific lift parameters and employee parameters, the simulation results will tell you such things as average waiting times at rush hours. In activity based simulations, time moves in small steps with all ongoing activities being updated. Activities are the movements of lifts and people. In event based simulations, time moves from one event to the next event. Events are instantaneous, such as a button being pressed or the lift arriving. Random events have to be implemented differently in the two paradigms and the whole program structure is quite different. Which of the two paradigms is best in a particular case? The goal of the project is to try to answer that question by programming the same model in the two different ways.

Project highlights:

  • A model, such as the lift example, is specified. The model must include random events.
  • The two paradigms are specified in UML.
  • The actual programming is timed and a diary is kept for comparison purposes.
  • Tests, debugging and comparisons are carried out.
  • You form an opinion based on your experience.

References:

  • Jerry Banks, John Carson, Barry Nelson and David Nicol (2005). Discrete-event system simulation - fourth edition. Pearson.
  • Henrik Eriksson (1964) Händelsestyrd och tidsstyrd simulering. NordSam 1964.

Supervisor: Henrik Eriksson

Top


Title: Silverfish simulation

Theme: Simulation/Genetics

Subject:You have all seen them when you switch on the bathroom light: little bugs, either scurrying to safety or playing dead. Their behaviour has of course been optimized by millions of years of evolution. Is it possible to simulate this? Will the simulated silverfish act more and more intelligently for each generation?

Project highlights:

  • Decide how the bathroom floor, the light, your foot and the bug are represented.
  • Decide on the rules for the life and death of a bug.
  • Program it and simulate your foot and the light interactively.
  • Decide on rules for mutation and run many generations.
  • Report results!

References:

  • http://www.simulatedevolution.com/

Supervisor: Henrik Eriksson

Top


Title: Robot door opening

Theme: Robotic control/Simulation

Subject: Given a robot in a household environment, it is an interesting problem how to open doors, drawers, etc. If a door has never been encountered before, a robot with limited sensing abilities may not know where the hinges are located or how the door can move, thus having problems opening it.

The aim of this project is to implement one or more adaptive controllers that perform continual estimation of the door kinematics, in order to allow for smooth door opening. The implemented controllers will be tested in simulation, and different conditions and settings will be tested and evaluated. Details of the modelling of the door opening task, and the formal description of the controllers can be obtained from Yiannis Karayiannidis (CVAP/CSC). This task requires good programming skills.

Supervisor: Mårten Björkman

Top


Speech and Music


Title: Design of new musical instruments for iPAD

Theme: Sound and Music Computing

Subject: A number of new musical instruments have been specially designed for the iPAD. The features of these instruments and their potential for musical expression are not explored. The use of sensor technology for reproducing and augmenting the functionalities of the interfaces with the player of common musical instruments is a particular challenge. Does it contribute something new to music performance or is it faking expressive interaction?

Possible essay project: Study and give a structured overview of a new musical instruments making use of iPAD. Explore the different uses of the sensor technology of the iPAD, and relate them to the main musical features of the new instrument, the characteristics of the interaction with the player, and the connection between iPAD sensor technology and musical expression features. Based on the accumulated knowledge, design and implement the basic features of a successful new instrument using iPAD which is truly expressive.

References:

  • New Interfaces for Musical Expression http://www.nime.org/

Supervisor: Anders Askenfelt and Roberto Bresin

Top


Title: Sonification of physiological parameters

Theme: Sound and Music Computing

Subject: In the last couple of years many apps for real-time monitoring physiological parameters such as heartbeat rate during running have been developed for both iPhone and Android mobiles. This enables runners to check theirs own heartbeat rate by looking at the mobile phone display. Sonification ('visualization' by sound) of physiological parameters is a much more attractive way to explore in order to e.g. synchronize and monitor athletes' movements for optimal performance or for medical diagnosis, monitoring and evaluation of treatment. By sonification complex structures in physiological data can be detected and evaluated in real time.

Possible essay project: Study and survey the performance of the most popular running log programs analyzing heartbeat rate. Based on an overview of literature for heartbeat rate sonification for professional purposes, suggest a better design for sonification of heartbeat rate which can guide elite runners to continuously optimize their running actions during performance. The new design is implemented in a mobile and evaluated under field conditions.

References:

  • Ballora, M., Pennycook, B., Ivanov, P.Ch., Goldberger, A., & Glass, L. (2000) "Detection of obstructive sleep apnea through auditory display of heart rate variability," Computers in Cardiology 2000 , pp.739-740
  • Ballora, M., Pennycook, B., Ivanov, P.Ch., Glass, L., & Goldberger, A.L. (2004) Heart Rate Sonification: A New Approach to Medical Diagnosis, Leonardo, February 2004, Vol. 37, No. 1 , Pages 41-46

Supervisor: Anders Askenfelt and Roberto Bresin

Top


Title: Music Information Retrieval using the Million Song Dataset

Theme: Sound and Music Computing

Subject: Music Information Retrieval (MIR) is about using audio features and meta information in order to make predictions about different musical aspects. It can be related to both high-level descriptions such as predicting genre, music similarity ("if you like this one you may also like..."), musical moods, as well as more specific things like melodic recognition and retrieval or tempo estimation. Advanced signal processing methods are used for computing audio features. For mapping features to descriptions often machine learning methods or statistical inference methods are used. The Million Song Data set (MSD) provides a way to “kick-start” an investigation in MIR since it contains a large number of pre-computed audio features for one million songs.

Possible essay project: Make an overview of the available data and audio features in the MSD dataset and related sources like last.fm tags. Suggest how this can be used to predict different high-level aspects (genre, mood, similarity) and give examples of possible applications. Pick one of the ideas in 1) and make a prototype application. This could be a web application, mobile phone app or a Matlab script.

References:

  • The Million Song Dataset, http://labrosa.ee.columbia.edu/millionsong/
  • Thierry Bertin-Mahieux, Daniel P.W. Ellis, Brian Whitman, and Paul Lamere. The Million Song Dataset. In Proceedings of the 12th International Society for Music Information Retrieval Conference (ISMIR 2011), 2011.

Supervisor: Anders Askenfelt & Anders Friberg

Top


Title: New approaches to expressive sound interaction for mobile devices

Theme: Sound and Music Computing

Subject: Smartphones or tablets offer a large range of possibilities for incorporating sound in the interaction with the user. Interaction can e.g. be multi-modal with gesture-based interface but how these features can support meaningful and novel ways of interaction with the user is to a large extent an unexplored field.

Possible essay project: Design and implement a system for efficient and expressive sound interaction on a smartphone or tablet. The focus can be in one of three areas: human-computer interaction (e.g. usability), medical/clinical use or art. Implement the basic features of the proposed system on a smartphone, and compare the suggested mode of interaction with graphic-based alternatives. Evaluate the expressive capabilities of the system and efficiency in interaction.

References:

  • New Interfaces for Musical Expression http://www.nime.org/

Supervisor: Anders Askenfelt & Kjetil Falkenberg Hansen

Top


Title: Swype for desktops

Theme: Speech Technology

Subject: Android's Swype is a text input method for touch screen-based mobile telephones. It makes it easy to input words by drawing gestures on a virtual keyboard instead of pointing at each key singularly. The system is based on machine learning methods that can be trained on a number of swype examples and learn how classify gestures into words.

Possible essay project: Develop and test a swype system for a desktop or laptop computer by using mouse or tablet input as well as touch screen input. Some important steps in the development include; implementing of a virtual keyboard that accepts input from common pointing devices (mouse, tablet, touch screen), and use of the virtual keyboard to record word examples and implement Hidden Markov Model algorithms for learning and testing. The system is trained and evaluated with a limited number of words.

References:

  • http://www.swype.com
  • http://en.wikipedia.org/wiki/Hidden_Markov_Model
  • http://en.wikipedia.org/wiki/Baum-Welch_algorithm
  • http://en.wikipedia.org/wiki/Viterbi_algorithm

Supervisor: Anders Askenfelt & Giampiero Salvi

Top


Title: Visualizing chronograms using HTML5

Theme: Speech Technology

Subject: The study of spoken dialogue - how people speak to each other - is increasingly important as spoken dialogue interfaces are getting increasingly common. Spoken dialogue is continuous in nature and is realized in a linear fashion over time. Chronograms provide visual representation of how the dialogue (or any other ordered sequence of events) progresses. However, the appropriate window size over the chronogram varies with its motivation - different time spans are appropriate for different analyses. This project is about developing a general web based tool - using HTML5, CSS3 and java script - to visualize chronograms of arbitrary length and level of detail.

Possible essay project: Design and implement a general tool for visualizing chronograms on a screen that allows the user to zoom, scroll and perform pagination of the dialogue into segments of different length. Pre-processed dialogue data for different types of dialogue, that can be used for proof-of-concept and evaluation of the tool are available.

References:

  • Laskowski "Predicting, Detecting and Explaining the Occurrence of Vocal Activity in Multi-Party Conversation" Chap. 5 provides a literature overview of the use of dialogue chronograms (http://www.cs.cmu.edu/~kornel/pubs/laskowskiTHESIS.pdf).

Supervisor: Anders Askenfelt & Jens Edlund

Top


Title: Web based control for an interactive talking robot

Theme: Speech Technology

Subject: In HTML5, the restriction prohibiting web pages to easily open sockets and utilize full duplex connections is removed with the introduction of the WebSockets protocol. This opens up a whole new range of browser based pure html/css/javascript applications that can be implemented in a straightforward manner to do tasks that previously could only be achieved using proprietary technologies and work-arounds.

Possible essay project: Controlling the speech and movement of the talking robot head FurHat from a web page. To do this, the currently used CTT Broker, needs to be adapted so that it accepts WebSockets and a Broker client for HTML5 needs to be implemented. The system's functionality and robustness is evaluated in typical dialogue situations (using commands like "say", "turn head" and similar).

References:

  • CTT Broker (http://www.speech.kth.se/broker/),
  • Furhat (www.speech.kth.se/furhat),
  • August (www.speech.kth.se/august)
  • AdApt (www.speech.kth.se/adapt).

The project requires good to excellent Java skills and basic skills in HTML/Javascript.

Supervisor: Anders Askenfelt & Jens Edlund

Top


Title: Visualizing dialogue data using HTML5

Theme: Speech Technology

Subject: Spoken dialogue, as well as many other phenomena, is continuous in nature. Roughly speaking one word is presented after another in a linear fashion over time. Such data can be annotated by attaching labels to each segment (e.g. word). The labels can represent virtually anything; in dialogue research common examples include laughter, breathing, and utterance type.

Possible essay project: In order to get an overview of annotated continuously ordered data, a general web based tool (using HTML5, CSS3 and java script) is developed to visualize the distribution of labels attached to ordered segments. Prepared dialogue data from two different types of dialogue in which statistics are expected to differ noticeably is available for proof-of-concept testing, visualization and evaluation.

References: Examples of illustrations of statistics on this type of data can be found in

  • Heldner and Edlund (2010) "Pauses, gaps and overlaps in conversations"
  • Heldner, Edlund and Pelce (2009) "Prosodic features of very short utterances in dialogue",

Supervisor: Anders Askenfelt & Anna Hjalmarsson

Top


Title: Annotation app for Android (and Iphone)

Theme: Speech Technology

Subject: One of the most time consuming aspects of much modern research on human behavior is manual annotation of data. In many cases, this is an expensive and unavoidable step to get ground truth for machine learning and automatic analyses. In speech research, a common task is to annotate speech fragments or utterances with respect to some specific parameter, such as "is this laughter?", "is this a question or a statement?", or "is the speaker out of breath?". Currently it is common to use so-called crowd-sourcing or services such as the Mechanical Turk (www.mturk.com) for this type of task. A less common but highly interesting variety of this is to use custom-built annotation apps for smart phones.

Possible essay project: Develop an Android app that can annotate speech data from an audio file according to an annotation specification. Audio files and realistic annotation tasks for proof of concept and evaluation are available. A successful annotation of the provided data will generate new research results.

References:

  • Hjalmarsson (2011). "The additive effect of turn-taking cues in human and synthetic voice" (annotation examples)

Supervisor: Anders Askenfelt & Anna Hjalmarsson

Top


Title: Facial animation player based on WebGL

Theme: Speech technology/ Computer graphics

Subject: Recent web-browsers come with the capability to natively display complex 3D content with hardware accelerated rendering. A possible use of this capability would be browser-based facial animation of speaking agents for enhancing interactive content on web pages.

Possible essay project: The WebGL standard allows for high quality browser-based 3D graphics. This could be tried on a browser-based player for facial animation with synchronized audio. The animation could e.g. be performed using shape interpolation, and driven by text or audio data. Several facial models are available for comparison. The evaluation could focus on how animation of different parts of the face enhances the interaction, or how contradictory information in animation and speech content influences a man - machine spoken dialogue.

References:

  • http://www.khronos.org/webgl/
  • https://github.com/mrdoob/three.js/

Supervisor: Anders Askenfelt & Jonas Beskow

Top


Title: Sing me your status

Theme: Speech and Music Technology

Subject: A system capable of singing short text messages (SMS, twitter-tweets, chat messages, status updates etc...) could be a useful way of enhancing the content.

Possible essay project: Composing a melody to a given text requires artistic skill and inspiration, but a rule-based matching strategy can probably produce decent results. One approach could be to use text-to-speech software to transcribe the text into a sequence of phonemes, and then analyze the phrasing and the placement of focused syllables. This data set could be matched against a set of known melodies, according to some rhythmic criteria based on intelligibility and artistic considerations. The result can be listened to through a singing speech synthesizer. The evaluation will show why and how a human composer would have performed much better.

Supervisor: Anders Askenfelt & Jonas Beskow

Top


Title: A nineteen tone scale synth

Theme: Web apps/Programming languages

Subject: ChucK is a new (and developing) audio programming language for real-time synthesis, composition, performance, and now, analysis. As far as is known, it has only been used for music using the traditional scale with each octave being divided into twelve tones. Theoretical considerations suggest that dividing the octave into nineteen parts might be a fascinating alternative. However, no such instrument exists. The goal of the project is to explore the opportunities of this new scale.

Project highlights:

  • Musical theory, why seven white and five black keys in each octave? Why is nineteen interesting?
  • Is it possible to program a nineteen tone instrument in ChucK? Is better software available?
  • Implementation and GUI design.
  • Tests and debugging.
  • Auditory tests with musically educated subjects.
  • Conclusions.

References:

  • Kompendium i Musikakustik (2004), KTH-CSC.

Supervisor: Henrik Eriksson

Top


 

Copyright © Sidansvarig: Mårten Björkman <celle@csc.kth.se>
Uppdaterad 2012-01-17