top of page

Modernizing the computer science course on software engineering is essential

  • .
  • 5 days ago
  • 4 min read

Updated: 2 days ago




Background 


In this fast-changing world, every branch of technology needs to be regularly modernized. Computer Science education in general and Software Engineering (SE) in particular are not exceptions. Recently, I taught a course on SE for the CS students of a prestigious National institution. To begin with, I reviewed the contents of their existing SE syllabus and the first thing I did was to rename the course to ‘The Modern Software Engineering Practices’. In recent times, whenever I get a request to deliver a course, it has become my practice to refine and redesign the syllabus to reflect the industry trends. Thus, renaming is not just changing name but also include enhancing the syllabus content.


Syllabus and Teaching content 


The existing syllabus contained only the UI design part. But I decided to extend it to the UX/UI design to cater to the modern demands. Soon, I approached the Georgia Tech Professor Rosa Ariga, who not only teaches UX/UI design but also does extensive research on this body of knowledge. When I requested the reuse of her course content, she instantly and graciously approved my request. It was interesting to know about her Indian connections during my further interactions.


Project activity-oriented learning 


I strongly feel, the method of teaching the modern SE course should be engaging for students. So, I made multiple working groups of students and enabled each group to pick their own Design Challenge or a project according to the global standard content for students to conveniently implement the project and apply Modern SE techniques as they learn in the class


After explaining the four-step UX/UI process covering 

(I). User Requirements. 

(II). Alternative Designs

(Ⅲ). Usability Testing 

(IV). Prototype creation.


Cohorts were introduced to the most important books on this topic see Additional Reading section for details. From 'The Design of Everyday Things', by Don Norman, a fresh and often overlooked concepts, namely, Human Centered Design (HCD) and affordance were explained to the students. They were reminded that the UX/UI design is not just about designing an UI software only, but it is also about physical products and services. This clarity was a big learning for the students.


Tools


It is very critical for students to leer, deploy and use SE tools such as

1).  Clean Code:

  • SonarQube

 2). Version Control:

  • Git hub 

 3). CI/CD:

  • Jenkins 

  • Java  

  • Docker hub

  • Docker container

  • Slack 

  • Python

  • Azure Kubernetes

 4). Scrum 

  • Jira s/w


Hands-on Experience 


The practical Hands-on is very critical for students of SE. Thus, after every two theory classes, there was a three-hour lab, so that students could test what they had learnt. In the first lab, the importance of SE tools was emphasized, and they were asked to work with tools like JIRA Software. A development team and right set of tools perfectly mimic the software engineering ecosystem for developers to immerse themselves in.


Role-Play


 By identifying each student in the group either as the Product Owner (PO) or as the Scrum Leader or as Devs, the students familiarized themselves with role definitions and learned the role-play. 


SE methodologies


Students were provided foundational knowledge on popular SE methods and differences between the traditional waterfall and the modern agile methodologies.


SE Best Practices


We can refer to SE capabilities as best practices. As part of the Software engineering tooling strategy, students were exposed to different modern SE capability topics such as,


a. Version control

b. CI/CD pipeline

c. Automation.

d. Containerization and Microservices.

e. Autopilot 


Since the SE capabilities have been continuously evolving, a good source of knowledge for a modern software engineer student is less from traditional textbooks and more from books of various types, general technical reading. Students were encouraged to read technical books given in additional reading. A few select ones in this category are


  1. As part of Design properties, students learnt conceptual integrity, Information Hiding, cohesion, and coupling.

  2. As part of 1 of the Design principles, they were introduced to single Responsibility, Demeter, Leskov substitution, among other things.

  3. As part of software engineering tooling strategy, students were exposed to different modern automation topics and related open-source tools.

  4. A version control systems enable teams to recover version control systems earlier versions. Students practice Git Hub.

  5. DevOps continuous integration and continuous Deployment automation. As part of this, an automation toolkit called Jenkins was introduced. A demo was shown automating the CI/CD Pipeline using Jenkins.

  6. Refactoring: code transformation that improves maintainability without affecting external behavior.

Any modern Software Engineering discussion is incomplete without discussing

Docker/container/Kubernetes. Students worked on the practical project on this technology. 


Additional Reading


A good source of knowledge for modern software engineering is not from traditional textbooks but books of this type. Light technical reading. Students were encouraged to read best-selling technical books. A few select ones introduced students in this category.


  1. The Design of Everyday Things, Don Norman, Basic Books, 2013.

  2. Scrum, The Art of Doing Twice the work in Half the Time, Jeff Sutherland, 2014 

  3. Clean code: A Handbook of Agile Software Craftsmanship, Robert C Martin, Impression, 2025.

  4. Software Engineering - A modern approach, Marco Tulio Valente.

  5. Mythical man-month essay on software Engineering, Lenick P. Brooks, Jr., Addison                     Wesley publishing


After explaining the advantages of agile methods vis-a-vis waterfall methods, agile methods such as Extreme Programming (XP), Scrum, and Kanban were introduced. Drilling further into the Scrum, the importance of values, namely communication, feedback, and simplicity, was highlighted. In their respective projects, students were asked to make use of sprint, Backlog, Jira software, user stories. Students also played the roles of PO, Devs, and Scrum in their respective teams.


Summary


In addition to learning theory, if students design and learn modern SE in an immersive environment, work on as part of a scrum team with a full set of tools, the learning approach will stick well and, importantly, make students job-ready.

  • Before, starting the SE class, refine and revise the syllabus to include the latest developments.

  • In the early stages of the semester/course make project teams containing 3-4 students per group. Importantly enable the teams to choose UX/UI design problem (design challenge) to work on during the course.

  • These project teams are scrum terms and teams should follow agile SE practices and UX/UI method. Which they learn in the class to develop solutions. 

  • Train the students on powerful SE tools.




 
 
 

4 Comments

Rated 0 out of 5 stars.
No ratings yet

Add a rating
C.Santhiya
20 hours ago
Rated 5 out of 5 stars.

Respected Sir, The course structure and layout are extremely good.The Tools relevant to theory is fitted by planning well.The learners will not miss out anything sir.Learners will gain industry ready content by well structured content sir.

Like

R.Leena Sri
2 days ago
Rated 5 out of 5 stars.

Very informative and much needed content. Sir you are the one known for your passionate and determination in course design advisory. Your suggestions and exploration added more benefit to insdustry ready courses. You always been an inspiration for us in course design and delivery. Keep going sir

Like

Srivatsan
3 days ago
Rated 5 out of 5 stars.

This article is an excellent demonstration of how academic instruction can be transformed to mirror real-world practices in software engineering. Bridging the gap between theory and practice through hands-on projects, modern tools, and agile methodologies equips students with the skills that today’s tech industry genuinely demands. As someone leading a technology-driven organization, I find this approach both timely and visionary. A much-needed and commendable initiative!

Like

raghunath.k
4 days ago
Rated 5 out of 5 stars.

Course Content is good ....

Like
bottom of page