Programming is problem solving. Various programming paradigms exist that are highly suited to tackle certain kinds of problems, and as software engineers we seek to discover, understand, relate, advance, and communicate the strengths, weaknesses, and opportunities that these paradigms afford as vehicles for problem solving.
Paradigms include imperative programming, functional programming, and logic-based programming, in addition to concepts such as object orientation, reactivity, constraint system solving, stateful vs stateless programs, and so on. Modern-day languages can not (usually) be strictly categorised into one or more paradigms, and instead exploit and draw inspiration from myriad paradigms and concepts. This raises fascinating questions:
Towards addressing these questions and more, the aim of the Programming Languages theme is to:
Meetings will be held monthly. In each meeting members will inform the group on interesting conferences and journals, and one member will give an informal presentation (about 45 minutes) on an interesting programming language or paradigm.
Navn | Jobtitel | Telefon | Bygning | |
---|---|---|---|---|
Bennedsen, Jens | Ingeniørdocent | jbb@ece.au.dk | +4541893090 | 5123, 420 |
Hallerstede, Stefan | Lektor | sha@ece.au.dk | 5123, 411 | |
Kirk, Henrik Bitsch | Lektor | henrik@ece.au.dk | +4593508832 | 5123, 425 |
Rovsing, Poul Ejnar | Lektor | per@ece.au.dk | +4541893267 | 5123, 412 |
Schultz, Carl Peter Leslie | Lektor | cschultz@ece.au.dk | +4593508809 | 5123, 411 |
There is a need to steer higher education in software engineering away from programming as a tool, and instead towards software programming as problem solving. This means finding new ways of teaching programming beyond simply walking students through programming features supported by various languages.
In addition, as educators we need to keep on top of the latest advances in programming languages on two major fronts: (a) practical, industry-oriented efforts, tools, techniques; (b) cutting edge research-driven efforts and new paradigms.
Current AU courses that are a focus for this theme include:
The technologies and tools that will be discussed in this theme include programming language compilers, interpreters, IDEs, constraint solving engines, static analysers, and so on.
Following is an indicative list of such tools and technologies:
These projects are impacted by topics on programming languages. For example, they may utilise or even advance interesting programming languages and paradigms in an effective and elegant way to address a particular problem.