For many students June is the beginning of the long summer vacation. But, with fewer competing pressures, it could be an ideal time to start a MOOC - or perhaps complete one you started and gave up on!
The Mechanical MOOC has announced that it is gearing up to offer its Gentle Introduction to Python course again, with a start date of June 17th. Compared to Coursera and Udacity, Mechanical MOOC takes a different approach. Rather than devising new material it has gathered existing videos, reading matter and coding exercises together and co-ordinates student's progress using e-mail.
The community aspects rely on OpenStudy and while there's no certificate for completion you can earn Codeacedemy badges - and you could of course use Accredible to devise a certificate portfolio for it. Weekly lessons will be posted for eight weeks and you can opt to join a cohort of students or work through them alone and at your own pace.
Last month's roundup included two free course from 10gen on MongoDB. The Java version is now underway, but M101P: MongoDB for Developers starts on June 17th. This course, which has a workload of around 10 hours per week over 7 weeks covers basic installation, JSON, schema design, querying, insertion of data, indexing and working with language drivers, and working in sharded and replicated environments. Participants will also build a blogging platform, backed by MongoDB. Code examples for this version are in Python and a brief Python introduction is included in the course.
Udacity's Introduction to Programming in Java, a 9-week course for beginners taught by Cay Horstmann, starts on June 3rd. As we reported last month, some students on the course will be studying it for college credit with extra support. Although you've missed the chance to enrollment for that scheme, you can still follow the complete course for free and potentially gain a Udacity certificate of completion.
Other news from Udacity is that Interactive 3D Graphics, which we included in Computer Science MOOCs for March is now fully available with 10 lessons covering principles of 3D computer graphics: meshes, transforms, cameras, materials, lighting, and animation. Like other Udacity courses, you can enroll in the class at any time.
Another class that is nearly all available is the Santa Fe Institutes's Introduction to Complexity. Originally billed as an 11-week course when it started in February, this course has been extended, partly due to delays in producing the content but also to allow for new students to join in and enrollment in its first presentation is still open. All the course content is now online so all that is missing is the final exam, the deadline for which is June 30th. The workload for the entire course amounts to around 50 hours (longer if you allow for optional material) and while its not mainstream computer science there's a lot that is both relevant and interesting in the science of complexity.
Coursera has lots to offer in June, starting with, on June 3rd, Introduction to Systematic Program Design - Part 1, which on this occasion has the option of enrolling in the signature track to obtain a verified certificate of completion. Taught by Gregor Kiczales of the University of British Columbia, this 8-week course is about learning to program well: building programs that are elegant, well tested and easy to maintain. It is intended for students with no programming experience, but many former students who already knew how to program have said it made them better programmers.
June 10th sees the start of Creative Programming for Digital Media & Mobile Apps presented by Marco Gillies, Matthew Yee-King and Mick Grierson of the University of London. This 6-week course is intended for anyone who would like to apply their technical skills to creative work ranging from video games to art installations to interactive music, and also for artists who would like to use programming in their artistic practice.
Another 6-week course, which starts June 17th, is Networks Illustrated: Principles without Calculus from Princeton University's Mung Chiang who will introduce the basic principles that govern all aspects of our networked lives with examples from companies like Google and technologies like the Internet in a way that requires no mathematics beyond basic algebra.
Also starting June 17th is Startup Engineering, in which Stanford's Balaji S. Srinivasan and Vijay S. Pande aim to shw you the engineering skills needed to build a technology startup from the ground up over the course of 10 weeks is described as the "spiritual sequel to Peter Thiel's CS183 course at Stanford on startups. Designed to bridge the gap between academic computer science and production software engineering it provides a fast-paced introduction to key tools and techniques (command line, dotfiles, text editor, distributed version control, debugging, testing, documentation, reading code, deployments) and will feature guest appearances by senior engineers from successful startups and large-scale academic projects.
June 18th sees the start of a 6-week course on Discrete Optimization taught by Pascal Van Hentenryck of the University of Melbourne which sets out to teach you how to solve complex search problems with discrete optimization, including constraint programming, local search, and mixed-integer programming.
There are two Coursera offerings covering different aspects of networks that start on June 24th. Software Defined Networking is a 6-week course from Georgia Tech's Nick Feamster, which introduces software defined networking, an emerging paradigm in computer networking that allows a logically centralized software program to control the behavior of an entire network, and how it is changing the way communications networks are managed, maintained, and secured.
Computer Networks from David Wetherall, Arvind Krishnamurthy and John Zahorjan of the University of Washington focuses on the Internet while looking at the design strategies used to solve computer networking problem. This 12-week course introduces the fundamental problems of computer networking, from sending bits over wires to running distributed applications. For each problem, we explore the design strategies that have proven valuable in practice. Topics include error detection and correction, multiple-access, bandwidth allocation, routing, internetworking, reliability, quality of service, naming, content delivery, and security, reveling how the internals of the Internet work to support the Web and other networked applications. Student, who are expected to have a rudimentary understanding of probability (such as the likelihood of an event) and of computer system organization (such as binary representations and arithmetic) will develop a detailed understanding of widely-used networking technologies such as TCP/IP, HTTP, 802.11, Ethernet, and DNS.
Coursera's June list also includes Malicious Software and its Underground Economy: Two Sides to Every Story, presented by Lorenzo Cavallero under the auspices of the University of London. Its topic is cybercrime and it looks at how malware works, how it is analyzed and detected, and the ecosystem that drives it. The recommended background for this 5-week operating systems, computer architecture and, optionally, computer security.
Among the re-runs starting this month is Internet History, Technology and Security which begins again on June 3rd. Taught by Dr Chuck Severance this 11-week course has no prerequisites and a relatively light workload of 3-5 hours per week. Having completed this course at its first presentation I can recommend it to anyone who wants to understand the why and how of the history of the internet and its current operation.
There's also a short course from Google this month. Mapping with Google is a self-paced course designed to teach users about Google Maps, Maps Engine Lite, and Google Earth which will be offered from June 10 to June 24.
This is a course for end users rather than developers but it has an interesting perk - as part of this course, Google is giving participants access to a new version of Google Maps not yet available to all users.