Sometime back I posted an update on LinkedIn about joining Chandigarh University as Professor of Practice.
I am joining CHANDIGARH UNIVERSITY Computer Science dept as "Professor of Practice". This is part time. I plan to spend about 2 weeks every semester on university campus. And also want to do some online lectures/workshops. There are no particular time commitments. It more about Industry + Academia partnerships and sharing the experiences of with Students.
I also asked about ideas on sessions/courses that students will be interested in. I received lots of comments and suggestions. Here I am collecting all the ideas/suggestions at one place. Over time, I will keep on posting updates whenever I implement an idea/suggestion.
- Few sessions in current academic topics related to software architecture and design but with sharing of experiences.
- A 2 week hands-on workshop for 2nd/3rd year students on "professional software development" starting from using version control, and how to write a spec doc to coding, testing, etc.
- A 1 week workshop for student teams who want to participate in hackathons.
- Few sessions on diverse topics like
- Algorithms in Daily life,
- Costliest bugs in history of software,
- Women Pioneers in Computer Science,
- Basics of Cascading Style Sheets (CSS),
- Hidden Life of a Google Search Request
- (re)Inventing the Assembly Language.
- Do/Doing/Done is NOT Kanban
- Using Version Control Effectively
Ideas from Harish Walke
- few topics around "Agile" too! Fundamentals and basics of Agile
- Typical day or sprint in the life of a Developer
- built-in Quality and what it means in Agile
- Scaling agile
- Some useful concepts of Value streams, Lean Portfolio, Strategic Themes, WSJF for prioritization, Real life examples of Epic, Capabilities, Features
- DevOps with CI/CD.
- TDD, BDD. Different compliances and their inclusion in Features as NFR (Non Functional Requirements)
- SecDevOps with mindset of "Built-in Security"
- Lean Startup,
- Design thinking,
- Think Wrong (Don't find solutions for the problems that do not exist).h
- Task or backlog management tools
- version control tools
Ideas from Anirudha Raste
Look around you, in your real life to find many OO concepts. People think all OO and other software concepts were 'Created' by software engineers and architects. Whereas, they are already present in real life. Need to see them in software way! Then one will find that software is not so 'alien' to real world.
- 'Importance of logging while troubleshooting problems at customer end, where you do not have access to customer's environment, customer data, debugging
Ideas from K K George (KKG)
The importance of unit testing and show them how to measure coverage of the unit tests.
Ideas from Manish Ramrakhiani
- Agile principles
- Rise of Data and related roles in the Data Engineering/Analytics space
- Sharing some of real successful archicture/design of your favorite projects (Nitin's comment ; I was also thinking on these lines. So probably will do this early)
Ideas from Nikhil Karkare
- Automation: automating testing, RPA
- Would sound basic, but using powershell or bash for basic scripting (using awk for example) - (Nitin's comment : In my opinion, absolutely needed)
- Using any code editor to its full potential (Visual Studio / Replit)
Ideas from Laxmidhar Gaopande
Some projects split in small teams to work on for 2-3 months after your sessions and review by making them presentation to you along with all. (Nitin's comment : CU already have a concept of Project Based Course, where students learn by doing a project rather than attending lectures. Will be good ideas to incorporate these in the same framework)
Ideas from Vivek Gupta
- code readability/ maintainability,
- logging/eventing/traceability, log analysis (Nitin's comment : Also suggested by Anirudha Raste)
- ease of troubleshooting,
- importance of code reviews,
- threat modeling etc.
Ideas from Surjit Patra
Go with very basic and core topic like Aniruddha Raste said OO things. But also go 1 level below
- "How to realize or relate the software way of thinking to a real problem".
- Or How to visualize the problem, is it from outside/ inside.
- What is the best approach to find the possible solutions.
- How to pick the best one out of it.
If you have any other ideas, please add in comments