Difference between revisions of "Informatics 1 - Functional Programming"

From HaskellWiki
Jump to: navigation, search
(Updated the page with recent and relevant information for the 2016 course.)
 
(2 intermediate revisions by 2 users not shown)
Line 4: Line 4:
 
== Instructor ==
 
== Instructor ==
   
The course lecturer is professor [http://homepages.inf.ed.ac.uk/wadler/ Philip Wadler].
+
For the year 2016, the course lecturer is Don Sannella [http://www.inf.ed.ac.uk/people/staff/Donald_Sannella.html].
   
 
== Setup ==
 
== Setup ==
Line 18: Line 18:
 
=== Textbook ===
 
=== Textbook ===
   
The course textbook is Simon Thompson: Haskell, the Craft of Functional Programming.
+
The course textbook is Simon Thompson: Haskell, the Craft of Functional Programming. It is also recommended that students explore Miran Lipovača: Learn You a Haskell for Great Good, which is free online, as well as readily available from book shops. [http://learnyouahaskell.com/]
   
 
=== Editor ===
 
=== Editor ===
   
 
The text editor used in the course is [http://www.gnu.org/software/emacs/ Emacs] in [[Haskell mode for Emacs|Haskell mode]].
 
The text editor used in the course is [http://www.gnu.org/software/emacs/ Emacs] in [[Haskell mode for Emacs|Haskell mode]].
  +
  +
Students may also be interested in running [[Xmonad]], which is written in Haskell, to show their devotion to the cause.
   
 
=== Packages ===
 
=== Packages ===
   
Most exercises require students to verify their code using [[QuickCheck]], where writing appropriate test properties is part of the challenge. In addition, some tutorial exercises use a modified version of the [http://www.haskell.org/SOE School of Expression graphics library], which relies on the following packages:
+
Most exercises require students to verify their code using [[QuickCheck]], where writing appropriate test properties is part of the challenge. In addition, some tutorial exercises use OpenGL graphics, and depend on the following packages:
   
 
* [[OpenGL]]
 
* [[OpenGL]]
* [[GLFW]]
+
* [[GLUT]]
   
<b>Note:</b> to run GLFW under Mac OS X you have to use [[WxHaskell/MacOS X#Using wxHaskell on MacOS X platforms|EnableGUI]] (easy instructions are on the [http://www.haskell.org/soe/software1.htm SOE site]).
 
  +
Previous incarnations of the course relied on [[GLFW]] instead of [[GLUT]]. QuickCheck can be installed via [[Cabal]], the Haskell package and build system.
   
 
=== GHC Installation ===
 
=== GHC Installation ===
   
For some brief notes on installing ghc with GLFW on windows see [[Informatics 1 Windows Installation]]
+
For some brief notes on installing ghc on windows see [[Informatics 1 Windows Installation]]
  +
  +
=== Tutorials ===
  +
  +
Information about the tutorials is available [https://portal.theon.inf.ed.ac.uk/reports/upt/open/TP072_Tutorial_Groups/inf1-fp.shtml here], including groups and times.
  +
  +
In addition to the regular tutorials, advanced tutorials are held starting week 4. This is a drop-in session for students who want extra challenges and in-depth work. These sessions are quite popular, so it is expected that students have made an attempt at some of the optional exercises, so that we can fit students in the small tutorial room who will get value from the session.
   
 
== Support ==
 
== Support ==
   
There are several ways of getting help with your FP course (or with any aspect of the informatics 1 coursework). Some of these involve using IRC. If you have never used IRC before then take a look at CompSoc's [http://compsoc.tardis.ed.ac.uk/wiki/IRC_Tutorial IRC Tutorial].
+
There are several ways of getting help with your FP course (or with any aspect of the informatics 1 coursework). Some of these involve using Internet Relay Chat, or IRC.
   
The Informatics 1 channel is #inf1 on irc.imaginarynet.org.uk. Here you will find fellow 1st year students who are all doing the same work as you, along with a variety of higher students who will help you. The channel is run by <b>Quest</b> (otherwise known as Ed Leiper) who is one of the FP tutors.
+
The Informatics 1 channel is #inf1 on irc.imaginarynet.uk. Here you will find fellow 1st year students who are all doing the same work as you, along with a variety of higher students who will help you. There are several first years as well as several people in older years (and indeed, those who have left school) who idle on the channel, and will be more than happy to answer any problems, or just talk about life, experience, and advice.
   
You can also get a lot of help from [http://compsoc.tardis.ed.ac.uk CompSoc], which is the university-wide Computing Society. You will find members on IRC channel #compsoc.
+
You can also get a lot of help from [http://comp-soc.com CompSoc], which is the university-wide Computing Society. You will find members on IRC channel #compsoc.
   
The labs on the fifth floor of Appleton Tower have demonstrators on-hand specifically to help first year student from 3-5 every week day. You will notice them because they will be lounging around at the front of the room. Sticking your hand in the air will get their attention. They're very friendly and have been prepared on what you will be working with.
 
  +
Peer support is available in the form of INF-PALS. Please see [http://web.inf.ed.ac.uk/infweb/student-services/ito/students/year1/student-support/infpals].

Latest revision as of 01:42, 20 October 2016

The course Informatics 1 - Functional Programming is the first programming course taught to students at the School of Informatics of the University of Edinburgh.

Instructor

For the year 2016, the course lecturer is Don Sannella [1].

Setup

The course consists of 20 lectures and 10 tutorials spread over the length of the first semester of the year (September–December). Each tutorial has its own set of exercises, and examination is by two programming tests.

Students' background

The course is aimed primarily at students with no prior programming experience.

Materials

Textbook

The course textbook is Simon Thompson: Haskell, the Craft of Functional Programming. It is also recommended that students explore Miran Lipovača: Learn You a Haskell for Great Good, which is free online, as well as readily available from book shops. [2]

Editor

The text editor used in the course is Emacs in Haskell mode.

Students may also be interested in running Xmonad, which is written in Haskell, to show their devotion to the cause.

Packages

Most exercises require students to verify their code using QuickCheck, where writing appropriate test properties is part of the challenge. In addition, some tutorial exercises use OpenGL graphics, and depend on the following packages:

Previous incarnations of the course relied on GLFW instead of GLUT. QuickCheck can be installed via Cabal, the Haskell package and build system.

GHC Installation

For some brief notes on installing ghc on windows see Informatics 1 Windows Installation

Tutorials

Information about the tutorials is available here, including groups and times.

In addition to the regular tutorials, advanced tutorials are held starting week 4. This is a drop-in session for students who want extra challenges and in-depth work. These sessions are quite popular, so it is expected that students have made an attempt at some of the optional exercises, so that we can fit students in the small tutorial room who will get value from the session.

Support

There are several ways of getting help with your FP course (or with any aspect of the informatics 1 coursework). Some of these involve using Internet Relay Chat, or IRC.

The Informatics 1 channel is #inf1 on irc.imaginarynet.uk. Here you will find fellow 1st year students who are all doing the same work as you, along with a variety of higher students who will help you. There are several first years as well as several people in older years (and indeed, those who have left school) who idle on the channel, and will be more than happy to answer any problems, or just talk about life, experience, and advice.

You can also get a lot of help from CompSoc, which is the university-wide Computing Society. You will find members on IRC channel #compsoc.

Peer support is available in the form of INF-PALS. Please see [3].