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.
This course has 6 credit points, distributed over 4 credit points for the exam and 2 credit points for the assignments.
The exam, whether the first or the second one, 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 whole set of assignments:
- 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 the autumn semester 2001, the ultimate deadline for the submission of any solutions is midnight of Sunday 13 January 2002. Any solutions submitted thereafter will not be graded for that semester, even though it is not officially over yet.
The 2 credit points for the assignments are awarded for the semester during which you complete the collection of pass grades for all the assignments of the semester during which you actually took the course. Note that no bonus points are necessary to get these 2 credit points.
The 4 credit points for the exam are awarded for the semester 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 very-good grade (VG) is earned for the interval 75%..100%, while a good grade (G) is earned for the interval 55%..74%. 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 HT01 Exam 2 of HT01 Exam 2' of HT01
Also see the old exams of the equivalent PK1 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...