korisnik: lozinka:
Naslovnica Pretraživanje English AAA
IZBORNIK PREDMETA
 
GLAVNI IZBORNIK
 
 
PROGRAMIRANJE U HASKELLU
Šifra: 127252
ECTS: 4
Nositelji: doc. dr. sc. Jan Šnajder
Izvođači: doc. dr. sc. Jan Šnajder - Laboratorijske vježbe
Prijava ispita: Studomat
Engleski jezik:

1,1,1

Svi elementi nastave na predmetu provode se na engleskom jeziku. Ova razina uključuje i predmete s više nastavnih grupa (u hrvatskoj grupi nastava je isključivo na hrvatskom jeziku, a u engleskoj grupi isključivo na engleskom jeziku).
OBAVIJESTI
Objavljeno: 17.12.2014. u 21:58

The reviews for HA6 have been posted on Ferko.

Luka Skukan
Objavljeno: 17.12.2014. u 21:10

The IHaskell notebook used for the Parsec lecture is available in this repository. Follow the directions given in the README.md file in the repository to view it without installing IHaskell.

 

As promised, more examples will be added by the end of the week. A few more examples of using do instead of Applicative notation for parsing and translating between the two will be added as well.

 

If you have any questions, please do not hesitate to ask them on the Google group.

Luka Skukan
Objavljeno: 14.12.2014. u 11:57

This Wednesday, December 17, a special Introduction to Parsec class will be given, in room D346, starting at 18:00. Parsec is a parser combinator library that should be very useful for completing the project assignment.

 

This class is not mandatory, but attendence is highly recommended - Parsec introduces a lot of new concepts and parsing is a crucial part of the project assignment implementation. The materials used will be made available online afterwards. 

Luka Skukan
Objavljeno: 13.12.2014. u 23:59

We've just posted Lecture 9. You can also get it from the file repository located in the right pane of this web site.

Please take some time to go through the lecture and experiment with the code a bit. Should you have any questions, we'd be happy to answer them on our Google group.

Next week we'll look into custom type classes and standard data containers.

Jan Šnajder
Objavljeno: 13.12.2014. u 22:49
Uređeno: 14.12.2014. u 11:32

We have posted HA8 - you can find it in the repository. The deadline is Saturday, December 20. Please remember to submit the in-class exercises (from lectures 8 and 9) as well.

Luka Skukan
Objavljeno: 13.12.2014. u 22:43

Peer review pairs have been assigned for Homework Assignment 7. You can do them on Ferko. As always, don't forget to lock the sections separately and in order. The peer reviews are due on Saturday, December 20, at 23:59.

Luka Skukan
Objavljeno: 06.12.2014. u 09:30

We've just posted Lecture 8. You can also get it from the file repository located in the right pane of this web site.

Please take some time to go through the lecture and experiment with the code a bit. We somewhat rushed through the last part, so please invest extra effort and allow some time for the material to sink in. Should you have any questions, we'd be happy to answer them on our Google group.

Next week we'll continue looking at custom data types.

Jan Šnajder
Objavljeno: 05.12.2014. u 23:31

The task for the PUH 2014/15 project has been posted and is available in the file repository. It is due on January 14 or 21, 2015, as explained in the pdf. You are to host a project in your own public Github repository (it's free, simple and useful) and use the provided README.md file, or an edited version of it. The provided checklist is to be used for marking milestones.

 

Solving the project task will include parsing. To do this, you will need to use a parser. We suggest Parsec. As it is a rather complicated library, a tutorial will be provided in the near future and a short introduction to Parsec lecture will be held instead of the next HA review meetup. More details will be given in due time.

 

Please ask any questions you might have on the Google group.

Luka Skukan
Objavljeno: 05.12.2014. u 21:30

The accompanying IHaskell notebook for the second TA lecture, on the topic of arrays and imperative programming in Haskell, has been made available here. Directions on how to view it without IHaskell installed are present in the README.md file.

 

The .lhs file accompanying the first lecture, on the topic of parallelism in Haskell, should be added in the same repository in the future.

Luka Skukan
Objavljeno: 05.12.2014. u 21:21

Peer review pairs have been assigned for Homework Assignment 6. You can do them on Ferko. As always, don't forget to lock the sections separately and in order. They are due on Friday, December 12, at 23:59.

 

As asked on the Google group, if you cannot possibly do them in time, contact us (the TAs) for an extension.

Luka Skukan
Objavljeno: 05.12.2014. u 20:42

The results for Homework Assignment 5 have been posted and can be seen on Ferko (finally).

Luka Skukan
Objavljeno: 28.11.2014. u 09:34

In the next lecture, we'll look at custom data types. To prepare, you may (but need not to) read Chapter 8 of LYH (http://learnyouahaskell.com/making-our-own-types-and-typeclasses).

Jan Šnajder
Objavljeno: 25.11.2014. u 14:05

The second TA lecture, on Thursday, November 27, will be on the topic of Arrays and Imperative Programming in Haskell. It will be taking place as usual, in room D272 at 18:00.

Luka Skukan
Objavljeno: 23.11.2014. u 12:23
Uređeno: 23.11.2014. u 12:32

We've posted HA7 - you can find it in the repository. The deadline is Friday, December 5, at 23:59. Please remember to also submit the in-class exercises from the last lecture.

Luka Skukan
Objavljeno: 16.11.2014. u 20:14

During the midterms, we will be having two special lectures, given by the TAs, concerning some useful libraries used in real-world Haskell programming. These lectures will not be mandatory, but attendance is highly recommended. The lectures will be taking place in the same timeslot (Thursdays 18:00-20:30+) and in the same location (D272).

 

The first lecture, on Thursday, November 20, will be an introduction to Concurrent and Parallel Programming in Haskell.

Luka Skukan
Objavljeno: 15.11.2014. u 11:29

We've just posted Lecture 7. You can also get it from the file repository located in the right pane of this web site.

Please take some time to go through the lecture and experiment with the code a bit. Should you have any questions, we'd be happy to answer them on our Google group.

Lectures continue in three weeks time, when we'll look into custom data types. To prepare, you may (but need not to) read Chapter 8 of LYH (http://learnyouahaskell.com/making-our-own-types-and-typeclasses).

Jan Šnajder
Objavljeno: 13.11.2014. u 11:22

The official review results for Homework Assignment 4 have been posted on Ferko. As stated previously, we returned back to the old style of reviews (i.e. like for HA1 and HA2), instead of the format you use for peer reviews.

Luka Skukan
Objavljeno: 11.11.2014. u 07:29

You have been assigned peer review pairs for Homework Assignment 5. The deadline is the same as for HA6, Sunday, November 16, at 23:59. You can access the reviews by clicking on the Course Work Reviewing/Recenziranje Radova link in the bottom right of the Ferko index page. Each student has to complete two peer reviews.

 

Remember to store all three sections of the review separately and in order!

Luka Skukan
Objavljeno: 11.11.2014. u 07:26

We have decided to change the rules regarding homework grading requirements. Thus far, you had to have a minimum of 50% of the score on every homework assignment. From this point onwards, however, this has changed to a requirement of 50% on every homework assignment but at most one. You are still required to submit the homework assignments.

 

If you didn't submit a single homework assignment, including HA5, but have at least 50% score on all other homework assignments, please contact us. Due to the retroactive implementation of this rule, you may still pass the course.

 

This means the minimum requirements for passing the course are now as follows:

 

  • Attend all lectures, except at most two
  • Submit all homework assignments within the prescribed deadlines (at most one late submission)
  • Score at least 50% on every homework assignment, except at most one
  • Score at least 50% on the project assignment
Luka Skukan
Objavljeno: 09.11.2014. u 00:28
Uređeno: 09.11.2014. u 00:28

Homework Assignment 6 has been posted. The deadline is on Sunday, November 16, at 23:59.  Please submit the in-class exercises from Lecture 6 with the HA. Keep in mind that we won't be having regular HAs during the midterms, so savour this one.

Luka Skukan
Objavljeno: 08.11.2014. u 17:13
Upcoming lecture

The next lecture is somewhat intense and we will need extra time for it. The class will start at 18:15 as usual but will last till 21:00. Please prepare mentaly and bring rations (food, chocolade, etc.) if you think that helps.

Jan Šnajder
Objavljeno: 08.11.2014. u 13:59
Uređeno: 08.11.2014. u 14:09

We've just posted Lecture 6. You can also get it from the file repository located in the right pane of this web site.

Please take some time to go through the lecture and experiment with the code a bit. Should you have any questions, we'd be happy to answer them on our Google group.

We'll look further into higher order functions in the next lecture.

Jan Šnajder
Objavljeno: 06.11.2014. u 23:26
Uređeno: 14.11.2014. u 11:58
Student questionnaire

Please fill in the student questionnaire and let us know what you think about the course. Your opinion matters! Help us improve this course.

Jan Šnajder
Objavljeno: 04.11.2014. u 22:00

You have been assigned peer reviews for Homework Assignment 4. Due to the confusion caused by the earlier deadline for the last round of peer reviews, the deadline for this one will be the same as for HA5 - Sunday, November 9, at 23:59. You can access the reviews by clicking on the Course Work Reviewing/Recenziranje Radova link in the bottom right of the Ferko index page. Each student has to complete two peer reviews.

 

Remember to store all three sections of the review separately and in order!

 

You also might have noticed we did your reviews via Ferko, using the same mechanism you use for peer reviews. Official scores have also been uploaded. You can see them on the same page you would normally find the official reviews. 

Luka Skukan
Objavljeno: 03.11.2014. u 21:28

We'll be having our second Homework Assignment Review Meetup this Wednesday, November 5, at 18:00. It will be taking place in room D346.

 

Thanks to your hard work on peer reviews, we have some snippets of code marked as either very good and very bad by you, for a variety of reasons. This time around, we will be going through some of that code and discussing it. The authors will, of course, remain anonymous.

Luka Skukan
Objavljeno: 02.11.2014. u 18:44

We've posted the fifth homework assignment. It is due on Sunday, November 9, at 23:59. You do not have to lock the submissions. Please submit the in-class exercises from Lecture 5 together with the HA solutions.

Luka Skukan
Objavljeno: 31.10.2014. u 23:22
Uređeno: 08.11.2014. u 13:57

We've just posted Lecture 5. You can also get it from the file repository located in the right pane of this web site.

Please take some time to go through the lecture and experiment with the code a bit. We moved somewhat quickly over some parts, so please invest extra effort and allow some time for the material to sink in. Should you have any questions, we'd be happy to answer them on our Google group.

In the next lecture, we'll look at higher order functions. To prepare, you may (but need not to) read Chapter 6 of LYH (http://learnyouahaskell.com/higher-order-functions).

Jan Šnajder
Objavljeno: 26.10.2014. u 23:42

We've posted the fourth homework assignment. It is due on Sunday, November 2, at 23:59. You do not have to lock the solutions.

 

Please follow the naming guidelines given at Ferko. Furthmore, please place the required files in the root directory of the archive, not in a subdirectory.

Luka Skukan
Objavljeno: 26.10.2014. u 16:31

You have been assigned two HA3 peer reviews each on Ferko. This does not pertain to students who do not have Ferko access or have submitted their homework assignment in some other way. The reviews are due on Friday, October 31, at 23:59. You can access the reviews by clicking on the Course Work Reviewing/Recenziranje Radova link in the bottom right of the Ferko index page. Each student has to complete two peer reviews.

 

Remember to store all three sections of the review separately and in order!

 

Remarks about the questionnaire for HA2 have been taken into consideration and the questionnaire has been altered. If there are any other errors or insufficiencies in the form, please inform us.

Luka Skukan
Objavljeno: 25.10.2014. u 08:36

We've just posted Lecture 4. You can also get it from the file repository located in the right pane of this web site.

Please take some time to go through the lecture and experiment with the code a bit.

In the next lecture, we'll look at recursion. To prepare, you may (but need not to) read Chapter 5 of LYH (http://learnyouahaskell.com/recursion).

Jan Šnajder
Objavljeno: 23.10.2014. u 22:53
Uređeno: 23.10.2014. u 22:54

The results and official reviews for Homework Assignment 2 have been posted on Ferko for everyone who can access it, including those of you who submitted your HA by e-mail.

Luka Skukan
Objavljeno: 20.10.2014. u 11:23

As announced in the introductory lecture, we will be having homework review meetings, where we will go over common errors in homework assignments, answer questions and show some minor concepts we did not have time to cover in class.

 

The first one will be this Wednesday, October 22, at 18:00. Attendance is not mandatory, but is highly recommended. It will be taking place in room D273, right next door to our usual lecture classroom. The duration of these sessions will vary, but they should not last nearly as long as the lectures.

 

We will comment on HA2, as well, even though it will likely not be completely graded by then.

Luka Skukan
Objavljeno: 19.10.2014. u 17:07
Uređeno: 19.10.2014. u 18:08

You have been assigned two HA2 peer reviews each on Ferko. This does not pertain to students who do not have Ferko access or have submitted their homework assignment in some other way. The reviews are due on Friday, October 24, at 23:59. You can access the reviews by clicking on the Course Work Reviewing/Recenziranje Radova link in the bottom right of the Ferko index page. Each student has to complete two peer reviews.

 

Due to unpredicted difficulties with the system configuration, this review, at least, will not be anonymous.

 

The review form consists of three sections - a questionnaire section, a grading section and a review conclusion section. You must lock all three sections in order. You can do so by clicking on a button at the bottom of each section. If you only lock the last section, the review and grade will not be stored successfully.

 

A part of the site is in Croatian even with English selected as the site language. This includes the grading section. The grades scale from 1 (only failing grade) to 5 (excellent). If you have any questions about the peer reviews, you can ask for help on the Google group or at luka.skukan@fer.hr.

Luka Skukan
Objavljeno: 18.10.2014. u 18:15
Uređeno: 19.10.2014. u 16:38

We've posted the third homework assignment. It is due on Friday, October 24, at 23:59. You do not have to lock the solutions.

 

Please do not write your name or matriculation number, or leave any other indication of your identity in the submitted files. We can still identify you and assign you your grades, but the peer reviews should be fully anonymous for all participants.

Luka Skukan
Objavljeno: 18.10.2014. u 13:08

We've just posted Lecture 3. You can also get it from the file repository located in the right pane of this web site.

Please take some time to go through the lecture and experiment with the code a bit. Be sure to go through two sections that we added retroactively: "Type synonyms" and "IO type".

In the next lecture, we'll take a look at additional Haskell syntax for functions: pattern matching and local definitions. To prepare, you may (but need not to) read Chapter 4 of LYH (http://learnyouahaskell.com/syntax-in-functions). We'll also take a look at how to set up a Haskell project and package it using the so-called Cabal.

Jan Šnajder
Objavljeno: 16.10.2014. u 22:59

The scores and reviews for HA1 have been posted to Ferko. Those of you who still do not have access to Ferko will receive e-mails with your reviews shortly and they will be placed on Ferko retroactively.

 

In other news, you no longer need to lock your homework assignment submissions, including HA2, as the underlaying problem as been solved. Your submissions have been unlocked and should remain so.

Luka Skukan
Objavljeno: 12.10.2014. u 10:52
Uređeno: 16.10.2014. u 23:00

We've posted the second homework assignment. It is due on Friday, October 17, at 23:59. Also attach the in-class exercises from Lecture 2. The same rules apply as for the first homework assignment.

 

The solutions to the first homework assignment have also been posted.

Luka Skukan
Objavljeno: 11.10.2014. u 21:45
Uređeno: 18.10.2014. u 12:57

We've just posted Lecture 2. You can also get it from the file repository located in the right pane of this web site.

Please take some time to go through the lecture and experiment with the code a bit.

In the next lecture, we'll take a look into types and type classes. To prepare, you may (but need not to) read Chapter 3 of LYH (http://learnyouahaskell.com/types-and-typeclasses). The theoretically inclined may (but need not to) read or skim through this and this.

Jan Šnajder
Objavljeno: 06.10.2014. u 23:37

Homework submissions are open on Ferko (http://ferko.fer.hr/ferko), at PUH > Components > Domaće Zadaće. You can switch the site to English by clicking the link in the lower left corner. Please follow the submission instructions given there.

 

All students for whom FER is not the native faculty, as well as former students, should have received login information via e-mail. If this is not the case, or you cannot access the site with the given information, please contact us as soon as possible.

 

Remember that the submission deadline is Thursday, October 9, at 17:00. The late submission deadline is 24 hours later, but you can submit late only once.

Luka Skukan
Objavljeno: 05.10.2014. u 13:59

We've posted the first homework assignment. This assignment is due on Thusday, October 9, at 17:00. 

You are also required to solve and submit all in-class exercises from the last lecture, including those solved during the lecture. The lecture is available in the file repository. Put these solutions in a separate file. The two files should be zipped and submited in a single archive via Ferko. The code should be clear, well-commented and compilable. Further instructions for submission will be available on Ferko. You may upload revised versions of the assignment until the deadline. Please do not lock your submission.

Submissions via Ferko will be enabled on Monday at the earliest.

To solve this homework, you need to understand topics covered in the lecture, as well as the second chapter of LYAH. Please read the second chapter (http://learnyouahaskell.com/starting-out) before attempting to solve the homework assignment.

Luka Skukan
Objavljeno: 04.10.2014. u 11:50
Uređeno: 04.10.2014. u 12:09

We've just posted Lecture 1. You can also get it from the file repository located in the right pane of this web site.

Please take some time to go through the lecture and experiment with the code a bit.

To prepare for the next lecture, please read the second Chapter of LYH (http://learnyouahaskell.com/starting-out). We will have a prep homework for you handed out tomorrow. The homework will be due on next Thursday. It is important that you do your homework, otherwise you won't get the max out of the class.

As always, we'd be happy to answer your questions. Please post them in our google group (https://groups.google.com/forum/#!forum/haskell-fer).

Jan Šnajder
Objavljeno: 28.09.2014. u 14:28
Class start

PUH starts on Thursday, Oct 2, at 18:15 in lecture room 272.

You are expected to bring your own laptop computer to each class. There will be a limited number of power outlets available (we can only use a few extension cords). Please ensure that your laptop battery is fully charged before coming to the class.

For the first lecture, you will need to install the Haskell Platform on your laptop computer. You can get the Haskell Platform from here: http://hackage.haskell.org/platform/

If you encounter any problems, please post your questions here: http://groups.google.com/group/haskell-fer

Jan Šnajder
Objavljeno: 15.07.2014. u 20:14
Uređeno: 02.09.2014. u 19:13
PUH 2014 Applications

Applications for Programming in Haskell (PUH) course are now open. Click here to learn more about this course.

To apply, please fill in the application form at http://tinyurl.com/nqup45p.

The application deadline is Sept 15, 2014 at midnight. Applications after the deadline will not be accepted. Notifications of acceptance will be sent out on Sept 22, 2014.

Jan Šnajder
Objavljeno: 14.07.2014. u 16:31
Uređeno: 02.09.2014. u 19:12
Programming in Haskell 2014 Course

We're excited to announce the third edition of Programming in Haskell (PUH) course! The course will be offered in Fall semester of AY 2014/2015. Students of all levels and profiles are invited to join us!

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. By learning to program in Haskell, you will get acquainted with the functional programming paradigm -- a programming style radically different from the one you're probably used to. 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 group project. A strong team of seven TAs will guide you and make sure you're doing everything right. On top of that, you'll polish your programming style by peer reviewing homeworks and attending biweekly review meetups with the TAs.

When, where, and how?

The lectures will be held on Thursdays, 6:15-8:45 pm in lecture room D272. Distance learning is not offered for this course. The course will be held in English (level L3). The course ECTS credits (4 ECTS as of this year) 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 following two courses: Programming and Software Engineering (19676) and Algorithms and Data Structures (21008).

Numerus clausus

For organizational reasons, the number of participants is limited. Precedence is given to (1) applicants who demonstrate a high motivation for the course, (2) second year MA students, (3) students who have not previously enrolled in this course. The time of application will not be considered when evaluating the applications. 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 will 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 enrolment requirements

All participants are required to (1) have a notebook 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 two class absences), (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. No previous knowledge of functional programming is required.

The estimated total workload for this course is 135 hours (not including optional biweekly meetups).

Course passing requirements

The students must fulfill the following requirements to pass PUH:

  1. Attend all but at most two lectures
  2. Score at least 50% on every homework assignment
  3. Complete and submit the final group project
  4. Complete all peer review assignments in the time allotted

Attendance of biweekly review meetups is optional but highly encouraged.

Important dates

  • Applications open: Jul 15, 2014
  • Applications close: Sept 15, 2014 at midnight
  • Notification of acceptance: Sept 22, 2014
  • Class start: Oct 2, 2014 at 6:15 pm

All announcements will be posted on the course website (http://www.fer.unizg.hr/predmet/puh). FER students be sure to subscribe to receive email notifications.

Additional information

Jan Šnajder
FORUM
Sortiraj prema: naslovu | vremenu zadnjeg odgovora | vremenu otvaranja teme
Naslov Odgovori Zadnji odg.
ČESTA PITANJA
REPOZITORIJ
 
ANKETA
 
Nemate dozvolu koristiti ovu anketu!

ANKETA
 
Nemate dozvolu koristiti ovu anketu!