CS 350 Sem I 2014-15

Table of Contents

1 Course

1.1 About the Course

"19: A language that doesn't affect the way you think about programming, is not worth knowing." - Alan J. Perlis

Text Concepts, Techniques and Models of Computing by van Roy and Haridi. We will also use research articles and other books.

Schedule M Th 2-3:30 pm

Classroom Kadim Diwan 101

Top

1.2 Weightage

NumberWeightage
Homeworks330
Quizzes210
Midsem125
Endsem135

1.3 Homework Late Submission Policy:

Late byPenalty
< 1 day10 %
between 1 day and 1 week25 %
between 1 week and 2 weeks50 %
later than 2 weeks100 %

Top

Top

2 Contents

2.1 Meeting Outlines

  1. Introduction
  2. 01-08-2014 Introduction to Functional Programming in Oz
  3. 04-08-2014 Transcript
  4. 07-08-2014 Transcript Hamming's Problem
  5. 10-08-2014 Threads
  6. 11-08-2014 The Declarative Sequential Model
  7. 14-08-2014 " (discussed suspendable and nonsuspendable statements)
  8. 18-08-2014 " (creating record and procedure values in store, closures.)
  9. 21-08-2014 " (Unification for binding)
  10. 23-08-2014 Introduction to the Untyped Lambda Calculus
  11. 25-08-2014 " (α, β, η, and application)
  12. 28-08-2014 " (Abstract Data Types)
  13. 22-09-2014 Declarative Concurrent Model
  14. 25-09-2014 "
  15. 29-09-2014 "
  16. 09-10-2014 Stream-based Programming in Oz
  17. 13-10-2014 Message-Passing Model
  18. 16-10-2014 "
  19. 19-10-2014 "
  20. 20-10-2014 "
  21. 23-10-2014 "
  22. 27-10-2014 States and Object-oriented Languages
  23. 30-10-2014 Introduction to Ruby
  24. 02-11-2014 "
  25. 03-11-2014 "
  26. 08-11-2014 "
  27. 10-11-2014 Type Inference
  28. 13-11-2014 "

Top

2.2 Common Errors in Programming

3 Software

  1. GNU/Emacs

    1.1 An introductory video. 1.2 Hack Emacs! - modifying and customizing emacs. 1.3 Slightly advanced video tutorials.

  2. Mozart/Oz Install also the 32 bit Tcl/Tk Version 8.5!

    2.1 Installation Instructions

  3. Erlang
  4. Squeak Smalltalk

Top

4 Homeworks

  1. Homework 1, 125 points, Due: August 24
  2. Homework 2, Due: September 26
  3. Lambda Calculus Problems, Partial Solutions
  4. Homework 3, Part 1 Due: November 13

Top

5 References

5.2 Lambda calculus

  1. Gabriel, Richard P. The Why of Y, circa 1980s.

Top

5.3 Smalltalk

5.4 General Reading

  1. Wadler, Philip, Why No One Uses Functional Languages, 1998.

    Myths and Realities of functional Languages. Emphasizes the need for popular applications written in functional languages.

  2. Hughes, John. Why Functional Programming Matters, 1984.

    In addition to "referential transparency" and the lack of mutable state, the article explains how functional programs modularize better than imperative ones, because of two new glues - higher order functions and lazy evaluation.

  3. van Roy, Peter. Programming Paradigms for Dummies: What Every Programmer Should Know. (2009?)

    Another version of the first chapter of the textbook. Can be read independently.

  4. Stratchey, Christopher. Fundamental Concepts in Programming Languages

    An influential, informative set of lecture notes.

  5. Moseley, Ben and Marks, Peter. Out of the Tar Pit

    Argues why mutable state sucks.

  6. Graham, Paul. Roots of Lisp, 2001.

    Explains what makes Lisp different

  7. Stallman, Richard. My Lisp Experiences and the Development of GNU Emacs, 2002.

    Explains the balance of C code and Emacs Lisp code in the design of emacs

  8. John McCarthy Interview, 2008.
  9. Landin, P. J. The Next 700 Programming Languages
  10. Landin, P. J. Correspondence between ALGOL 60 and Church's Lambda Notation, part I
  11. Landin, P. J. Correspondence between ALGOL 60 and Church's Lambda Notation, part II

    Explains how imperative languages and control constructs relate to \(\lambda\) calculus.

6 Some Quotes

Simple things should be simple. Complex things should be possible. - Alan Kay on design

Actually I made up the term object-oriented, and I can tell you I did not have C++ in mind. - Alan Kay

8: A programming language is low level when its programs require attention to the irrelevant. - Alan J. Perlis

19: A language that doesn't affect the way you think about programming, is not worth knowing. - Alan J. Perlis

Top


Date: 2014-11-20T15:23+0530

Author: Satyadev Nandakumar

Org version 7.9.3f with Emacs version 24

Validate XHTML 1.0