Pierre Flener, PhD, docent
pierref at it.uu.se
MIC, room 1-336
The main objective is to make students familiar with the fundamental principles and methodologies of programming, using the functional programming language Standard ML (SML, or simply ML) as the teaching medium. The lectures are by the instructor and have a theoretical flavour.
Some practice of programming (in ML) is acquired through frequent assignments, which are to be prepared at home, then tried on the computer in labs under assistant supervision, then submitted, and finally graded and discussed in lessons by the assistants.
Michael R. Hansen and Hans Rischel
Introduction to Programming using SML
New Jersey SML
Frequently Asked Questions about SML
IT Dept: Online Documentation
IT Dept: Datorhandboken
Attendance at the lectures is not mandatory, but highly recommended. Free printed copies of my slides are handed out in the classroom:
- Chapter 1: Introduction
- Chapter 2: ML, a Functional Programming Language
(Slides) (Programs) (read Chapters 1-3 of the textbook, except Section 3.6, plus Sections 7.2, 7.6, 9.1, and 9.4)
- Chapter 3: Programming with Recursion
(Slides) (Programs) (much more detailed than the textbook, such as its Sections 1.4 and 8.4.1)
- Chapter 4: Linear Structures: Lists
(Slides) (Programs) (read Chapters 5 and 17 of the textbook)
- Chapter 5: Type Declarations
(Slides) (Programs) (read Chapter 7 of the textbook, except Sections 7.2 and 7.6, plus Sections 3.6 and 8.5)
- Chapter 6: Abstract Datatypes
(Slides) (Programs) (read Chapters 8, 10, and 12 of the textbook, except Section 8.5)
- Chapter 7: Higher-Order Functions
(Slides) (Programs) (read Chapter 9 of the textbook)
- Chapter 8: Modules and Libraries
(Slides) (Programs) (read Chapter 11 of the textbook)
- Chapter 9: Conclusion
You are supposed to study the Problem Solving chapters of the textbook (namely Chapters 4, 6, 13, and 16) as well as its Appendices by yourselves.
My wonderful team of assistants has prepared a page with all you will ever want to know about the lessons, the labs, the assistants, the groups, and the assignments and about the offered supplemental instruction.
Part 1 of this course has 3 credit points, distributed over 2 credit points for the exam and 1 credit point for the assignments. Part 2 of this course has 3 credit points, distributed over 2.2 credit points for the exam and 0.8 credit points for the assignments.
An exam, whether the first or the second one, of a part goes over 80 exam points. Every assignment has a specific deadline and a number of bonus points, with a total of 20 bonus points over the set of assignments of a part:
- Submitted solutions should comply with the code convention of this course.
- The submission of a solution until the specific deadline of an assignment guarantees grading until the corresponding lesson, so that the feedback by your course assistant during that lesson benefits from your solution, with possibly personal feedback! Only your last solution, if any, submitted until the specific deadline will be graded.
- The submission of a quality solution until the specific deadline of an assignment earns you some, if not all, of the bonus points of that assignment, the quality threshold being at the discretion of your course assistants.
- The submission of an acceptable solution, at any time, earns you a pass grade for that assignment, the acceptability threshold being at the discretion of your course assistants. Otherwise, you earn a fail grade for that assignment; you may then submit another solution, but with no chance for a bonus, as the specific deadline can no longer be met. A solution with a pass grade cannot be revised for a new submission, towards earning a higher bonus.
- For part 1, the ultimate deadline for the submission of any solutions is midnight of Sunday 13 January 2002. For part 2, the ultimate deadline for the submission of any solutions is midnight of Sunday 17 March 2002. Any solutions submitted after an ultimate deadline may not be graded for the corresponding period, even though it is not officially over yet.
The credit points for the assignments of a part are awarded for the period during which you complete the collection of pass grades for all the assignments of the period(s) during which you actually took that part of the course. Note that no bonus points are necessary to get these credit points.
The credit points for the exam of a part are awarded for the period during which the exam is taken if your added exam points and bonus points or just your exam points are at or above 55% of the possible total. Furthermore, a med beröm godkänd (5) grade is earned for the interval 85%..100%, while an icke utan beröm godkänd (4) grade is earned for the interval 70%..84%, and a godkänd (3) grade is earned for the interval 55%..69%. In all other cases, an underkänd (U) grade is earned.
These rules are effective as of 5 June 2002. The instructor reserves the right to modify them at any moment, should special circumstances call for this.
Old Exams (all slightly revised, for better practice):
Exam 1 of part 1 in HT01 Exam 2 of part 1 in HT01
Exam 1 of part 2 in VT02 Exam 2 of part 2 in VT02
Also see the old exams of the equivalent PM1 course.
I will try and answer all questions that none of my assistants could answer (so ask them first!) or should address: catch me during any hour that immediately follows a lecture, in person or on the phone. Outside these hours, I cannot guarantee a fast turn-around on questions.
Check here if you used one of my many abbreviations and notations when copying from the board, but cannot remember what it means...