Friday, October 4, 2013

How Can We Make Software Engineering Curriculum Interesting?


'How Can We Make Software Engineering Curriculum Interesting?' This was the topic of our panel discussion in the workshop on software engineering education and training (WSEET) -  a pre-ICSE 2014 event. The objective of this discussion was to explore different ways to  make ‘Software Engineering’ course interesting.

Think about the class room sessions on Requirement Analysis,  Estimation Techniques, Project Planning, Methodologies, and so on!   Are these sessions too theoretical?  Why aren't these sessions interesting? What do we need to improve and make it interesting?

Here are some ideas and suggestions that emerged out of our discussion.
  1. Class room interactions on software engineering supplemented with hands-on projects to small groups of students is a way to combine theory with practice.
  2. Learning from open source projects is an opportunity that never existed a decade ago for students.  Downloading open source code, studying the code, adding new features or enhancements will make it an interesting learning experience.
  3. Making class room sessions interactive instead of presentation driven monotonous lectures is a must.
  4. In order to get an understanding of what happens in the industry it is good to consider invited lectures (by industry experts), and  learning from recorded video sessions of international experts.
  5. Case study based learning (similar to the Harvard Business School model) is very appropriate in software engineering courses. Students can learn from both successful and failed project case studies.
There were several other related suggestions.  According to the 70-20-10 formula,  70% of what we learn comes through practice and it makes lot of sense to supplement class room sessions with projects, hands-on practice and several other techniques (such as case study based learning or invited lectures).

These days it is very easy to ensure that software engineering curriculum of a university is second to none in the world. We have access to the curriculum of top universities. We know the top reference books and students have access to lots of high-quality material on the web. Eventually, making the curriculum ‘interesting’ is a delivery issue.  There are 3 groups of key players or stakeholders who have to play their role to make it interesting.  Here are these groups.

Administrators or senior management of educational institutions:  Their role is to provide the infrastructure with adequate computing facilities and support partnerships with industry and provision incubation centers.  In order to do this it is necessary to revisit the mission, vision and goals of the institute from time to time.

Faculty members:  Inspiring teachers pull students.  If we want our course to be interesting, we need to carry an interesting personality and attitude.  We cannot afford to settle down with the same old reference books and examples.  We must be lifelong learners so that we do not stagnate. Because, when we stagnate we become dull and uninteresting.

Students:  Students have to be curious, interactive and inquisitive.  Students must be willing to read, interact, and collaborate.  They must be ready to solve challenging problems and stay away from the temptation of doing just enough to score grades.

With these measures, I am sure learning software engineering can be very interesting. 

What do you think?  Do you have any ideas or suggestions?