User loginNavigation |
Teaching & LearningMonads in Ruby
Monads in Ruby, a several-part work in progress, is an attempt to explain and demonstrate monads in Ruby. It looks pretty good so far, although I feel like we could coax a friendlier syntax out of Ruby with a little effort. Maybe in Part 4!
By Matt Hellige at 2005-11-20 22:31 | Fun | Ruby | Teaching & Learning | 20 comments | other blogs | 18951 reads
Felleisen: How to Design Class HierarchiesMy talk will instead present a novel approach to the first-year programming curriculum. Specifically, I will explain how a functional semester ideally prepares students for the true essence of object-oriented programming according to Alan Kay: the systematic construction of small modules of code and the construction of programs without assignment statements. Experience shows that these courses prepare students better for upper-level courses than a year of plain object-oriented programming. Initial reports from our students' co-op employers appear to confirm the experiences of our upper-level instructors. (full abstract) We discussed this approach (FP as an introduction to OOP) before. This presentation is from FPDE 2005. Don Knuth: Musings and MoreAn archive of videotaped Knuth lectures. Tutorial on Good Lisp Programming Style
An outstanding tutorial on Lisp programming style by Peter Norvig and Kent Pitman. This to me is like Strunk & White: I re-read it every year or so and it always makes me cringe at what I've been writing lately.
The material is easy to relate to other higher-order languages. Translate your favourite slides into your language of choice and post them to the mailing list! Does Visual Studio Rot the Mind?
An long and interesting rant by Charles Petzold.
Obviously this is mostly about the IDE side of things (seeing as VS is an IDE). Some of the features that VS provides are intended to overcome the huge size of the standard libraries, and you might argue this isn't really a language issue. At some level this is indeed a valid argument. However, I think we should pause every once in awhile and wonder whether better programming language abstractions might make modern programming - with GUIs, XML etc. - easier, and eliminate some of the need for huge libraries. In fact, one can argue that LINQ (Cw) is a step in this direction, as regards data access. It is also worth noting that when IDEs influence the way programming is done, they influence the way languages are used, and thus influence the design space. Programmers demand new language features partly as a response to their experience with the language as it is used in practice. Finally, the impact on teaching and learning programming shouldn't be overlooked. Students naturally want to produce cool GUI applications and use VS. If this makes it harder to introduce them to different programming techniques and languages (and I think it does), this can be highly problematic. Here are some choice quotes from Petzold (who also said that the whole history of new programming languages... for Windows has involved the struggle to reduce the windows hello-world program down to something small, sleek, and elegant):
To get IntelliSense to work right, not only must you code in a bottom-up structure, but within each method or property, you must also write you code linearly from beginning to end — just as if you were using that old DOS line editor, EDLIN. You must define all variables before you use them. No more skipping around in your code.
By Ehud Lamm at 2005-10-29 22:34 | Software Engineering | Teaching & Learning | 71 comments | other blogs | 19642 reads
Lowering the barriers to programming
(via the LtU forum)
Lowering the barriers to programming: A taxonomy of programming environments and languages for novice programmers. Caitlin Kelleher, Randy Pausch. ACM Computing Surveys. Vol. 37. No. 2. Jun 2005.
Since the early 1960's, researchers have built a number of programming languages and environments with the intention of making programming accessible to a larger number of people. This article presents a taxonomy of languages and environments designed to make programming more accessible to novice programmers of all ages. The systems are organized by their primary goal, either to teach programming or to use programming to empower their users, and then, by each system's authors' approach, to making learning to program easier for novice programmers. The article explains all categories in the taxonomy, provides a brief description of the systems in each category, and suggests some avenues for future work in novice programming environments and languages. You might also want to check out this older LtU item. American lecture tour gets realDuring the week of Nov. 7-11 I will be visiting five American universities and giving talks about our approach to teaching programming (as embodied by CTM) and about our research on distributed programming. The tour schedule and talk abstracts are available here. I will be happy to meet with people during the tour. Laziness Without All the Hard Work
Laziness Without All the Hard Work. Barzilay and Clements. FDPE 2005
While teaching programming languages courses, we have discovered that an extension to PLT Scheme allows the system to accommodate both lazy and strict evaluation in the same system. Moreover, the extension is simple and transparent. Finally, the simple nature of the extension means that the resulting system provides a rich environment for both lazy and strict programs without modification. A nice thing about this paper (aside from the fact that it uses the PLT module system) is the careful attention to the relationship between features of the language defined by the interpreter and the features of the defining language. By Ehud Lamm at 2005-08-31 08:18 | Functional | Teaching & Learning | login or register to post comments | other blogs | 8595 reads
Concrete Abstractions on the web
From a comp.lang.scheme announcement (full text quoted below):
By Anton van Straaten at 2005-08-10 21:58 | Misc Books | Teaching & Learning | 6 comments | other blogs | 12429 reads
CTM tour during the week of Nov. 7During the week of Nov. 7, I will be touring the US to visit universities and other institutions teaching with my book (CTM) or thinking of teaching with it. For those who have not seen the book, it teaches programming in a way that is both broad and deep. It covers both practice (writing and running programs) and theory (semantics and reasoning about programs), and covers most of the important programming paradigms in a simple and uniform way. It is based on a long-term research collaboration (more than 15 years by now) by many people on understanding programming languages and their underlying concepts. I will be giving talks and also talking with people. I can answer any questions about the book, its motivation and background, and our teaching experience. I can also offer advice on how to fit the book or its approach in your computer science curriculum. I am now starting to plan the tour. If you are in the US and you would like me to visit your institution, please send me email (pvr@info.ucl.ac.be). |
Browse archives
Active forum topics |
Recent comments
22 weeks 6 days ago
22 weeks 6 days ago
22 weeks 6 days ago
45 weeks 22 hours ago
49 weeks 2 days ago
51 weeks 1 hour ago
51 weeks 1 hour ago
1 year 1 week ago
1 year 6 weeks ago
1 year 6 weeks ago