I Programmer's regular MOOC round up has suggestions to fill any spare time you might have over the coming few months. Or you might want to suggest them to other people since some of them are aimed at non-programmers or beginners.
June 2nd sees the start of Creative Coding a course from Future Learn, the UK-based consortium led by the Open University. This MOOC introduces computer programming as a creative discipline to generate sounds, images, animation and more.
According to its description:
One of the most exciting ways to learn programming is through authoring your own creative programs. Known as “creative coding”, this growing field uses computer software as a medium to develop original creative expression. So if you’re an artist, designer, architect or musician who’s interested in how you can expand your creative skills, or even a computer programmer looking to work in creative applications, you will find this course extremely useful.
Taught by a team lead by Jon McCormack of Monash University, Melbourne Australia, the course extends over 6 weeks with a workload of 3 hours per week. In terms of requirements, no prior knowledge of programming is necessary, but having an interest or background in any creative area would be beneficial in getting the most out of this course.There is some programming content using Processing and questions discussed during the course include:
Can a computer be independently creative?
Who is the author of a work of computer art: the programmer or the program?
How is our understanding of art and creativity changed by technology?
Does the computer bring anything that is really new to art?
An alternative course on the same topic, which also introduces Processing starts on June 23rd on the Cousera platform. Creative Programming for Digital Media & Mobile Apps, presented by Marco Gillies, Matthew Yee-King and Mick Grierson of the University of London, is a 6-week course but requires 5-110 hours per week and 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.
Even though its first presentation hasn't yet come to an end, June 2nd sees the re-start of Cousera's Programming for Everybody, a 10-week course designed to be a first programming course using Python 2.7 and requiring 2-4 hours of work per week.
Course creator Chuck Severance of the University of Michigan is convinced that anyone can learn to program. As well as introducing the basics of Python, with a syllabus that seems very well structured, he also sets out to teach you how to take a programming class so that you can go on to further classes. Another goal of the course is:
to give everyone a kit of free and open materials so anyone who is a teacher can teach a version of this class locally
One of the "further" classes that you might be interested in after completing a first-level Python course is Principles of Computing an 8-week course that introduces the basic mathematical and programming principles that underlie much of Computer Science and sets out to give students the ability to write well-structured, efficient Python code to solve a wide range of common computational problems.
Taught by Scott Rixner and Joe Warren of Rice University, and with a workload of 7-10 hours per week, is it part of the Coursera Fundamentals of Computing Specialization. It is second of a 3-course series that begins with An Introduction to Interactive Programming in Python, which is next scheduled to run in September. While you can take these courses for free if you want to do the Capstone Exam and be eligible for a Specialization Certificate you need to enroll on the Signature Track, currently $49 per course.
The nine 4-week courses in the Data Science Specialization are all in Coursera's schedule with a starting date of June 2nd. All of them have an estimated workload of 3-5 hours each week and to round out your study, and qualify for a Certificate you need to complete the Capstone Project, an assignment that demonstrates your ability to apply the skills learned throughout the courses.
This specialization, which requires "some programming experience in any language" covers the concepts and tools you'll need throughout the entire data science pipeline, from asking the right kinds of questions to making inferences and publishing results.
The nine courses are:
This video from the course team from the Department of Biostatistics at the John Hopkins School of Public Health explain what you'll learn by following this set of courses:
According to the FAQs:
Students should begin by taking The Data Scientist's Toolbox and Introduction to R Programming in order. The other courses may be taken in any order, and in parallel if desired.
Data Science has become a popular topic for MOOCs. We've already looked at Udacity's Data Science Track that is offered as a "full course experience" program which means that students pay a monthly subscription to access courses but have access to a personal coach who will provide advice and feedback including reviewing code and will give guidance on projects to make them an attractive part of a portfolio to show to potential employers. In line with Udacity's policy you can access the courseware for free but this doesn't include projects or verified certificates.
Another alternative, only available as a free MOOC, is Introduction to Data Science. Taught by Bill Howe University of Washington, this 8-week course gives:
a tour the basic techniques of data science, including both SQL and NoSQL solutions for massive data management (e.g., MapReduce and contemporaries), algorithms for data mining (e.g., clustering and association rule mining), and basic statistical modeling (e.g., linear and non-linear regression).
It is next scheduled to start on June 30th and you can expect a workload of 8-10 hours per week. You need basic programming experience and some familiarity with database concepts. There will be four structured programming assignments: two in Python, one in SQL, and one in R; two open-ended assignments graded by peer assessment: one in visualization using Tableau, and one in which you will participate in a Kaggle competition; and two optional assignments: one involving an open-ended real-world project submitted by external organizations with real needs, and one involving processing a large dataset on AWS.
examines key computational abstraction levels below modern high-level languages; number representation, assembly language, introduction to C, memory management, the operating-system process model, high-level machine architecture including the memory hierarchy, and how high-level languages are implemented.
Prerequisites for the course, which is taught by Gaetano Borriello and Luis Ceze of the University of Washington, are:
Introductory programming in C or Java as well as familiarity with binary numbers.
If you want to spend summer acquiring the skills needed for a successful startup, Chuck Eesley's 6-week course, Technology Entrepreneurship starts again on July 13th. This Stanford Online course is on the NovoEd platform and by the conclusion of the course, it is the hope is that participants understand how to:
Articulate a process for taking a technology idea and finding a high-potential commercial opportunity (high performing students will be able to discuss the pros and cons of alternative theoretical models).
Create and verify a plan for gathering resources such as talent and capital.
Create and verify a business model for how to sell and market an entrepreneurial idea.
Generalize this process to an entrepreneurial mindset of turning problems into opportunities that can be used in larger companies and other settings.
Finally the Linux Foundation's Introduction to Linux is starting on the edX platform on August 1st. There has already been tremendous interest, with over 140,000 enrollments and while the course itself, which has an estimated workload of between 40 and 60 hours is taught by Jerry Cooperstein, Linus Torvalds has recorded a short video about how Linux has evolved, some of his favorite things about Linux, and his hope for everyone who participates in the course.
This course is designed for experienced computer users who have limited or no previous exposure to Linux, whether they are working in an individual or Enterprise environment and explores the various tools and techniques commonly used by Linux programmers, system administrators and end users to achieve their day-to-day work in a Linux environment. Upon completion of this training you should have a good working knowledge of Linux, from both a graphical and command line perspective, allowing you to easily navigate through any of the major Linux distributions. You will be able to continue your progress as either a user, system administrator or developer using the acquired skill set.