Schedule and Documents

The first half (7 weeks) of the course was conducted through the Coursera platform. Video lectures, trascripts, and all exercises for the first 7 weeks of the class are availalbe on the Coursera class page:

  https://class.coursera.org/progfun-2012-001/lecture/index


Week Lecture  Slides Resources
1

Functions and Evaluations

  • 1-1 Programming Paradigms
  • 1-2 Elements of Programming
  • 1-3 Evaluation Strategies and Termination
  • 1-4 Conditionals and Value Definitions
  • 1-5 Example: square roots Newton’s method
  • 1-6 Blocks and Lexical Scope

allannotated | blank

 
2

Higher Order Functions

  • 2-1 Tail Recursion
  • 2-2 Higher-Order Functions
  • 2-3 Currying
  • 2-4 Example: Finding Fixed Points
  • 2-5 Scala Syntax Summary

allannotated | blank

 
3

Data and Abstraction

  • 3-1 Functions and Data
  • 3-2 More Fun With Rationals
  • 3-3 Evaluation and Operators
  • 3-4 Class Hierarchies
  • 3-5 How Classes Are Organized

allannotated | blank

 
4

Types and Pattern Matching

  • 4-1 Polymorphism
  • 4-2 Objects Everywhere
  • 4-3 Functions as Objects
  • 4-4 Subtyping and Generics
  • 4-5 Variance
  • 4-6 Decomposition
  • 4-7 Pattern Matching

allannotated | blank

Arithmetic
Expressions
Example
Code
5

Lists

  • 5-1 Lists
  • 5-2 More Functions on Lists
  • 5-3 Pairs and Tuples
  • 5-4 Implicit Parameters
  • 5-5 Higher-Order List Functions
  • 5-6 Reduction of Lists
  • 5-7 Reasoning About Concat
  • 5-8 A Larger Equational Proof on Lists

allannotated | blank

 
6

Collections

  • 6-1 Other Collections
  • 6-2 Combinatorial Search and For-Expressions
  • 6-3 Combinatorial Search Example
  • 6-4 Queries with For
  • 6-5 Translation of For
  • 6-6 Maps
  • 6-7 Putting the Pieces Together

allannotated | blank

Books
Example
Code 

N-Queens
Example
Code

Maps
Example
Code

Polynomials
Example
Code

Mnemonics
Example
Code
 

7

Lazy Evaluation

  • 7-1 Structural Induction on Trees
  • 7-2 Streams
  • 7-3 Lazy Evaluation
  • 7-4 Computing with Infinite Sequences
  • 7-5 Case Study: the Water Pouring Problem
  • 7-6 Course Conclusion

allannotated | blank

Glass
Pouring
Example
Code
8 More on For-Expressions all slides ScalaCheck
Tutorial

Intro to
Finagle

Generators
Example
Code

9 Functions and State all slides BankAcct
Example
Code

Simulations
Example
Code

10 Constraints all slides Constraints
Example
Code
11 Lisp

slides 1
slides 2

 
12 Interpreting Scheme– slides 1
slides 2
Lisp.scala
testInterpreter.sc
 
13 Logic Programming (1) slides
append.pl
database.pl
Prolog.scala
PrologTest.sc
 
14 Review review.txt  

 

CURRENTLY HIDDEN (see the “Rights” of the content)

 

Jour Cours  1pp 2pp 4pp Travaux Pratiques 
23 Sept Paradigmes de la programmation fr fr  fr  Exercice sur les fonctions récursives 
30 Sept Fonctions d’ordre supérieur fr / en fr / en  fr / en  Projet sur les ensembles (1)
7 Oct Abstraction de données fr / en fr / en  fr / en  Projet sur les ensembles (2)
14 Oct Filtrage de motifs fr / en fr / en  fr / en  Projet sur les codes de Huffman (1)
21 Oct Complément sur les listes  fr / en fr / en  fr / en  Projet sur les codes de Huffman (2)
28 Oct La notation “for”  fr / en fr / en  fr / en  Projet sur le traitement de texte (1)
4 Nov Calcul symbolique  fr / en fr / en  fr / en  Projet sur le traitement de texte (2)
11 Nov Fonctions et états (complément) fr / en fr / en  fr / en  Projet sur les simulations temporelles (1)
18 Nov Contraintes fr / en fr / en  fr / en  Examen intermédiaire
25 Nov Calculer avec les flots  fr fr  fr  Projet sur les simulations temporelles (2)
2 Déc Lisp (1) fr fr  fr  Projet sur les flots et les contraintes
8 Déc Lisp (2) fr fr  fr  Projet sur Lisp (1)
16 Déc Prolog (1) fr fr  fr  Projet sur Lisp (2)
23 Déc Prolog (2) fr fr  fr  Examen final