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.
Nitin's Ideas
- 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
- 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
- Topics related DevOps
- 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"
- Innovation mindset related
- Lean Startup,
- Design thinking,
- Think Wrong (Don't find solutions for the problems that do not exist).h
- Use of Tools while doing the course projects
- Task or backlog management tools
- version control tools
- OO
eyes!
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
The importance of unit testing and show them how to measure coverage of the unit tests.
- 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)
- 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)
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)
- 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.
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