INF5660 – Advanced problem solving with high level languages
Schedule, syllabus and examination date
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).
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.
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.
Recommended previous knowledge
Two intensive periods during the spring semester. One large mandatory project must be completed.
Pass/Fail, based on the project report. In addition, a selection of students will have an oral exam.
Note that the first lecture is mandatory.
Course Auditor: Jan Olav Langseth