Guest speakers for a Concurrent Programming Course at Tufts
msheldon at cs.tufts.edu
Thu Nov 5 00:06:53 EST 2015
Hello, Riak list!
Please forgive the spam. I sent a query via the Basho site, and it was suggested I post here.
I’m looking for a good guest speaker who can come over to Tufts in Medford to talk about Erlang development, so those of you in or near Cambridge, I mean you :-) I’ve been in touch with Chris Meiklejohn, who may be back in the area soon. But, if he can’t do it, I’d like to meet others who would be interested in working with us. We could also have more than one person come!
I’m teaching an experimental, project-based course on Concurrent Programming at Tufts University. The course is intended to be accessible to undergraduates with comparatively little programming experience (2 terms), and is a hands-on, project-based course that tries to answer the question “How can we effectively program concurrent systems?” Most of the students at the moment, however, are juniors and seniors.
The structure of the course is: 1 month of conventional, shared-memory threads in Python (with supplementary material from Allen Downey’s Little Book of Semaphores); 1 month of programming in the Actor model with Erlang; 1 month of team projects.
The first 2 units have the goal of getting students sufficiently up-to-speed in the corresponding technology so they can tack a real project that interests them. Then, they can dive deeper into the the technology of their choice.
A problem I’m seeing is that most teams want to stick with the familiar (Python): as we start getting the projects booted up, Erlang is still new, and they’re used to the imperative, procedural programming model they’ve used up until this class. It’s also true that they haven’t really seen how to organize a moderate scale project in Erlang. What they don’t realize is how much harder the multithreaded coding will be in Python.
What we really need is someone who can walk through how to develop a real project in Erlang. That’s the ideal topic. So far, students have seen sequential Erlang, basic concurrent programs (spawn, send, receive), and distributed nodes. They’ve done simple things like parallel map, parallel merge sort, and a simple gen_server-type example in homework assignments, and they did a very basic distributed chat as an in-class exercise. I have mentioned linked and monitored processes, but they haven’t done more than create linked processes and observe that the fate of one affects the other.
Besides the project bootstrap topic, I could see a real value in an introduction to supervisor trees, debugging concurrent systems. I’m sure other topics would be good, too.
The bootstrap topic is urgently needed if teams are to be convinced to switch implementation technologies, because after a week or so, they’ll be too far along to switch.
I’m especially interested in the following dates: 9, 10, 16, 18, and 23 November (basically any class meeting between now and Thanksgiving). The class meets 3–4:15 pm on those dates.
If you are interested or if you have any questions or suggestions, please contact me at msheldon at cs.tufts.edu <mailto:msheldon at cs.tufts.edu> and let me know what you would feel comfortable talking about — a little about your background would be nice, too. You can see a course outline at https://www.cs.tufts.edu/comp/50CP/calendar.html <https://www.cs.tufts.edu/comp/50CP/calendar.html>. You can browse, but the assignments are restricted to those with a Tufts EECS account.
I’m excited at the prospect of getting a real practitioner in to talk to us! I’m pretty new to Erlang, too, and I’m enjoying it :-)
Mark A. Sheldon
Department of Computer Science
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the riak-users