Thursday, September 20, 2012

Agile Evolution and Academic Imperatives


This is the topic I had chosen for an hour long session at Agile Goa 2012 Conference conducted on 25th and 26th Aug 2012.

My objective was to set the context on the current state of engineering education in India, relate it to Agile Evolution and proceed with discussions on what needs to be done in order to reduce the industry-academia gap. In this session, I made an attempt to present the following recommendations to students and teachers.

1. Learn Programming C (Do not teach in class room. Promote self-learning. Solve programming exercises that involve significant code (100+ lines each)).

2. Learn data structures through programming experience.

3. Do OO programming in Java and/or C++. Experience C before learning Java or C++ or similar OO languages. Learn ‘Design Principles’, ‘Programming Principles’, etc.

4. Use .Net, J2EE and similar frameworks. Experience Client-Server Architecture instead of limiting yourself to standalone programs.

5. Learn web development. Use JavaScript, XML, SSL etc. Create a website with adequate complexity.

6. Retire subjects that are not relevant for industry track or research track. Merge or consolidate subjects that are relevant but are not standalone candidates. Retain fundamental subjects.

7. Learn about Software Testing, Software Quality Assurance. Get introduced to Performance Testing, Security Testing etc.,

8. Include DW/BI concepts in DBMS courses.

9. Include contemporary networking concepts (such Wi-Fi, VOIP) in Computer Networking course.

10. Study website such as Amazon, eBay, Google, Railway/Airlines Reservation Systems, etc. to analyze and understand requirements and designs.

11. Introduce case study based learning.

12. Carryout software maintenance projects by taking up projects developed by other groups.

13. Develop viable products, prototypes and applications that do not retire immediately after your coursework.

14. Use evolutionary software development methodologies such as agile and lean methods.

15. Conduct software exhibitions to show case the applications or products developed by groups of students.

Obviously, when we enhance our learning methods, we will enable our undergraduates and graduates fit the research track or industry track very well. Any reactive measures or short-term fixes won’t help much.

The slide deck used for this session is available at http://www.slideshare.net/RajaBavani/agile-evolution-and-academic-impreatives-22861423

Reference:

  1. Rethinking About Computer Science Curriculum - Long Overdue, H.N.Mahabala, IIIT, Bangalore