INF5660 – Advanced problem solving with high level languages

Course content

Advanced aspect of the scripting languages Perl and Python, e.g. building class hierarchies at run-time, the C API of the languages and efficient manipulation of Perl and Python data structure in C, C++ and Fortran. Design of large systems of programs where time critical operations (especially intensive numerical computations) is migrated to, or utilizes, existing C, C++ or Fortran libraries. Programming, compiling/linking, optimizing and profiling of C, C++ and Fortran code. Software engineering aspects such as regression testing (specially for numerical simulations), packaging and distribution of large program packages with many dependencies, dual programming, coding standards, documentation. Practical problem solving is emphasized. The student must complete a large project assignment.

It is assumed that the student has some familiarity with C and C++ (if not some extra work is required). Most examples are picked from numerical simulations (especially from solving partial differential equations), but no special background in mathematics is required. However it can be an advantage to have taken (or take in parallel) courses in numerical methods, simulation or visualization (in computer science, physics, mathematics).

Learning outcome

The students should get an insight into how advanced program systems can be built by a dynamical design in high level scripting languages and combine with low level libraries in C, C++ and Fortran for efficacy. Through problem solving and projects the student will gain technical insight into compiled languages like C, C++ and Fortran, and insight into more advanced and dynamical sides of scripting languages, and learn tool and techniques to verify and distribute program systems.

Admission

Students who are admitted to study programmes at UiO must each semester register which courses and exams they wish to sign up for in Studentweb.

If you are not already enrolled as a student at UiO, please see our information about admission requirements and procedures.

Teaching

Two intensive periods during the spring semester. One large mandatory project must be completed.

Examination

Pass/Fail, based on the project report. In addition, a selection of students will have an oral exam.

Other

Note that the first lecture is mandatory.

Course Auditor: Jan Olav Langseth

Facts about this course

Credits
10
Teaching
Spring 2008
Spring 2007
Spring 2006
Spring 2005
Spring 2004

The course is given as self-study spring 2009.

Examination
Every spring
Teaching language
Norwegian