From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Original-To: caml-list@sympa.inria.fr Delivered-To: caml-list@sympa.inria.fr Received: from mail2-relais-roc.national.inria.fr (mail2-relais-roc.national.inria.fr [192.134.164.83]) by sympa.inria.fr (Postfix) with ESMTPS id F3D8A7FB0A for ; Wed, 26 Nov 2014 19:12:09 +0100 (CET) Received-SPF: None (mail2-smtp-roc.national.inria.fr: no sender authenticity information available from domain of yminsky@janestreet.com) identity=pra; client-ip=38.105.200.112; receiver=mail2-smtp-roc.national.inria.fr; envelope-from="yminsky@janestreet.com"; x-sender="yminsky@janestreet.com"; x-conformance=sidf_compatible Received-SPF: Pass (mail2-smtp-roc.national.inria.fr: domain of yminsky@janestreet.com designates 38.105.200.112 as permitted sender) identity=mailfrom; client-ip=38.105.200.112; receiver=mail2-smtp-roc.national.inria.fr; envelope-from="yminsky@janestreet.com"; x-sender="yminsky@janestreet.com"; x-conformance=sidf_compatible; x-record-type="v=spf1" Received-SPF: None (mail2-smtp-roc.national.inria.fr: no sender authenticity information available from domain of postmaster@mxout1.mail.janestreet.com) identity=helo; client-ip=38.105.200.112; receiver=mail2-smtp-roc.national.inria.fr; envelope-from="yminsky@janestreet.com"; x-sender="postmaster@mxout1.mail.janestreet.com"; x-conformance=sidf_compatible X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: ArYCANAWdlQmachwnGdsb2JhbABbDgiDQlcEgwG0A5ELCoZNAoEFBxYBAQEBAREBAQEBAQYWCUKEAwEBBAEBAQ8RHQEBLAUGAQ8LCw0CAgkdAgIiBQEMAQUBChIGExIQiAkDEgMKsBY9MYo+eIR6AQWLAwOGQQEBAQEBAQEDAQEBAQEBAQEBEwYKgSSJO4YSB4J4gVWFMwaGcIsohCmDDIE1P5Eegg8YKYR2XlkBgkkBAQE X-IPAS-Result: ArYCANAWdlQmachwnGdsb2JhbABbDgiDQlcEgwG0A5ELCoZNAoEFBxYBAQEBAREBAQEBAQYWCUKEAwEBBAEBAQ8RHQEBLAUGAQ8LCw0CAgkdAgIiBQEMAQUBChIGExIQiAkDEgMKsBY9MYo+eIR6AQWLAwOGQQEBAQEBAQEDAQEBAQEBAQEBEwYKgSSJO4YSB4J4gVWFMwaGcIsohCmDDIE1P5Eegg8YKYR2XlkBgkkBAQE X-IronPort-AV: E=Sophos;i="5.07,463,1413237600"; d="scan'208";a="109739686" Received: from mxout1.mail.janestreet.com ([38.105.200.112]) by mail2-smtp-roc.national.inria.fr with ESMTP/TLS/DHE-RSA-AES256-SHA; 26 Nov 2014 19:12:08 +0100 Received: from tot-qpr-mailcore1.delacy.com ([172.27.56.68] helo=tot-qpr-mailcore1) by mxout1.mail.janestreet.com with smtp (Exim 4.82) (envelope-from ) id 1Xth4R-0006xB-Bq for caml-list@inria.fr; Wed, 26 Nov 2014 13:12:07 -0500 X-JS-Flow: external X-JS-Message-Tracking-Id: tracked/2014-11-26_13-12-07.342107/894da383-7f31-399e-6347-b9b53e7e9632 Received: by tot-qpr-mailcore1 with JS-mailcore (0.1) (envelope-from ) id BUdhf3-AAAHXB-K8; 2014-11-26 13:12:07.351052-05:00 Received: from mail-lb0-f170.google.com ([209.85.217.170]) by mxgoog1.mail.janestreet.com with esmtps (TLSv1:RC4-SHA:128) (Exim 4.72) (envelope-from ) id 1Xth4R-0007E2-64 for caml-list@inria.fr; Wed, 26 Nov 2014 13:12:07 -0500 Received: by mail-lb0-f170.google.com with SMTP id w7so2938824lbi.15 for ; Wed, 26 Nov 2014 10:12:06 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=janestreet.com; s=google; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :cc:content-type; bh=WS08A5twQU31EgMgbLSnuxXOY8q7+tj9XLrvpprEt2M=; b=NiJ3ACBc1p7A5k2EBUvWDgTou9G9FjAnEAXTnoXAAlO1PaIkdfhPfSezl6sD6QPU7h FP3Yu25YG5Gb3er9gwm6b8bign29lgnGvH0qIb1xXwd05Bdy5XTSmtdldOIvRWLxvZvX NEJtenaQVgXiQWoXAwFDM3kp3fjUfVdVQ3eYU= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:mime-version:in-reply-to:references:date :message-id:subject:from:to:cc:content-type; bh=WS08A5twQU31EgMgbLSnuxXOY8q7+tj9XLrvpprEt2M=; b=AZfoVBkdcmM8y6s9h69gkpCcHuaIlOxOYe/NboQ+f8e2AcvIXn2p1ZEF5lEu/W/kWu ZrSVq0ufjVnvusO7l0v9tuO2m5n3aTMtjxvtvqe/ou8Kp+tvxvVgLg7EkjVUDNCy/Wlx 6uWb7OIZodE3BTsr49SbinVI9TlYjvzfdXmb+y6ah4xCRYB/Ngmbr67nY5HjLa9RKEek rKZ3hF1YK3z1fbBryqvQDETqJ5BvJZbqDNvnnXldvE+gkdgHRyjMm9n7qwOq22IP6AaF I7aHAP3T7fZQuCFbHR6W7fGNJU7GtGybx5QLxl1OuHrTbeVybHy+JjvPkm9PLH7m9u3V 3iCA== X-Received: by 10.152.29.97 with SMTP id j1mr28366399lah.3.1417025526219; Wed, 26 Nov 2014 10:12:06 -0800 (PST) X-Gm-Message-State: ALoCoQkRhsnBVvFl1C0ab/IJmIXrMFMqJWV55R4KPKT2tICpTqLWMC5PXrmOezHesOckd+YzxMXYK7k+CW7ksRAhJ6VJqup792oDIbsWrIQki3SUMzymCF15D5Jx3ZKDS0PTDjzdPR/E MIME-Version: 1.0 X-Received: by 10.152.29.97 with SMTP id j1mr28366381lah.3.1417025525930; Wed, 26 Nov 2014 10:12:05 -0800 (PST) Received: by 10.112.198.197 with HTTP; Wed, 26 Nov 2014 10:12:05 -0800 (PST) In-Reply-To: <20141126113738.GA29791@pllab.is.ocha.ac.jp> References: <20141126113738.GA29791@pllab.is.ocha.ac.jp> Date: Wed, 26 Nov 2014 13:12:05 -0500 Message-ID: From:Yaron Minsky To:Kenichi Asai Cc:robert.muller2@gmail.com, "caml-list@inria.fr" Content-Type: text/plain; charset=UTF-8 X-JS-Processed-by: mailcore Subject: Re: [Caml-list] teaching OCaml For those following this thread because they're teaching with OCaml, I really do recommend subscribing to teaching@ocaml.org. We're already starting to discuss better support in OPAM for teaching and what's needed there, and it would be great to have everyone who has a stake in this looped into that conversation. Here's the link: http://lists.ocaml.org/listinfo/teaching y On Wed, Nov 26, 2014 at 6:37 AM, Kenichi Asai wrote: > Hi Bob, > > I have been using OCaml as a teaching language for quite a while. > >> 1. Error messages: It's difficult to give good type errors for ML but I was >> hoping that the state-of-the-art of type error reporting had improved. When my >> students receive a type error, they are utterly mystified, > > Not directly addressing the error messages, but this spring, I used > our type debugger for OCaml in the introductory course. By answering > questions, it leads you to the source of the type error, with better > error messages. With proper instruction, I found that students > actually learn how OCaml types work from the interaction with the type > debugger. It also introduces a few language levels which are good for > novices. > > http://pllab.is.ocha.ac.jp/~asai/TypeDebugger/ > > (English error messages are not polished compared to Japanese error > messages. Your feedback welcome.) > >> 2. GUIs: several of my problem sets work with simple graphics (e.g., rendering >> tessellations) or animations (e.g., a maze walk or a simplified form of >> tetris, or the game "Flow"). We have been hobbling along with the Graphics and >> Labltk modules for this but it has been more pain than my students ought to >> know. We also have some problem sets that work with audio so I would like >> support for that. > > One of my students is porting the universe teachpack of Racket into > OCaml, which enables easy game programming similarly to Racket. > I am now encouraging her to make the library public... > > Sincerely, > > -- > Kenichi Asai > > -- > Caml-list mailing list. Subscription management and archives: > https://sympa.inria.fr/sympa/arc/caml-list > Beginner's list: http://groups.yahoo.com/group/ocaml_beginners > Bug reports: http://caml.inria.fr/bin/caml-bugs