IN4110 – Problem Solving with High-Level Languages
Schedule, syllabus and examination date
This course provides an introduction to more advanced aspects of the scripting and programming language Python, e.g. object-oriented programming, regular expressions, interaction with the operating system, platform-independent code, efficient design of program systems with time-critical operations, extensions in compiled languages such as C/C++, data analysis and web programming. The course also provides a basic introduction to the scripting language Bash, testing and documentation of code, and version control system git. Special emphasis is placed on practical problem solving with a focus on interesting and study-relevant tasks.
After taking this course you'll:
- have knowledge of more advanced aspects of the Python programming language, including the use of regular expressions and interaction with the operating system
- be able to write scripts in Python and Bash to automate your own work tasks
- have knowledge of the version control system git and how code can be documented and tested
- be able to use vectorization to write efficient programs in Python
- be able to combine Python with compiled programming languages such as C and C++
- be able to write a web user interface for Python programs
- be able to use Python tools for advanced data analysis and machine learning
- be able to write programs that solve problems from different disciplines, such as physics, medicine, biology and finance
- have gained a deeper understanding of more advanced aspects of the Python language, such as efficient numerical calculations by extending Python with code written in C/C++ (extending Python)
- have learned to run data analytics and machine learning with advanced Python packages (Pandas and scikit-learn).
Admission to the course
Students admitted at UiO must apply for courses in Studentweb. Students enrolled in other Master's Degree Programmes can, on application, be admitted to the course if this is cleared by their own study programme.
Nordic citizens and applicants residing in the Nordic countries may apply to take this course as a single course student.
Recommended previous knowledge
- IN1000 – Introduction to Object-oriented Programming or IN1900 – Introduction to Programming with Scientific Applications
- IN1010 – Object-oriented Programming or IN1910 – Programming with Scientific Applications
- 10 credits overlap with IN3110 – Problem Solving with High-Level Languages.
- 10 credits overlap with INF3331 – Problemløsning med høynivå-språk (continued).
- 10 credits overlap with INF4331 – Problem solving with high level languages (continued).
- 5 credits overlap with INF3330 – Problem solving with high level languages (discontinued).
- 5 credits overlap with INF4330 – Problem solving with high level languages (discontinued).
- 5 credits overlap with INF5660 – Advanced problem solving with high level languages (discontinued).
2 hours of lectures and 2 hours of exercises each week. Lectures will be a combination of ordinary lectures and supervised project work and problem solving.
It will also be counted as one of your three attempts to sit the exam for this course, if you sit the exam for one of the following courses: IN3110 – Problem Solving with High-Level Languages, INF3331 – Problemløsning med høynivå-språk (continued), INF4331 – Problem solving with high level languages (continued)
Examination support material
Language of examination
You may write your examination paper in Norwegian, Swedish, Danish or English.
Grades are awarded on a pass/fail scale. Read more about the grading system.