Is software engineering still a good career choice? Looking at failuers like HealthCare.gov, you might not think so, says Prof. Armando Fox of Berkeley. The best that they got in terms of reliability was 95% and initially it was only 41%. But, according to CareerCast, it is the number 1 job. Mind you, this is not ‘programming’, it is ‘software engineering’ which is really different.
Most current courses at the undergrad level are ‘programming’. Related problems are:
The leading texbook ‘Software Engineering’ by Pressman is expensive and has only 1.7 out of 5 starts.
As a result, students just build software as they always did it, leading to students who were not prepared for industry and instructors who did not want to teach this course.
In this session, Prof. Fox will explain how he used MOOCs to improve this course. They started by asking companies what skills students were missing according to them. Turned out, the #1 skill that was missing was working with legacy code. Second and third were working with non-tchnical requirements and automated testing.
Fox decided to use Agile as a teaching methods, because it has an emphasis on change and testing and it just works well.
So, what did the students have to build? Fox thought about what fits with Agile best, and he felt that for continous deployment, SAAS is a good fit. They selected Ruby on Rails, because most students had not yet used it yet. In that sense, it was a life lesson too, because it teaches students to learn new tools.
So students in this course
- build a SaaS project in a 2 pizza team
- do iterations
- use free tools for Ruby on Rails
- recuit customers for non-profits
For the iterations, the students use Cucumber fir user stories, RSpec for testing, PivotalTracker for measuring velocity and Heroku for deployment. In addition to the benefits of using these tools for students, it was also very useful for instructors, because it allows them to follow students throughout the course.
Students later said that this was the most realistic course that they ever took, the number of students rose from 45 to 237 and the rating of the course went up too (from 5.7 to 6.4 out of 7). Both employers and the non-profits that served as customers were very satisfied with the results.
The MOOC story
Now, how does the MOOC fits into this? Because the numbers of students rose so much, Fox was looking for ways to do automated grading. They based their autograders on exitsting tools, like RSpec (testing) reek/flay (style) and codeclimate (metrics)
In the old days, when people ran a succesfull course, they made a book of it. Fox did this too, but made sure that it alignes with the MOOC very well (1 book chapter = 1 week in class, 1 section = 1 MOOC module)
Most important lesson that Fox learned is that this combination works. There is some research showing that a MOOC might be less effective than a regular course, but you should use a MOOC as complementary to your course work and not an online copy of your lectures. This way, the MOOC empowers teachers and TAs.
I liked this talk, the info on the project part was really good, but unfortunately, in contrast with the title, little info was given on the contents of the MOOC. It’s not that I did not cover that, it was just not in the talk. You can check it out online though.