We're excited to announce the sixth edition of the Programming in Haskell (PUH) course! The course will be offered in the Fall semester of AY 2017/2018. Students of all study levels and profiles are invited to join!
Haskell (http://www.haskell.org) is an advanced, purely functional programming language. Functional programming languages allow for the development of robust, concise programs in a short amount of time. Haskell will change your perspective on programming and make you a better programmer, regardless of the language you program in. Allow yourself the epiphany of discovering this remarkable perspective on programming!
PUH (http://www.fer.unizg.hr/predmet/puh) gives an introductory but thorough treatment of Haskell programming. You will learn the basic concepts of functional programming and develop your Haskell programming skills by solving a variety of problems, as part of in-class hands-on exercises, regular homework assignments, and a final project.
Important dates
-
Applications open: Aug 7, 2017
-
Applications close: Sep 22, 2017 at midnight
-
Notification of acceptance: Sep 27, 2017
-
Class start: Oct 3, 2017 at 6:15 pm (TBC)
Read on for more information about PUH and application procedure.
When, where, and how?
The lectures will be held on Thursdays, 6:15-8:30 pm in lecture room D272, plus two additional lectures on first two Tuesdays, 6:15-8:30. Distance learning is not offered for this course. The course will be held in English (level L3). The course ECTS credits (4 ECTS) count towards the "Skills" ECTS quota.
Applications
All students need to apply. The applications are submitted online. Besides the basic data, the application includes a questionnaire and a motivational letter of at most 200 words. Students of all levels and profiles can apply, provided they have passed the Programming and Software Engineering course and Algorithms and Data Structures course, or have equivalent skills.
Numerus clausus
For organizational reasons, the number of participants is limited. All applications will be evaluated. The evaluation will consider candidate's professional profile and motivation for attending the course. In case of a tie precedence will be given to second year MA students, students who have not previously enrolled in this course, and students who applied earlier. Incoming exchange students will be accepted unconditionally.
Applications from non-FER students and non-students
PUH is open to highly motivated non-FER students as well as non-students, including future and past students. Such participants must also apply (see above) but their applications will be evaluated extra quota. Note that the following restrictions apply: (1) no certificate of attendance will be provided and (2) homeworks and project assignments may not be graded. An exception are the UNIZG students that work out the formalities with their administration offices. We reserve the right to reject applications due to participant unsuitability or our limited resources.
Course enrollment requirements
All participants are required to (1) have a notebook/laptop that they can use for in-class hands-on sessions, (2) have a good command of English, (3) ensure that they can attend all classes (with at most one class absence), (4) devote at least 8 hours a week for homework/project assignments, (5) devote about 1 hour a week for peer-reviewing the homework of your fellow students. Only one excused class absence is allowed; class absence policy will be strictly enforced. No previous knowledge of functional programming is required.
The estimated total workload for this course is 135 hours.
Course passing requirements
The students must fulfill the following requirements to pass PUH:
-
Attend all but at most one lecture
-
Score at least 50% on each homework assignment
-
Score at least 50% on the final project
-
Pass the midterm exam
-
Complete all peer review assignments in the time allotted
Additional information
-
Want to know more about PUH?
Check out the course description: http://www.fer.unizg.hr/_download/repository/puh-2014-2015.pdf
(Note that this don't show some of the changes that we're going to implement this year: a couple of changes to the syllabus and course organization.) -
Have questions about Haskell or PUH?
Post them on our mailing group: http://groups.google.com/group/haskell-fer -
Curious why you should learn to program in Haskell?
Read on... (click on "Više...")
Why should I learn to program in Haskell?
There are many reasons, perhaps the biggest of which is that using Haskell will change your perception and understanding of programming. That's also why it's hard to give a satisfying answer to this question, when the question comes from someone who doesn't yet know Haskell, while someone who already know it doesn't need an answer anymore. Huh, an epistemological conundrum!
We suggest you start by watching this video:
http://www.youtube.com/watch?v=Fqi0Xu2Enaw
Then have a look at these discussions:
http://stackoverflow.com/questions/775726/whats-the-fuss-about-haskell
http://stackoverflow.com/questions/3175656/why-should-i-want-to-learn-haskell
Next, read the interview with the author of "Real World Haskell":
http://broadcast.oreilly.com/2009/01/why-you-should-learn-haskell.html
If you want to know more about the basic motivation behind Haskell and functional programming in general, listen to what the founding fathers of Haskell have to say:
http://www.youtube.com/watch?v=iSmkqocn0oQ
Finally, a must-see:
http://www.youtube.com/watch?v=5TMojC0Nb6A
And a must-read:
http://www.xent.com/pipermail/fork/Week-of-Mon-20070219/044101.html
Now, isn't that convincing enough?