IN3040 – Programming Languages
Course description
Course content
This course will discuss syntax and semantics of programming languages, including static and dynamic aspects, typing and type inference, higher order functions, polymorphism, implementation and run-time systems. It will also touch upon different classes of programming languages, such as object-oriented, functional, dynamic and logical languages, and discuss these in relation to each other.
Learning outcome
After taking the IN3040 you will:
- Easier be able to learn?new programming languages, know?a greater breadth of existing languages, and better understand?the construction?of these
- Be able to participate in the development of, and discussion around, new programming languages based on an understanding of the design space for such development, and the trade-offs behind the languages we have today, and their peculiarities
- Be able to explain how key language concepts are implemented at a high level, and discuss what's behind such design choices
- Understand the differences of different programming paradigms, such as object-oriented, functional and logical programming
- Be able to assess the advantages and disadvantages of the various ways of programming
Admission to the course
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.
Special admission requirements
In addition to fulfilling the?Higher Education Entrance Qualification, applicants have to meet the following special admission requirements:
- Mathematics R1 or Mathematics (S1+S2)
The special admission requirements may also be covered by equivalent studies from Norwegian upper secondary school or by other equivalent studies. Read more about?special admission requirements?(in Norwegian).
Recommended previous knowledge
The course build upon?IN2010 – Algorithms and Data Structures
Overlapping courses
- 10 credits overlap with INF3110 – Programming Languages (continued).
- 10 credits overlap with INF4110 – Programming languages (discontinued).
- 9 credits overlap with IN211.
- 6 credits overlap with IN214.
Teaching
2 hours of lectures and 2 hours of group excersises each week. The course has?mandatory assignments which must be approved prior to the exam.
Examination
Final exam is a 4 hours written digital exam.?The course has?mandatory assignments which must be approved prior to the exam.
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:?INF3110 – Programming Languages (continued),?INF4110 – Programming languages (discontinued),?INF211
Examination support material
All written and printed exam resources are allowed.
Language of examination
You may write your examination paper in Norwegian, Swedish, Danish or English.
Grading scale
Grades are awarded on a scale from A to F, where A is the best grade and F?is a fail. Read more about?the grading system.
Resit an examination
Students who can document a valid reason for absence from the regular examination are?offered a postponed examination at the beginning of the next semester. Re-scheduled examinations are not offered to students who withdraw during, or did not pass the original examination.
More about examinations at UiO
- Use of sources and citations
- Special exam arrangements due to individual needs
- Withdrawal from an exam
- Illness at exams / postponed exams
- Explanation of grades and appeals
- Resitting an exam
- Cheating/attempted cheating
You will find further guides and resources at the web page on examinations at UiO.