Legendary computer scientist Donald Knuth famously said: “I don’t understand things unless I try to program them.” That approach permeates CSE’s Algorithmic Toolbox, one of Coursera’s top massive open online courses (MOOCs). While many algorithm classes focus almost exclusively on theory, Algorithmic Toolbox integrates theory with programming and interactive puzzles to better prepare students for the real world.
“The specialization exposes students to programming challenges, giving them better tools to both learn about and program algorithms,” says instructor Pavel Pevzner, the Ronald R. Taylor Chair and Distinguished Professor of Computer Science at UC San Diego. “They are likely to encounter some of these same programming challenges during job interviews.”
Coursera offers nearly 500 computer science courses and, with more than 150,000 enrollees and a 4.7 rating (out of 5), Algorithmic Toolbox is in the top ten. The class is the first of six in the Data Structures and Algorithms Specialization, which culminates with students programming a genome assembler.
In addition to practical experience, students receive rapid feedback on their work. Programming challenges are instantly graded, using test cases to catch common mistakes.
The MOOC also encourages students to adopt an integrated development environment (IDE) used by many professional programmers. This encourages them to move beyond academic programming, which may not be ideal in the corporate world. Instead, they are exposed to visual debugging, unit tests and other professional programming features rarely covered in university classes.
“Professional IDEs are expensive, so we partnered with JetBrains, the world leader in IDE developments, to make it free for all students,” says visiting CSE professor Alexander Kulikov. “No other MOOCs offers this resource.”
In addition to Pevzner and Kulikov, instructors include assistant professor Daniel Kane, chief data scientist at Yandex.Market, Michael Levin and adjunct Neil Rhodes.
“We have already invested thousands of hours designing Data Structures and Algorithms, and we are still developing it,” says Kulikov. “I am not aware of any offline algorithms course that has required so much upfront investment.”
To further help students, the instructors recently published a MOOC book that powers the Algorithmic Toolbox, describes good programming practices and offers hints to facilitate learning algorithms through programming, he notes.
This level of commitment is reflected in the high ratings. As one student wrote: All the other exercises in other courses that I have taken for Сoursera provide you with a lot of code already done, and you just have to write a very small piece of code to complete the assignments, but not in this one. We need to write the whole assignment on our own, right from choosing the appropriate data structure and algorithm design.
The course is so popular, the team has continued to add new capabilities. “We have launched the Algorithms and Data Structures MicroMaster program at edX,” says Pevzner, “which extends this course by showing how algorithms are connected to real-world problems, such as genome sequencing and GPS navigation.”