The course "Aktuelle Themen Software" has its focus on latest developments in the software area. This does not only include development but also the role of software in todays world, success factors etc. Participants of the courses "Aktuelle Themen Software" are also organizing so called "days" with a special focus on new and upcoming topics in computer science and society. The idea behind those events is to get students to think about possible trends and important future technologies by planning a workshop or an event. Bsides the theoretical work the organization of such an event (approaching and inviting key representatives of a new technology) trains soft skills. The necessary media coverage (providing a live stream, chat, moderation etc.) leads to a media competence which is a requirement in todays workplace.
The themes for those workshops and events will be decided by the participants, work is done in groups. The following list gives some ideas for events or discussion topics.
In this winter term I see two larger groups of topics, which have become very relevant lately. The first one is about concurrency and parallelism. Though still missing in many computer science curricula, developments in hardware and software have put the issue to the forefront of software development. Multi-core CPU's, the need for performance and scalability and last but not least the revival of functional programming concepts are all related and need to be understood, before reliable software can be created. For the Java afficionados, Java8 brought functional programming and the streams API offers a way to parallelize your code without the hassle of e.g. concurrency classes, fork/join frameworks and so on. The following is a list of possible themes we can cover. I will send out literature on each one, which needs to be read in advance. Don't be surprised if I will run a small test at the beginning of each session!!!!
Programming Paradigms (Peter van Roy)
Multi-core memory models, consistency and coherence in caches (Hennessey/Patterson)
java Memory Model and threading support (Herlihy/Shavit)
wait/lockfree algorithms (Herlihy/Shavit)
Language Support for parallelism (futures etc.)
Functional Programming and Parallelis (stream API)
Design Patterns for Parallelism
concurrent library for Java
An Analysis of recent security problems
Ideas and concepts towards secure systems
Here are the dates for our days.
24.10.2014, Games Day with a focus on Game Engines and how they respond to multi-core CPUs (many games used to be single threaded to make programming easier. This seems to change now on a large scale. Experts from e.g. Havoc will tell about their latest tricks. Even if you are not into gaming: game development is at the forefront of software technology due to its performance requirements...
07.11.2014, Developers Day with a focus on design decisions, development process and architecture. Guests from 1&1, AEB and CapGemini Sogeti will hold talks about their way of doing software and what they have learned over the years.
December 2014, Science Day. Now this will not deal directly with software development but raise questions on scienctific methods, scientific paradigmas, empirical sciences and their methods and so on. The theory of science is always present on those days.
16.01.2015 Security Day with a focus on - well