Latest change Feb 4, 2024

Examination

There will be:

To get a pass on the course, you need to pass all these examination moments. The final grade (U-3-4-5) is based on the grade for the written exam. Completed laborations and project before the first exam (March 19) gives a one step raise of the grade at this exam: 3 -> 4, and 4 -> 5. (Note that you can not get a raise from U to 3.) Complete and correct laborations and projects must thus be handed in before that date, if you want the raise. The raise applies only to this exam, and not to any later exams.

The following holds, for all parts of the examination (LAB1, TEN1, PRO1):

Laborations

There will be four laborations, also see the schedule.

Lab 1: getting started.

Lab 2: lists, higher order functions, and defining own data types.

Lab 3: "some simple natural language processing".

Lab 4: A calculator with a GUI.

You will do the laborations alone, or in groups of two. They are in F#, and will take place on campus.

The laborations will be examined as follows: you first submit your code, allowing the lab assistant to check it. Then you make an oral presentation of your solution for the lab assistant, showing how it works. Instructions how to submit the code is found in Canvas. We have also prepared a Lab Handin Checklist: if you follow the advicec there, chances are that your lab examination will be a smooth process.

For Lab 1 and Lab 2 you will use the .NET testing tool FsCheck for testing your solutions to the assignments. We have prepared a zip archive labs.zip with FsCheck and some supporting code: see our instructions how to use FsCheck for the laborations.

If you run an older version of F# or VS then most of the lab exercises should still work right away. However, for Lab 4 it can make a difference: the lab instructions give support for different F# versions, and the FAQ provides some further support. The differences between the different F# versions are summarised by the Wikipedia page for F#.

Lab 4 uses WinForms. This has become problematic for mac users, since the latest version of macOS has dropped the support for WinForms. We offer two different ways to mitigate this problem:

If you're interested in the second option then get in touch with Jean or Philip.

Instructions how to download F# are found here.

Project

There is also a programming project, where you are given a problem to solve using functional programming techniques. The project will take place towards the end of the course, and the workload should correspond to roughly one manweek per person. The idea is that you work with the project quite independently, but we will provide advising.

There are some suggested projects to choose from. However, you can also suggest your own projects. In this case you should write your own specification of the project and give to us. We will then judge it, possibly suggest modifications, and finally give you a go if we think that the project proposal is appropriate.

Some suggested projects use WinForms. Mac users can deal with this in the same way as for Lab 4 above.

The project is done in groups of at most two persons. Two is the preferred size of the project groups, but you can also do a project on your own.

For the examination you should upload the source code, and a short written report (typically 2-3 pages) containing the following:

The report should also contain:

If you do a project suggested by yourself, then the report should also include the project specification.

Instructions how to submit code + report are found in Canvas.

We know, by experience, that some students have problems to design their implementation in a good way. Therefore we offer the possibility to get feedback on your design. You then submit a preliminary report, describing the design of your solution, before you start writing the code. If you submit your preliminary report at least three weeks ahead of the written exam then we promise to give you feedback within a week, allowing you time to finish the project before the exam.

Written Exam

The written exam is four hours long. It will be a "closed book", on-campus written exam. It will be digital meaning that you do the exam using your laptop with some downloaded software that creates a controlled environment. Otherwise the routines regarding signup etc are as before.

Detailed instructions how to do a digital exam at MDU are found here.

This Year's Exams

First exam. Tuesday 2024-03-19, 14:30-18:30.

Next exam. Tuesday 2024-06-04, 14:30-18:30.

Next next exam. Tuesday 2024-08-20, 14:30-18:30.

Old Exams

See the web page for the Spring 2023 edition of the course.

Rules of Conduct

These rules apply to anything that is handed in towards a solution for some of the examination moments LAB1, TEN1, PRO1.

Code that is brought forward for examination, for a laboration, for the project, or at the written exam, must be original. It is not allowed to copy the code from somewhere, like from the web, or from some friend. The project report must be written by yourself. It is also not allowed to use a tool such as ChatGPT to generate a solution, or part of it. A violation of this rule will be considered as plagiarism, and dealt with as such.

It is OK to discuss with other students, in general terms, how to solve a certain kind of problem. But you are not allowed to disclose your solutions to other students such that they can base their solutions on yours. This will be seen as assistance to plagiarism. In particular you are not allowed to make your solutions publically available, at sites like github or sourceforge, such that other students taking the course can access them. The underlying principle is this: helping someone to understand is OK, helping someone to pass the examination without understanding is not OK.

In case you do a laboration or project in a pair, then it is OK that you divide the work between yourselves such that some of the code, or the report, is written by your teammate. You should then divide the work evenly: in particular it is not OK that one teammate does all the work, and the other teammate no work. You should also understand the parts of the laboration/project that you did not do yourself, and be able to answer questions also on those parts.

For the written exam, the usual rules apply. (See above for what you are allowed to bring to the exam.)


Björn Lisper
bjorn.lisper (at) mdu.se