|
INF329 / Selected topics in programming theory Schedule (list) Syllabus
Credits: 10.0
ContentsThere is a common understanding that current software is brittle: it is difficult to develop, understand and modify. Tools that help us work with software are still rudimentary, in spite of the general ideas being known for decades.
What are the reasons for this? The main reason is perhaps historical. Most major programming languages and concepts were conceived before the central programming notions were fully understood. This meets us everywhere, from arrays in C/C++ (being modelled on 1960's hardware implementation rather than being a type) and a horrendous variation in parameter passing mechanisms (motivated by efficiency concerns in the 1970's), to the mix-up between the notions of specification and implementation and the related confusion between code reuse, typing disciplines and pointers in object-oriented programming.
In this course we will reexamine our knowledge about programming, and put the notions we need together in such a way that we achieve - a formal understanding of specification and programming concepts, - a notation easy to analyse by tools and understand by humans, - a specification and programming flexibility beyond the syntactic confines we are locked in today, and such that it all readily links up with the pragmatics of efficient, well-behaved programs.
ObjectivesTeaching in special topics at Master- and PhD-level.
Course offered (semester)Occasionally.
Language of InstructionNorwegian. English if required.
Assessment / Examination FormatWritten exam. If less than 20 students are taking the course, it can be oral exam.
|
|