Introduction to Functional Programming – Programming Assignments | TDA555 / DIT440, LP1 2018 |
Home | Schedule | Labs | Lectures | Exercises | Exam | About | FAQ | Fire | WaitList | Slack | TimeEdit | YouTube | Links |
Introduction to Functional Programming – Programming Assignments | TDA555 / DIT440, LP1 2018 |
Home | Schedule | Labs | Lectures | Exercises | Exam | About | FAQ | Fire | WaitList | Slack | TimeEdit | YouTube | Links |
There are 4 programming (lab) assignments in total. You have to pass all these to get a pass on the course. Labs are submitted in an electronic system. Lab 1 and 4 is graded offline, but labs 2 and 3 are graded by explaining your lab to the course assistants.
▷ Lab 2: Blackjack (2018 version) (2 parts)
▷ Lab 3: Tetris (2018: now in 3 parts)
All lab assignments must be submitted using an electronic submission system called "Fire".
Remember to register both yourself and your lab partners in a lab group before you submit! By default, the submission system does not accept submissions made by single persons, and lab 2 and onwards requires you to submit as a group of 3 unless you have been granted an exception.
For labs 2 -3 we will have a fixed time for presentation of solutions: Mondays 16-18 after the exercises (from week 3 onwards) and Tuesdays 10-12. Each grader will have a booking sheet in which you must book your slot. Further details and booking information here
When grading labs all members of the group must be present, and are required to understand all of the code submitted, and it is the responsibility of all of the group members to make sure that this is the case. If one of the group members clearly does not understand the code then the group will not be passed, and will be expected to try again when all members of the group are able to explain the solution.
Supervision is scheduled at various times and places. There are no lab supervision times on Mondays or Tuesdays (just times for presentation of your solutions to the graders). See the timeEdit schedule.
Note: These times are not obligatory! The idea is that all of you will spread out over the week. You cannot come all at once anyway to get lab supervision, but once or twice a week should be possible. You can also work at home on your own computer on the labs (but then you will not get any lab supervision).
UPDATE: If we run out of space then you can always work nearby with a laptop and come to one of the rooms when you get stuck. To make it easier for the assistants to help you, please use the electronic waiting-list.
You are encouraged to bring pen and paper to the lab sessions, as that makes it convenient for the supervisors to explain certain things.
As things tend to be a bit crowded at the beginning of term, we ask you to book a place in a scheduled lab supervision slot before you come to a lab room.
[Booking sheet to be completed]
To book a workplace for you and your lab partner(s), put all your names in one square to book a workplace.
Fairness rules:
Labs have three deadlines listed. We will arrange a time and place where you can demonstrate and explain your lab. If we are happy that the code is good and that all group members are able to explain any part of it then we will pass you. Otherwise you need to resubmit with changes (if necessary) or when you are ready to re-present the lab.
First deadline:
Second deadline (one week later):
Final deadline (1.5 weeks after second deadline):
If you do miss a deadline, you may get a new chance at the end of the course. Otherwise, there is always a new opportunity to finish the labs next year, according to the instructions for that year.
Cheating on labs is unacceptable. Cheating means:
If you have problems, you should talk to us instead of copying from others. If needed, you may get more time and more help. If this is not enough, it is advisable to redo the course next year. This option makes much more sense than cheating.
Some cheating can be detected by the lab graders, when they discover similar solutions (e.g. same code, but different comments, layout, variable names, etc.). At the end of the course, we will also use automatic software that checks for similarity between all submitted solutions.
This is what happens if we suspect cheating:
Of course, there may be exceptions. For example, the module Text.Show.Functions is needed to test higher-order functions with QuickCheck, and Text.XHtml is used in an extra assignment in lab 1.
You are encouraged to look around on Hackage and experiment with external libraries after you have solved the assignments. But keep in mind that the graders may not have those libraries installed, so don't use non-standard modules in the files you submit.