Recent Changes - Search:
ECG Home

GitHub

People

Publications

Calendar

Projects

Fall 2017

Older Courses

Spring 2017

Fall 2016

Spring 2016

Fall 2015

Spring 2015

Fall 2014

Spring 2014

Fall 2013

Spring 2013

Fall 2012

Spring 2012

Fall 2011

Spring 2011

Fall 2010

Spring 2010

Fall 2009

Spring 2009

Fall 2008

Spring 2008

Fall 2007

HOWTOs

edit SideBar

DPLspr13

DPLspr13.DPLspr13 History

Hide minor edits - Show changes to output

Changed line 1 from:
[[DPLspr13|Home]] [[Syllabus]] [[Lecture Blog]] [[Resources]] [[https://piazza.com/class#spring2013/91531 | Discussion Group]] [[Bottlenose -> https://grader.cs.uml.edu]]
to:
[[DPLspr13|Home]] [[Syllabus]] [[Lecture Blog]] [[Resources]] [[https://piazza.com/class#spring2013/91531 | Piazza]] [[Bottlenose -> https://grader.cs.uml.edu]]
Changed line 1 from:
[[DPLspr13|Home]] [[Lecture Blog]] [[Resources]] [[https://piazza.com/class#spring2013/91531 | Discussion Group]] [[Bottlenose -> https://grader.cs.uml.edu]]
to:
[[DPLspr13|Home]] [[Syllabus]] [[Lecture Blog]] [[Resources]] [[https://piazza.com/class#spring2013/91531 | Discussion Group]] [[Bottlenose -> https://grader.cs.uml.edu]]
Changed line 1 from:
[[DPLspr13|Home]] [[Assignments]] [[Lecture Blog]] [[Resources]] [[Project]] [[https://piazza.com/class#spring2013/91531 | Discussion Group]] [[Bottlenose -> https://grader.cs.uml.edu]]
to:
[[DPLspr13|Home]] [[Lecture Blog]] [[Resources]] [[https://piazza.com/class#spring2013/91531 | Discussion Group]] [[Bottlenose -> https://grader.cs.uml.edu]]
January 23, 2013, at 02:21 AM by 129.63.17.121 -
Added lines 44-47:
Programming assignments receive an auto-assessment grade, which is generated by the server shortly after upload.  This grade is simply the fraction of tests that the assignment completes successfully.  The final assignment grade may be adjusted up or down by the instructors.

An assignment may be submitted as many times as desired, without penalty, up until the due date.  Each time it is submitted, the auto-assessment is generated.  Only the final submission counts towards your grade.

Deleted lines 56-58:
Programming assignments receive an auto-assessment grade, which is generated by the server shortly after upload.  This grade is simply the fraction of tests that the assignment completes successfully.  The final assignment grade may be adjusted up or down by the instructors.

An assignment may be submitted as many times as desired, without penalty, up until the due date.  Each time it is submitted, the auto-assessment is generated.  Only the final submission counts towards your grade.
January 23, 2013, at 02:19 AM by 129.63.17.121 -
Changed line 53 from:
Please note that programming assignments receive an auto-assessment, which is the fraction of tests that the assignment completes successfully.  The final assignment grade may be adjusted up or down by the instructor.
to:
Programming assignments receive an auto-assessment grade, which is generated by the server shortly after upload.  This grade is simply the fraction of tests that the assignment completes successfully.  The final assignment grade may be adjusted up or down by the instructors.
January 23, 2013, at 02:17 AM by 129.63.17.121 -
Added lines 52-55:

Please note that programming assignments receive an auto-assessment, which is the fraction of tests that the assignment completes successfully.  The final assignment grade may be adjusted up or down by the instructor.

An assignment may be submitted as many times as desired, without penalty, up until the due date.  Each time it is submitted, the auto-assessment is generated.  Only the final submission counts towards your grade.
January 23, 2013, at 02:07 AM by 129.63.17.121 -
Changed line 49 from:
10% Pre-meeting quiz questions \\
to:
10% Pre-lecture quiz questions \\
January 23, 2013, at 02:06 AM by 129.63.17.121 -
Changed lines 39-40 from:
* programming assignments downloads, and
* programming assignment auto-assessments.
to:
* programming assignment downloads, and
* completed/uploaded programming assignment auto-assessments.
January 23, 2013, at 02:06 AM by 129.63.17.121 -
Changed lines 1-2 from:
[[DPLspr13|Home]] [[Assignments]] [[Lecture Blog]] [[Resources]] [[Project]] [[https://piazza.com/class#spring2013/91531 | Discussion Group]] [[Bottlenose | https://grader.cs.uml.edu]]
to:
[[DPLspr13|Home]] [[Assignments]] [[Lecture Blog]] [[Resources]] [[Project]] [[https://piazza.com/class#spring2013/91531 | Discussion Group]] [[Bottlenose -> https://grader.cs.uml.edu]]
Changed line 35 from:
We will use a custom online system called [[Bottlenose | https://grader.cs.uml.edu]] to deliver:
to:
We will use a custom online system called [[Bottlenose -> https://grader.cs.uml.edu]] to deliver:
January 23, 2013, at 02:05 AM by 129.63.17.121 -
Changed lines 1-2 from:
[[DPLspr13|Home]] [[Assignments]] [[Lecture Blog]] [[Resources]] [[Project]] [[https://piazza.com/class#spring2013/91531 | Discussion Group]]
to:
[[DPLspr13|Home]] [[Assignments]] [[Lecture Blog]] [[Resources]] [[Project]] [[https://piazza.com/class#spring2013/91531 | Discussion Group]] [[Bottlenose | https://grader.cs.uml.edu]]
Added lines 33-43:
!!Bottlenose

We will use a custom online system called [[Bottlenose | https://grader.cs.uml.edu]] to deliver:

* pre-lecture reading or video viewing assignments,
* pre-lecture quiz questions,
* programming assignments downloads, and
* programming assignment auto-assessments.

You will receive a link from the Bottlenose server in your email.  If you lose it, you can enter your email address at the Bottlenose home page to have it re-sent.

Deleted line 71:
January 23, 2013, at 02:01 AM by 129.63.17.121 -
Added lines 29-32:
!!Textbooks

The course texts are shown above.  The ''7 Languages'' text is required and will be heavily used.  Please buy it immediately.  The Haskell text is freely available online, and you are welcome to use the web resources.

Changed lines 50-52 from:
Our goal is that the course will consist of 39 assignments.

to:
Our goal is that the course will consist of 39 assignments—approximately one per class meeting.

!!Collaboration and Academic Integrity Policy

You are welcome to discuss ideas in the class with your peers.  However, pair programming or other side-by-side work that involves sharing of code is not allowed.  By turning in an assignment, you attest that ''you have written'' the new code that it includes.

Please be familiar with the university's [[academic integrity policy for graduate students->http://www.uml.edu/catalog/graduate/policies/academic_dishonesty.htm]].

!!Discussion Group

We will be using Piazza to coordinate all discussion and announcements.  Click on the link “Discussion Group” to find the site.
January 23, 2013, at 01:54 AM by 129.63.17.121 -
Added line 46:
Our goal is that the course will consist of 39 assignments.
January 23, 2013, at 01:53 AM by 129.63.17.121 -
Changed lines 33-35 from:
50% Assignments
10% Pre-meeting quiz questions
30% Final exam
to:
50% Assignments \\
10%
Pre-meeting quiz questions \\
30%
Final exam \\
Changed line 42 from:
If they are turned in late
to:
If they are turned in late:
January 23, 2013, at 01:52 AM by 129.63.17.121 -
January 23, 2013, at 01:52 AM by 129.63.17.121 -
Changed lines 29-48 from:
It will be fun.
to:
!!Grading

The course grade will be based on the following distribution of value:

50% Assignments
10% Pre-meeting quiz questions
30% Final exam
10% Class participation

!!Late Policy

Assignments are due at 11:59 pm, typically the day of an associated class meeting
.

If they are turned in late
* 33% of their value is deducted for assignments turned in ''up to'' one week late.
* 66% of their value is deducted for assignments turned in ''more than'' one week late.



Changed line 5 from:
MWF, 10:00a–10:50a,
to:
MWF, 10:00a–10:50a, OS219
Changed lines 1-2 from:
[[DPLspr13|Home]] [[Assignments]] [[Lecture Blog]] [[Resources]] [[Project]] [[http://groups.google.com/group/uml-dpl-spr13 | Discussion Group]]
to:
[[DPLspr13|Home]] [[Assignments]] [[Lecture Blog]] [[Resources]] [[Project]] [[https://piazza.com/class#spring2013/91531 | Discussion Group]]
Changed line 29 from:
It will be fun.
to:
It will be fun.
November 27, 2012, at 09:37 PM by Fred G Martin -
Changed line 25 from:
The implementation work will all be done using Haskell, a pure functional programming language. Thus, in an update to the catalog description, we'll be using Haskell and not Scheme or Standard ML as the “executable metalanguage.”
to:
The implementation work will all be done using Haskell, a pure functional programming language. Thus, in an update to the catalog description, we'll be using Haskell (not Scheme or Standard ML) as the “executable metalanguage.”
November 27, 2012, at 09:36 PM by Fred G Martin -
Changed line 25 from:
The implementation work will all be done using Haskell, a pure functional programming language. Thus, in an update to the catalog description, we'll be using Haskell and not Scheme or SML (Standard ML) as the “executable metalanguage.”
to:
The implementation work will all be done using Haskell, a pure functional programming language. Thus, in an update to the catalog description, we'll be using Haskell and not Scheme or Standard ML as the “executable metalanguage.”
November 27, 2012, at 09:36 PM by Fred G Martin -
Changed line 25 from:
The implementation work will all be done using Haskell, a pure functional programming language. Thus, in an update to the catalog description, we'll be using Haskell and not Scheme or SML as the “executable metalanguage.”
to:
The implementation work will all be done using Haskell, a pure functional programming language. Thus, in an update to the catalog description, we'll be using Haskell and not Scheme or SML (Standard ML) as the “executable metalanguage.”
November 27, 2012, at 09:35 PM by Fred G Martin -
Changed line 25 from:
The implementation work will all be done using Haskell, a pure functional programming language. Thus, contrary to the catalog description, we'll be using Haskell and not Scheme or SML as the “executable metalanguage.”
to:
The implementation work will all be done using Haskell, a pure functional programming language. Thus, in an update to the catalog description, we'll be using Haskell and not Scheme or SML as the “executable metalanguage.”
November 16, 2012, at 06:55 PM by Fred G Martin -
Changed line 27 from:
With this approach, (a) we'll get practical experience using a variety of great practical languages that, as a group, demonstrate all of the important ideas in language design, and (b) we'll learn how to build these systems.
to:
With this approach, (a) we'll get practical experience using a variety of great practical languages that, as a group, demonstrate most of the important ideas in language design, and (b) we'll learn how to build these systems.
Changed line 17 from:
This is a concise and accurate description what we will do.  Of course, if you understood exactly what this paragraph is saying, you've probably already taken a similar course or acquired the self-same knowledge.
to:
This is a concise and accurate description what we will do.  However, if you understood exactly what this paragraph is saying, you've probably already taken a similar course or acquired the self-same knowledge.
Changed lines 23-25 from:
* Strand 2.  We will build interpreters, highlighting core features of language design: interpreting expressions; implementing variables and control structures; implementing objects; implementing a functional programming language; understanding and implementing lambda calculus.

The implementation work will all be done using Haskell, a pure functional programming
language.
to:
* Strand 2.  During the weeks we're not learning new languages, we will build interpreters, highlighting core features of language design: interpreting expressions; implementing variables and control structures; implementing objects; implementing a functional programming language; understanding and implementing lambda calculus.

The implementation work will all be done using Haskell, a pure functional programming
language. Thus, contrary to the catalog description, we'll be using Haskell and not Scheme or SML as the “executable metalanguage.”
Changed lines 15-29 from:
->A one-semester course designed to provide students with hands-on understanding of the underlying concepts of programming languages, the principles of their design, and the fundamental methods for their implementation. An executable metalanguage such as Scheme or SML is used throughout the course, facilitating the design of high-level, concise interpreters that are easy to comprehend. The approach is analytical because the salient features of the imperative, functional, object-oriented, and logic programming paradigms are described in the executable meta-language.
to:
->A one-semester course designed to provide students with hands-on understanding of the underlying concepts of programming languages, the principles of their design, and the fundamental methods for their implementation. An executable metalanguage such as Scheme or SML is used throughout the course, facilitating the design of high-level, concise interpreters that are easy to comprehend. The approach is analytical because the salient features of the imperative, functional, object-oriented, and logic programming paradigms are described in the executable meta-language.

This is a concise and accurate description what we will do.  Of course, if you understood exactly what this paragraph is saying, you've probably already taken a similar course or acquired the self-same knowledge.

Here's another take at a description.  There are two parallel strands that we'll develop in the class:

* Strand 1.  We will learn Seven Languages in Seven Weeks, working with Bruce Tate's wonderful book by this title.  The seven languages are: Clojure, Haskell, Io, Prolog, Scala, Erlang, and Ruby.

* Strand 2.  We will build interpreters, highlighting core features of language design: interpreting expressions; implementing variables and control structures; implementing objects; implementing a functional programming language; understanding and implementing lambda calculus.

The implementation work will all be done using Haskell, a pure functional programming language.

With this approach, (a) we'll get practical experience using a variety of great practical languages that, as a group, demonstrate all of the important ideas in language design, and (b) we'll learn how to build these systems.

It will be fun
.
Added lines 12-15:

According to the [[http://www.uml.edu/catalog/courses/graduate/91.531.htm|catalog]], 91.531 Design of Programming Languages is...

->A one-semester course designed to provide students with hands-on understanding of the underlying concepts of programming languages, the principles of their design, and the fundamental methods for their implementation. An executable metalanguage such as Scheme or SML is used throughout the course, facilitating the design of high-level, concise interpreters that are easy to comprehend. The approach is analytical because the salient features of the imperative, functional, object-oriented, and logic programming paradigms are described in the executable meta-language.
Changed line 11 from:
|| Beyond 20-minute tutorials. || Haskell—the best functional programming language around.
to:
|| Beyond 20-minute tutorials. || Haskell—the best functional programming language around. 
Changed line 11 from:
|| Beyond 20-minute tutorials. ||Haskell—the best functional programming language around.
to:
|| Beyond 20-minute tutorials. || Haskell—the best functional programming language around. 
Changed line 11 from:
|| Beyond 20-minute tutorials. || Haskell—the best functional programming language around.
to:
|| Beyond 20-minute tutorials. ||Haskell—the best functional programming language around.
Changed line 10 from:
|| '''Seven Languages in Seven Weeks: [[<<]] A Pragmatic Guide to [[<<]] Learning Programming Languages''' (2010) [[<<]] Bruce A. Tate [[<<]] %height=150px% [[http://pragprog.com/book/btlang/seven-languages-in-seven-weeks | Attach:seven-lang.jpg]] || '''Learn You a Haskell for Great Good!''' (2011) [[<<]] Miran Lipova&#269;a [[<<]] %height=150px% [[http://learnyouahaskell.com/ | Attach:learn-you-a-haskell.jpg]]
to:
|| '''Seven Languages in Seven Weeks: [[<<]] A Pragmatic Guide to Learning Programming Languages''' (2010) [[<<]] Bruce A. Tate [[<<]] %height=150px% [[http://pragprog.com/book/btlang/seven-languages-in-seven-weeks | Attach:seven-lang.jpg]] || '''Learn You a Haskell for Great Good!''' (2011) [[<<]] Miran Lipova&#269;a [[<<]] %height=150px% [[http://learnyouahaskell.com/ | Attach:learn-you-a-haskell.jpg]]
Changed line 11 from:
|| Beyond 20-minute tutorials. || Haskell&#151;the best functional programming language around.
to:
|| Beyond 20-minute tutorials. || Haskell&#151;the best functional programming language around. 
Changed line 11 from:
|| Beyond 20-minute tutorials.  || &#147;The mind is what the brain does.&#148;&#151;Steven Pinker
to:
|| Beyond 20-minute tutorials. || Haskell&#151;the best functional programming language around.
Changed lines 10-11 from:
|| '''Seven Languages in Seven Weeks: [[<<]] A Pragmatic Guide to Learning Programming Languages''' (2010) [[<<]] Bruce A. Tate [[<<]] %height=150px% [[http://pragprog.com/book/btlang/seven-languages-in-seven-weeks | Attach:seven-lang.jpg]] || '''Learn You a Haskell for Great Good!''' (2011) [[<<]] Miran Lipova&#269;a [[<<]] %height=150px% [[http://learnyouahaskell.com/ | Attach:learn-you-a-haskell.jpg]]
|| Beyond 20-minute tutorials.  || &#147;The mind is what the brain does.&#148;&#151;Steven Pinker
to:
|| '''Seven Languages in Seven Weeks: [[<<]] A Pragmatic Guide to [[<<]] Learning Programming Languages''' (2010) [[<<]] Bruce A. Tate [[<<]] %height=150px% [[http://pragprog.com/book/btlang/seven-languages-in-seven-weeks | Attach:seven-lang.jpg]] || '''Learn You a Haskell for Great Good!''' (2011) [[<<]] Miran Lipova&#269;a [[<<]] %height=150px% [[http://learnyouahaskell.com/ | Attach:learn-you-a-haskell.jpg]]
|| Beyond 20-minute tutorials.  || &#147;The mind is what the brain does.&#148;&#151;Steven Pinker
Changed lines 10-11 from:
|| '''Seven Languages in Seven Weeks: [[<<]] A Pragmatic Guide to Learning Programming Languages''' (2010) [[<<]] Bruce A. Tate [[<<]] %height=150px% [[http://pragprog.com/book/btlang/seven-languages-in-seven-weeks | Attach:seven-lang.jpg]] || '''The Society of Mind''' (1987) [[<<]] Marvin Minsky [[<<]] %height=150px% [[http://web.media.mit.edu/~minsky/ | Attach:som-minsky.jpg]]
|| By far the best AI text. || &#147;The mind is what the brain does.&#148;&#151;Steven Pinker
to:
|| '''Seven Languages in Seven Weeks: [[<<]] A Pragmatic Guide to Learning Programming Languages''' (2010) [[<<]] Bruce A. Tate [[<<]] %height=150px% [[http://pragprog.com/book/btlang/seven-languages-in-seven-weeks | Attach:seven-lang.jpg]] || '''Learn You a Haskell for Great Good!''' (2011) [[<<]] Miran Lipova&#269;a [[<<]] %height=150px% [[http://learnyouahaskell.com/ | Attach:learn-you-a-haskell.jpg]]
|| Beyond 20-minute tutorials.  || &#147;The mind is what the brain does.&#148;&#151;Steven Pinker
Changed line 10 from:
|| '''Seven Languages in Seven Weeks: A Pragmatic Guide to Learning Programming Languages''' (2010) [[<<]] Bruce A. Tate [[<<]] %height=150px% [[http://pragprog.com/book/btlang/seven-languages-in-seven-weeks | Attach:seven-lang.jpg]] || '''The Society of Mind''' (1987) [[<<]] Marvin Minsky [[<<]] %height=150px% [[http://web.media.mit.edu/~minsky/ | Attach:som-minsky.jpg]]
to:
|| '''Seven Languages in Seven Weeks: [[<<]] A Pragmatic Guide to Learning Programming Languages''' (2010) [[<<]] Bruce A. Tate [[<<]] %height=150px% [[http://pragprog.com/book/btlang/seven-languages-in-seven-weeks | Attach:seven-lang.jpg]] || '''The Society of Mind''' (1987) [[<<]] Marvin Minsky [[<<]] %height=150px% [[http://web.media.mit.edu/~minsky/ | Attach:som-minsky.jpg]]
Changed lines 10-11 from:
|| '''Artificial Intelligence: A Modern Approach''' (3rd edition &#150; 2009) [[<<]] Stuart Russell and Peter Norvig  [[<<]] %height=150px% [[http://aima.cs.berkeley.edu/ | Attach:aima-cover.jpg]] || '''The Society of Mind''' (1987) [[<<]] Marvin Minsky [[<<]] %height=150px% [[http://web.media.mit.edu/~minsky/ | Attach:som-minsky.jpg]]
|| By far the best AI text. || &#147;The mind is what the brain does.&#148;&#151;Steven Pinker
to:
|| '''Seven Languages in Seven Weeks: A Pragmatic Guide to Learning Programming Languages''' (2010) [[<<]] Bruce A. Tate [[<<]] %height=150px% [[http://pragprog.com/book/btlang/seven-languages-in-seven-weeks | Attach:seven-lang.jpg]] || '''The Society of Mind''' (1987) [[<<]] Marvin Minsky [[<<]] %height=150px% [[http://web.media.mit.edu/~minsky/ | Attach:som-minsky.jpg]]
|| By far the best AI text. || &#147;The mind is what the brain does.&#148;&#151;Steven Pinker
Added lines 1-11:
[[DPLspr13|Home]] [[Assignments]] [[Lecture Blog]] [[Resources]] [[Project]] [[http://groups.google.com/group/uml-dpl-spr13 | Discussion Group]]

91.531 Design of Programming Languages, Spring 2013 \\
'''Prof. Fred Martin''', (:html:)<a href="http://mailhide.recaptcha.net/d?k=01COSqrfJ-58cc94fQb2pI1A==&c=iZBP8kCznrjdnfw8QFFKADFtsIimnLdVHk581djoISQ=" onclick="window.open('http://mailhide.recaptcha.net/d?k=01COSqrfJ-58cc94fQb2pI1A==&c=iZBP8kCznrjdnfw8QFFKADFtsIimnLdVHk581djoISQ=', '', 'toolbar=0,scrollbars=0,location=0,statusbar=0, menubar=0,resizable=0,width=500,height=300'); return false;" title="Reveal this e-mail address">click for fred's email</a>(:htmlend:) \\
MWF, 10:00a&#150;10:50a,

We will be using the following books:

|| border=0 width=100% cellpadding=10
|| '''Artificial Intelligence: A Modern Approach''' (3rd edition &#150; 2009) [[<<]] Stuart Russell and Peter Norvig  [[<<]] %height=150px% [[http://aima.cs.berkeley.edu/ | Attach:aima-cover.jpg]] || '''The Society of Mind''' (1987) [[<<]] Marvin Minsky [[<<]] %height=150px% [[http://web.media.mit.edu/~minsky/ | Attach:som-minsky.jpg]]
|| By far the best AI text. || &#147;The mind is what the brain does.&#148;&#151;Steven Pinker
Edit - History - Print - Recent Changes - Search
Page last modified on January 28, 2013, at 02:36 PM