Announcement

Showing posts with label computer science. Show all posts
Showing posts with label computer science. Show all posts

Saturday, September 24, 2022

Ideas on on sessions /courses as Prof of Practce for Chandigarh University

 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

  1. Few sessions in current academic topics related to software architecture and design but with sharing of experiences.
  2. 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.
  3. A 1 week workshop for student teams who want to participate in hackathons.
  4. 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

  1. 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
  2. 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"
  3.  Innovation mindset related
    • Lean Startup, 
    • Design thinking, 
    • Think Wrong (Don't find solutions for the problems that do not exist).h
  4. Use of Tools while doing the course projects
    • Task or backlog management tools
    • version control tools

Ideas from Anirudha Raste

  1. 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.
  2. '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

  1. code readability/ maintainability, 
  2. logging/eventing/traceability, log analysis (Nitin's comment : Also suggested by Anirudha Raste)
  3. ease of troubleshooting, 
  4. importance of code reviews, 
  5. 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

Sunday, August 24, 2014

Classics of Computer Science

Some times you hear about quotes from Edsger Dijkstra like 'goto considered harmful'. However, you rarely find the details of actual arguments. So I have decided to collect such gems which I consider classics, which someway helped me understand new concept and references/links to original papers/books.

I am planning to keep on updating these list.

Papers/Articles of Edsger W. Dijkstra:

  1. Humble programmer 
  2. Goto Considered Harmful :  Transcriptscanned PDF of original paper 
    This paper introduced concept of 'structured programming'

Papers/Article of David Parnas:

  1. On the criteria to be used in decomposing systems into modules,
    Written in Year 1971, this paper introduced basic concepts of object oriented design (especially concept of encapsulation). I find that programmer still confused the concept of 'encapsulation' as 'hiding the data' rather than 'hiding the change'

Papers/Articles from Google

  1. MapReduce: Simplified Data Processing on Large Clusters
    Paper that triggered big data processing architecture revolution and triggered the opensource Apache Hadoop project.
  2. Detecting influenza epidemics using search engine query data
    Demonstrated how big data analytics can be used to solve some existing problems in entirely different way.
    "Here we present a method of analyzing large numbers of Google search queries to track influenza-like illness in a population. Because the relative frequency of certain queries is highly correlated with the percentage of physician visits in which a patient presents with influenza-like symptoms, we can accurately estimate the current level of weekly influenza activity in each region of the United States, with a reporting lag of about one day."
Please add your comments, suggestions for inclusion in this list.