<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xml:base="http://lambda-the-ultimate.org">
<channel>
 <title>Lambda the Ultimate - Teaching &amp; Learning</title>
 <link>http://lambda-the-ultimate.org/taxonomy/term/18/0</link>
 <description></description>
 <language>en</language>
<item>
 <title>In Praise of Scripting: Real Programming Pragmatism</title>
 <link>http://lambda-the-ultimate.org/node/2941</link>
 <description>&lt;p &gt;&lt;b &gt;Ronald Loui, &lt;a href=&quot;http://doi.ieeecomputersociety.org/10.1109/MC.2008.228&quot;&gt;In Praise of Scripting: Real Programming Pragmatism&lt;/a&gt;&lt;/b&gt;, &lt;i &gt;IEEE Computer&lt;/i&gt;, vol. 41,  no. 7, July 2008. &lt;b &gt;[Openly accessible draft &lt;a href=&quot;http://www.cse.wustl.edu/~loui/praiseieee.html&quot;&gt;here&lt;/a&gt;]&lt;/b&gt;&lt;/p&gt;
&lt;p &gt;The July &lt;i &gt;IEEE Computer&lt;/i&gt; carries an article arguing for the use of scripting languages as first programming languages, and also arguing for a greater study of what the author calls &quot;language pragmatics&quot; (the original article is behind the IEEE paywall, but you can find a draft that has roughly the same content &lt;a href=&quot;http://www.cse.wustl.edu/~loui/praiseieee.html&quot;&gt;here&lt;/a&gt;). The argument for using scripting languages as educational languages can be summed up by Loui&#039;s abstract:&lt;br &gt;
&lt;blockquote &gt;The author recommends that scripting, not Java, be taught first, asserting that students should learn to love their own possibilities before they learn to loathe other people&#039;s restrictions. &lt;/blockquote&gt;
The bulk of the article is devoted to exploring this basic theme in more depth, and provides an interesting contrast to the arguments in favor of moving away from Java (and scripting languages) advanced in &lt;a href=&quot;http://www.stsc.hill.af.mil/CrossTalk/2008/01/0801DewarSchonberg.html&quot;&gt;Computer Science Education: Where Are the Software Engineers of Tomorrow?&lt;/a&gt; (discussed earlier on LtU &lt;a href=&quot;http://lambda-the-ultimate.org/node/2597&quot;&gt;here&lt;/a&gt;).&lt;/p&gt;
&lt;br &gt;
&lt;p &gt;Loui spends the latter part of the article arguing that, in addition to syntax and semantics, research on programming language should include a formal study of language &lt;i &gt;pragmatics&lt;/i&gt;. According to Loui, a formal study of pragmatics would address questions such as:&lt;/p&gt;
&lt;ul &gt;
&lt;li &gt;What is the average lifetime of a program written in language X for programmers of type Y, for a program of type Z?&lt;/li&gt;
&lt;li &gt;What is the average time spent authoring versus debugging a program in language X for programmers of type Y, for a program of type Z?&lt;/li&gt;
&lt;li &gt;What is the consumption of short-term memory when programming in language X for programmers of type Y, for a program of type Z?&lt;/li&gt;
&lt;/ul&gt;</description>
 <category domain="http://lambda-the-ultimate.org/taxonomy/term/17">Software Engineering</category>
 <category domain="http://lambda-the-ultimate.org/taxonomy/term/18">Teaching &amp; Learning</category>
 <pubDate>Tue, 19 Aug 2008 21:50:03 -0400</pubDate>
</item>
<item>
 <title>The Little Books in Oz</title>
 <link>http://lambda-the-ultimate.org/node/2920</link>
 <description>&lt;p &gt;Translating code from one programming language to another is a black art.  Even if successful in capturing functionality, each PL has its own styles, idioms and community morals.  Doing automated translations (which I have done) has more misses than hits.  Doing it manually gets you closer but it can require an inordinate amount of time to get it just right.  Even so, PL translations are something that I personally enjoy as it is particularly instructive in teaching the strengths and limitations of expressing different concepts (though I usually catch flak for violating the social values of the target language).&lt;/p&gt;
&lt;p &gt;My latest postings into this gray area are translations of the remaining &lt;a href=&#039;http://www.codepoetics.com/wiki/index.php?title=Topics:TRS_in_other_languages:Oz&#039;&gt;Little Books to Oz&lt;/a&gt; - consisting of &lt;a href=&#039;http://www.ccs.neu.edu/home/matthias/BTLS/&#039;&gt;The Little Schemer&lt;/a&gt;, &lt;a href=&#039;http://www.ccs.neu.edu/home/matthias/BTSS/&#039;&gt;The Seasoned Schemer&lt;/a&gt;, &lt;a href=&#039;http://www.ccs.neu.edu/home/matthias/BTML/&#039;&gt;The Little MLer&lt;/a&gt; and &lt;a href=&#039;http://www.ccs.neu.edu/home/matthias/BALJ/&#039;&gt;A Little Java, A Few Patterns&lt;/a&gt; (previous LtU post on &lt;a href=&#039;http://lambda-the-ultimate.org/node/1393&#039;&gt;The Reasoned Schemer in Oz&lt;/a&gt;).  The Little Books are the antithesis to recipe books.  There&#039;s not much code here that can be plugged into a project.  The aim is to systematically teach programming thought processes.  The books are useful for those wanting to learn Scheme (or ML).  But the lessons are also useful even if those are not your particular language(s) of choice.  Such didactic material may not be everyone&#039;s cup of tea, but they do represent a unique manner in which to teach (and still hoping for The Little Haskeller).&lt;/p&gt;
&lt;p &gt;Along a similar line, I&#039;ve started in on &lt;a href=&#039;http://www.codepoetics.com/wiki/index.php?title=Topics:CLRS_in_other_languages:Oz&#039;&gt;Introduction to Algorithms in Oz&lt;/a&gt;.  Previously, I made a weak attempt at Knuth which I&#039;ll get back to one of these years, but found that translating MIX to higher level languages was tedious and time consuming.  The CLRS book is a bit easier to translate, but the language they chose to express algorithms in doesn&#039;t seem to map to any exact known programming language in the universe.  The language is concise, which was their aim, but it takes some shortcuts and has some peculiarities.  Also, like Knuth, the algorithms are very much oriented to having mutable state.  (&lt;a href=&#039;http://lambda-the-ultimate.org/classic/message11427.html&#039;&gt;Purely Functional Data Structures&lt;/a&gt; is in my queue).  Anyhow, I find it interesting that the authors of the two best known book(s) on algorithms chose to invent their own language rather than use an existing PL.&lt;/p&gt;</description>
 <category domain="http://lambda-the-ultimate.org/taxonomy/term/9">Misc Books</category>
 <category domain="http://lambda-the-ultimate.org/taxonomy/term/18">Teaching &amp; Learning</category>
 <pubDate>Thu, 31 Jul 2008 13:05:06 -0400</pubDate>
</item>
<item>
 <title>A System to Understand Incorrect Programs</title>
 <link>http://lambda-the-ultimate.org/node/2907</link>
 <description>&lt;p &gt;An ancient &lt;a href=&quot;http://www.artinfo-musinfo.org/scans/lb/lb2p12.pdf&quot;&gt;paper&lt;/a&gt; (July 1978: 30 years ago) from the long gone &lt;a href=&quot;http://www.softwarepreservation.org/projects/LISP/index.html#LISP_Bulletin_&quot;&gt;Lisp Bulletin&lt;/a&gt; by Harald Wertz.&lt;p &gt;
The system describes attempts to improve incompletely specified Lisp programs, without however resorting to more information, in the form of specifications, test cases or the like.&lt;p &gt;
A second paper on the system is &lt;a href=&quot;http://www.artinfo-musinfo.org/scans/vlisp/vlispATP4273p5.pdf&quot;&gt;Stereotyped Program Debugging: an Aid for Novice Programmers&lt;/a&gt;.&lt;/p&gt;</description>
 <category domain="http://lambda-the-ultimate.org/taxonomy/term/11">Functional</category>
 <category domain="http://lambda-the-ultimate.org/taxonomy/term/7">History</category>
 <category domain="http://lambda-the-ultimate.org/taxonomy/term/18">Teaching &amp; Learning</category>
 <pubDate>Mon, 21 Jul 2008 07:44:23 -0400</pubDate>
</item>
<item>
 <title>Programming -- Principles and Practice Using C++</title>
 <link>http://lambda-the-ultimate.org/node/2849</link>
 <description>&lt;p &gt;I just noticed Stroustrup is about to publish &lt;a href=&quot;http://www.research.att.com/~bs/programming.html&quot;&gt;this introductory book&lt;/a&gt;.&lt;p &gt;
I am stunned on many levels, so I will keep my comments short.&lt;p &gt;
In general, this seems like HTDP for C++, that is it is not a comprehensive text about C++ or about CS in general, but rather one aimed at teaching the basics of software construction. This is a good idea, and many have written books with similar goals in the past, of course.&lt;p &gt;
I wonder what are the chances that any university not employing Stroustrup will switch to C++ for their introductory course (if they are not using it already). It seems to me everyone is teaching Java...&lt;p &gt;
My second observation is that a large fraction of the book is devoted to STL. Which a good thing on many levels. Some of the topics may even be explained functionally.&lt;p &gt;
My third observation is that even given the intended audience and goals the ToC seems really sparse. I wonder if that&#039;s all the book is going to contain.&lt;/p&gt;</description>
 <category domain="http://lambda-the-ultimate.org/taxonomy/term/14">OOP</category>
 <category domain="http://lambda-the-ultimate.org/taxonomy/term/18">Teaching &amp; Learning</category>
 <pubDate>Fri, 13 Jun 2008 02:29:38 -0400</pubDate>
</item>
<item>
 <title>Computational Thinking</title>
 <link>http://lambda-the-ultimate.org/node/2824</link>
 <description>&lt;blockquote &gt;Computational thinking is a fundamental skill for everyone, not just for computer scientists. To reading, writing, and arithmetic, we should add computational thinking to every child’s analytical ability. Just as the printing press facilitated the spread of the three Rs, what is appropriately incestuous about this vision is that computing and computers facilitate the spread of computational thinking.&lt;/blockquote&gt;
&lt;blockquote &gt;Computational thinking involves solving problems, designing systems, and understanding human behavior, by drawing on the concepts fundamental to computer science. Computational thinking includes a range of mental tools that reflect the breadth of the field of computer science.&lt;/blockquote&gt;
&lt;p &gt;from &lt;a href=&#039;http://www.cs.cmu.edu/afs/cs/usr/wing/www/publications/Wing06.pdf&#039;&gt;Jeannette M. Wing&#039;s Computational Thinking Manifesto&lt;/a&gt;&lt;/p&gt;
&lt;p &gt;The &lt;a href=&#039;http://www.cs.cmu.edu/~CompThink/&#039;&gt;Center for Computation Thinking&lt;/a&gt; at CMU has more information about the subject.&lt;/p&gt;
&lt;p &gt;We talked briefly about Computational Thinking &lt;a href=&#039;http://lambda-the-ultimate.org/node/1748&#039;&gt;back in 2006&lt;/a&gt;. Recently I listened to &lt;a href=&#039;http://itc.conversationsnetwork.org/shows/detail1844.html&#039;&gt;Jon Udell&#039;s interview with Jeannette Wing&lt;/a&gt; and realized that it&#039;s time to bring this subject up again for discussion.&lt;/p&gt;</description>
 <category domain="http://lambda-the-ultimate.org/taxonomy/term/6">General</category>
 <category domain="http://lambda-the-ultimate.org/taxonomy/term/18">Teaching &amp; Learning</category>
 <pubDate>Wed, 28 May 2008 16:16:18 -0400</pubDate>
</item>
<item>
 <title>Lambda, the Ultimate TA</title>
 <link>http://lambda-the-ultimate.org/node/2809</link>
 <description>&lt;small&gt;Benjamin C. Pierce. &lt;a href=&quot;http://www.cis.upenn.edu/~bcpierce/papers/plcurriculum.pdf&quot;&gt;Using a Proof Assistant to Teach Programming Language Foundations, or, Lambda, the Ultimate TA&lt;/a&gt;. April 2008. White paper.&lt;/small&gt;&lt;p&gt;
&lt;blockquote&gt;
In Fall 2007, I taught an introductory course on logic and the theory of programming languages entirely in Coq. The experience was quite demanding — for the students and especially for me!— but the overall payoff in terms of student engagement and performance on exams far exceeded my hopes. I am now convinced that this is the right way to teach programming language foundations and am working on course materials that will allow the approach to be replicated elsewhere.&lt;/blockquote&gt;&lt;p&gt;
Just this weekend I talked with someone about E-Learning, and he mentioned &quot;immediate nonjudgmental feedback&quot; as one of the main advantages of using computers in the classroom. In the context of teaching logic and the art of constructing proofs this boils down to using proof-assistants as &quot;personal TAs&quot;. This is what Pierce tried to do (Paul will be pleased: Coq was the proof assistant Pierce chose), and this note describes his experiences and conclusions.&lt;p&gt;
The teaching materials are available &lt;a href=&quot;http://www.seas.upenn.edu/~cis500&quot;&gt;online&lt;/a&gt;, if you prefer to look at them and form your own opinion before reading Pierce&#039;s conclusions...
</description>
 <category domain="http://lambda-the-ultimate.org/taxonomy/term/18">Teaching &amp; Learning</category>
 <pubDate>Mon, 12 May 2008 16:29:59 -0400</pubDate>
</item>
<item>
 <title>HMF: Simple type inference for first-class polymorphism</title>
 <link>http://lambda-the-ultimate.org/node/2779</link>
 <description>&lt;p &gt;&lt;b &gt;&lt;a href=&quot;http://research.microsoft.com/users/daan/download/papers/hmf-tr.pdf&quot;&gt;HMF: Simple type inference for first-class polymorphism&lt;/a&gt;&lt;/b&gt; - Daan Leijen, Draft April 8, 2008.&lt;/p&gt;
&lt;blockquote &gt;&lt;p &gt;
HMF is a conservative extension of Hindley-Milner type inference with first-class polymorphism and regular System F types. The system&lt;br &gt;
distinguishes itself from other proposals with simple type rules and a very simple type inference algorithm that is just a small extension&lt;br &gt;
of the usual Damas-Milner algorithm. Given the relative simplicity and expressive power, we feel that HMF can be a very attractive&lt;br &gt;
type system in practice. There is a reference implementation of the type system available at: &lt;a href=&quot;http://research.microsoft.com/users/daan/pubs.html&quot;&gt;http://research.microsoft.com/users/daan/pubs.html&lt;/a&gt;.
&lt;/p&gt;&lt;/blockquote&gt;
&lt;p &gt;An excellent paper even in its current draft form. I also placed this under the learning category, because Daan&#039;s writing style is lucid enough that the concepts can be understood by relative newcomers to the field of type theory&lt;/p&gt;</description>
 <category domain="http://lambda-the-ultimate.org/taxonomy/term/18">Teaching &amp; Learning</category>
 <category domain="http://lambda-the-ultimate.org/taxonomy/term/21">Type Theory</category>
 <pubDate>Sun, 20 Apr 2008 12:23:25 -0400</pubDate>
</item>
<item>
 <title>SIGPLAN Workshop on Undergraduate Programming Language Curriculum</title>
 <link>http://lambda-the-ultimate.org/node/2731</link>
 <description>&lt;p &gt;&lt;a href=&quot;http://www.sigplan.org/pl-workshop/&quot;&gt;SIGPLAN Workshop on Undergraduate Programming Language Curriculum&lt;/a&gt;. &lt;/p&gt;
&lt;blockquote &gt;&lt;p &gt;
Programming languages play a critical role in computer science by providing a flexible and robust means by which human beings interact with and control computer systems. Programming language design and implementation has advanced significantly in the recent past in response to the increasing pervasiveness of computer science and technology. Unfortunately, higher-education curriculum has not kept pace, and so it does not appropriately reflect the expansive growth and evolution. This lag is a critical challenge because an up-to-date curriculum is essential to prepare a globally competitive workforce, able to generate and to apply new knowledge, and to take the lead in advancing computer science and technology.&lt;/p&gt;
&lt;p &gt;The goal of this workshop is to bring together leaders in the field of programming languages with expertise in research, teaching, and industrial use to discuss the role of programming language design, implementation, and application in modern, undergraduate, computer science education. Our objective with this effort is to build a community for these experts to discuss, critically evaluate, and identify the transformational changes needed to best prepare undergraduates to participate in the rapidly changing field of computer science and technology.&lt;/p&gt;
&lt;p &gt;In particular, this workshop should provide a forum for the community (1) to evaluate recent changes and likely trends in computing technology and their impact on programming language design, implementation, and application (and vice versa), (2) to discuss the implications of these changes on programming language curricula, and (3) to explore strategies for designing new curricula. For the first task, we will consider trends that include the looming ubiquity of multi-processing systems, the proliferation of domain-specific languages, the increasing diversity of relevant programming languages, infrastructures, and support tools, the growing heterogeneity of device architectures (high-performance computing systems, desktops, game consoles, mobile phones, hand-held devices, etc.), and the increasing complexity of systems (operating, runtime, and application-level). For the second task, we will consider how these trends impact what and how we should be teaching our undergraduates about programming languages. Finally, for the third task, we will explore various tactics for designing new programming language curricula that incorporate the insights from these discussions and yet fit within the constraints of existing undergraduate programs.
&lt;/p&gt;&lt;/blockquote&gt;
&lt;p &gt;We only rarely post links to conference or workshop announcements, but this seems like something worth calling out particular attention to. Many universities use ACM curriculum recommendations to structure their undergraduate programs, so it&#039;s very important to make sure that the programming languages recommendations are in good shape.&lt;/p&gt;</description>
 <category domain="http://lambda-the-ultimate.org/taxonomy/term/18">Teaching &amp; Learning</category>
 <pubDate>Fri, 21 Mar 2008 20:00:31 -0400</pubDate>
</item>
<item>
 <title>OCaml Summer Project</title>
 <link>http://lambda-the-ultimate.org/node/2644</link>
 <description>&lt;p &gt;I am pleased to announce the second OCaml Summer Project! The OSP is
aimed at encouraging growth in the OCaml community by funding students
over the summer to work on open-source projects in OCaml.  We&#039;ll fund up
to three months of work, and at the end of the summer, we will fly the
participants out for a meeting in New York, where people will present
their projects and get a chance to meet with other members of the OCaml
community.
&lt;p &gt;
The project is being funded and run by Jane Street Capital. Jane
Street makes extensive use of OCaml, and we are excited about the idea
of encouraging and growing the OCaml community.
&lt;p &gt;
Our goal this year is to get both faculty and students involved.  To
that end, we will require joint applications from the student or
students who will be working on the project, and from a faculty member
who both recommends the students and will mentor them throughout the
project.  Each student will receive a grant of $5k/month for over the
course of the project, and each faculty member will receive $2k/month.
We expect students to treat this as a full-time commitment, and for
professors to spend the equivalent of one day a week on the project.
&lt;p &gt;
We will also award a prize for what we deem to be the most successful
project.  Special consideration will be given to projects that display
real polish in the form of good documentation, robust build systems, and
effective test suites.  We&#039;ll announce more details about the prize
farther down the line.
&lt;p &gt;
If you&#039;d like to learn more about the OSP and how to apply, you can
look at our website here:
&lt;p &gt;
  &lt;a href=&quot;http://ocamlsummerproject.com&quot;&gt;http://ocamlsummerproject.com&lt;/a&gt;
&lt;p &gt;
Please direct any questions or suggestions you have to
osp@janestcapital.com.  Also, this might be a nice place
for people to leave feedback about the program.
&lt;p &gt;
(if one of the editors thought this was appropriate to move 
to the front page, I would be appreciative.  I think it&#039;s 
something that would be of interest to a large part of LtU&#039;s 
readership.)</description>
 <category domain="http://lambda-the-ultimate.org/taxonomy/term/11">Functional</category>
 <category domain="http://lambda-the-ultimate.org/taxonomy/term/18">Teaching &amp; Learning</category>
 <pubDate>Wed, 30 Jan 2008 20:06:34 -0500</pubDate>
</item>
<item>
 <title>ACM Classic Books Series</title>
 <link>http://lambda-the-ultimate.org/node/2609</link>
 <description>&lt;p &gt;Paul McJones &lt;a href=&quot;http://www.mcjones.org/dustydecks/archives/2008/01/15/66/&quot;&gt;alerts us&lt;/a&gt; that the ACM posted PDF versions of some books in its &lt;a href=&quot;http://portal.acm.org/toc.cfm?id=SERIES11430&amp;amp;type=series&amp;amp;coll=ACM&amp;amp;dl=ACM&quot;&gt;Classic Books Series&lt;/a&gt;, which are available to anyone who creates a free ACM Web Account.&lt;p &gt;
Among the currently available books, LtU readers are likely to be particularly interested in Hoare and Jones&#039;s &lt;i &gt;Essays in computing science&lt;/i&gt;,  Adele Goldberg and  David Robson&#039;s &lt;i &gt;Smalltalk-80: the language and its implementation&lt;/i&gt;, and  Dahl, Dijkstra, and Hoare&#039;s &lt;i &gt;Structured programming&lt;/i&gt;.&lt;p &gt;
Long time readers will also know that I highly recommend Papert&#039;s &lt;i &gt;Mindstorms: children, computers, and powerful ideas&lt;/i&gt; to anyone interested with the effect computers might have on education. Papert&#039;s Logo remains to this day the best children oriented programming language, but even if you disagree with me about this, his book is a must read.&lt;/p&gt;</description>
 <category domain="http://lambda-the-ultimate.org/taxonomy/term/7">History</category>
 <category domain="http://lambda-the-ultimate.org/taxonomy/term/9">Misc Books</category>
 <category domain="http://lambda-the-ultimate.org/taxonomy/term/18">Teaching &amp; Learning</category>
 <pubDate>Tue, 15 Jan 2008 22:00:49 -0500</pubDate>
</item>
<item>
 <title>Computer Science Education: Where Are the Software Engineers of Tomorrow?</title>
 <link>http://lambda-the-ultimate.org/node/2597</link>
 <description>&lt;p &gt;A short &lt;a href=&quot;http://www.stsc.hill.af.mil/CrossTalk/2008/01/0801DewarSchonberg.html&quot;&gt;article&lt;/a&gt; by Robert Dewar and Edmond Schonberg. The authors claim that &lt;i &gt;Computer Science (CS) education is neglecting basic skills, in particular in the areas of programming and formal methods. We consider that the general adoption of Java as a first programming language is in part responsible for this decline&lt;/i&gt;, but also explain why - in their opinion - C, C++, Lisp, Ada and even Java are all crucial for the education of software engineers.&lt;/p&gt;</description>
 <category domain="http://lambda-the-ultimate.org/taxonomy/term/18">Teaching &amp; Learning</category>
 <pubDate>Mon, 07 Jan 2008 20:58:18 -0500</pubDate>
</item>
<item>
 <title>CUFP write-up</title>
 <link>http://lambda-the-ultimate.org/node/2572</link>
 <description>&lt;p &gt;A write-up of the &lt;a href=&quot;http://cufp.functionalprogramming.com/&quot;&gt;Commercial Users of Functional Programming&lt;/a&gt; meeting held this October is &lt;a href=&quot;http://cufp.galois.com/CUFP-2007-Report.pdf&quot;&gt;available&lt;/a&gt;, for those of us who didn&#039;t attend. The write-up is well written and thought provoking (it was written by Jeremy Gibbons, so that&#039;s not a surprise).&lt;p &gt;
The goal of the Commercial Users of Functional Programming series of workshops is &lt;i &gt;to build a community for users of functional programming languages and technology&lt;/i&gt;. This, the fourth workshop in the series, drew 104 registered participants (and apparently more than a handful of casual observers).&lt;p &gt;
It is often observed that functional programming is most widely used for language related projects (DSLs, static analysis tools and the like). Part of the reason is surely cultural. People working on projects of this type are more familiar with functional programming than people working in other domains. But it seems that it may be worthwhile to discuss the other reasons that make functional languages suitable for this type of work. There are plenty of reasons, many of them previously discussed here (e.g., Scheme&#039;s uniform syntax, hygiene, DSELs), but perhaps the issue is worth revisiting, seeing as this remains the killer application for functional programming, even taking into account the other types of project described in the workshop.   &lt;/p&gt;</description>
 <category domain="http://lambda-the-ultimate.org/taxonomy/term/24">DSL</category>
 <category domain="http://lambda-the-ultimate.org/taxonomy/term/11">Functional</category>
 <category domain="http://lambda-the-ultimate.org/taxonomy/term/18">Teaching &amp; Learning</category>
 <pubDate>Tue, 11 Dec 2007 21:47:43 -0500</pubDate>
</item>
<item>
 <title>Idioms for Composing Games with Etoys</title>
 <link>http://lambda-the-ultimate.org/node/2529</link>
 <description>&lt;p &gt;Markus Gaelli, Oscar Nierstrasz, Serge Stinckwich. &lt;a href=&quot;http://vg06.met.vgwort.de/na/8677032b6e94172e56224283aaced2?l=http://www.iam.unibe.ch/~scg/Archive/Papers/Gael06aC5.pdf&quot;&gt;Idioms for Composing Games with Etoys&lt;/a&gt;. &lt;a href=&quot;http://www.db.soc.i.kyoto-u.ac.jp/c5-06/&quot;&gt;C5&#039;06&lt;/a&gt;.&lt;/p&gt;
&lt;blockquote &gt;&lt;p &gt;
Creating one’s own games has been the main motivation for many people to learn programming. But the barrier to learn a general purpose programming language is very high, especially if some positive results can only be expected after having manually written more than 100 lines of code. With this paper we first motivate potential users by showing that one can create classic board- and arcade games like Lights Out, TicTacToe, or Pacman within the playful and constructivist visual learning environment EToys dragging together only a few lines of code. Then we present recurring idioms which helped to develop these games with only a few lines of code.
&lt;/p&gt;&lt;/blockquote&gt;
&lt;p &gt;Learning to program with Etoys is very mind-stretching. Beyond the drag-and-drop syntax there&#039;s a world where programs are created by directly manipulating tangible objects on the screen. The objects expose a varied collection of primitives and it&#039;s a real journey of discovery to learn how to compose simple and beautiful programs. This paper documents some of the &quot;aha!&quot; discoveries that make Etoys programming lots of fun.&lt;/p&gt;</description>
 <category domain="http://lambda-the-ultimate.org/taxonomy/term/18">Teaching &amp; Learning</category>
 <pubDate>Wed, 07 Nov 2007 01:02:48 -0500</pubDate>
</item>
<item>
 <title>Squeaky Tales</title>
 <link>http://lambda-the-ultimate.org/node/2528</link>
 <description>&lt;p &gt;The &lt;a href=&quot;http://wiki.laptop.org/go/Etoys&quot;&gt;Etoys&lt;/a&gt; end-user programming environment is becoming tremendously important because of its &lt;a href=&quot;http://laptop.org/laptop/software/specs.shtml&quot;&gt;inclusion&lt;/a&gt; with the &lt;a href=&quot;http://www.laptop.org/&quot;&gt;One Laptop Per Child XO&lt;/a&gt;. Etoys was invented by Alan Kay&#039;s research group and is in continuous development and use as an integrated feature of Squeak Smalltalk. The &lt;a href=&quot;http://www.squeakland.org/&quot;&gt;Squeak/Etoys community&lt;/a&gt; includes lots of researchers, programmers, teachers, and kids around the world.&lt;/p&gt;
&lt;p &gt;&lt;a href=&quot;http://waveplace.com/movies/&quot;&gt;Squeaky Tales&lt;/a&gt; is a series of short tutorial screencasts designed to each people to program with Etoys. I&#039;m very excited that this may be what&#039;s needed to make Etoys programming easy to learn for people at home. My experience has been that it&#039;s easy and fun to teach Etoys programming face-to-face with everybody using their own laptop, but that it&#039;s very slow and frustrating to try and learn Etoys by yourself just by installing it and clicking around. If Squeaky Tales makes it easy and fun to learn Etoys all by yourself at home then it&#039;s quite a contribution to the world!&lt;/p&gt;
&lt;p &gt;If you try learning Etoys with Squeaky Tales then do leave a comment to say how you get along!&lt;/p&gt;</description>
 <category domain="http://lambda-the-ultimate.org/taxonomy/term/18">Teaching &amp; Learning</category>
 <pubDate>Wed, 07 Nov 2007 00:34:47 -0500</pubDate>
</item>
<item>
 <title>Engineering Software Correctness</title>
 <link>http://lambda-the-ultimate.org/node/2502</link>
 <description>&lt;p &gt;Rex Page, &lt;a href=&quot;http://www.cs.ou.edu/%7Erlpage/SEcollab/EngrSwFDPE05.pdf&quot;&gt;Engineering software correctness&lt;/a&gt;,  Proceedings of the ACMS,PLAN 2005 Workshop on Functional and Declarative Programming in Education, September 25, 2005.&lt;br &gt;
&lt;blockquote &gt;&lt;p &gt;
Software engineering courses offer one of many opportunities for&lt;br &gt;
providing students with a significant experience in declarative&lt;br &gt;
programming. This report discusses some results from taking&lt;br &gt;
advantage of this opportunity in a two-semester sequence of&lt;br &gt;
software engineering courses for students in their final year of&lt;br &gt;
baccalaureate studies in computer science. The sequence is based&lt;br &gt;
on functional programming using ACL2, a purely functional&lt;br &gt;
subset of Common Lisp with a built-in, computational logic&lt;br &gt;
developed by J Strother Moore and his colleagues over the past&lt;br &gt;
three decades...&lt;/blockquote&gt;
&lt;p &gt;
A &lt;a href=&quot;http://www.ccs.neu.edu/home/matthias/JFP/page.html&quot;&gt;JFP educational pearl&lt;/a&gt; with the same title and a similar abstract appears in Journal of Functional Programming  (2007), 17: 675-68, but I haven&#039;t managed to access it yet.&lt;p &gt;
&lt;br &gt;
I am still in the process of finding furniture etc. But at least I have an apartment now... Thanks for all the help and tips, guys!&lt;/p&gt;</description>
 <category domain="http://lambda-the-ultimate.org/taxonomy/term/17">Software Engineering</category>
 <category domain="http://lambda-the-ultimate.org/taxonomy/term/18">Teaching &amp; Learning</category>
 <pubDate>Sun, 21 Oct 2007 02:40:20 -0400</pubDate>
</item>
</channel>
</rss>
