Discussion about this post

User's avatar
Richard Schall's avatar

Tividar, as a scientist I see gram posititive and gram negative cocci in your illustration. Just a thought.

Expand full comment
suman suhag's avatar

With respect to machine learning I would recommend to have a look at numpy, matplotlib, scipy and especially http://scikit-learn.org/ (a standard machine learning library for python). I would try to implement the respective algorithms by my own in an efficient way and afterwards compare the results or write some add-ons (like adding a new class of distributions etc.).

Generally to get in touch with python I would like to mention a different approach. When I taught python to a motivated group of first semester students in Biology I initially asked them about what they were interested in to learn. From their answers I assembled a quite complex task for beginners:

They were supposed to setup an artificial ecosystem including mice and cats (both male and female, with an age, natural death rate, movement rules, etc.) to end up in a Lotka-Volterra-like Equilibrium. Afterwards we checked that together by fitting the Lotka-Volterra-Equations to the simulated data. The system and the fits were visualized with some graphs (animated) and a 2D arena showing the individuals as little moving pixels. The students liked this approach pretty much, because it was a hands-on strategy involving most basic ideas like loops and conditions, lists, numpy arrays, functions, classes, plotting, GUI and animation as well as concepts related to modelling and simulation like probability theory, statistics/data analysis, differential equations, dynamical systems, transferring ideas from math to algorithms and the other way around.

I will never forget the moment when the students realized that what they just did over the last seven 90min sessions + homework was nothing else than implementing the difficult math from their math course without noticing it by just playing around, involving their own ideas on how to make the system more realistic etc. All that started from the concept of a simple for-loop and a list. They were extremely fascinated by watching those moving dots on their screens, appearing, mating, dying and finally after some parameter tuning ending up in an steady state solution.

The range of the course topics was quite big given the time and we did not use any script or so - just hands-on coding but it worked out pretty well and the feedback was positive.

One of the six students is now doing a PhD in neuroscience, another one in evolutionary ecology.

From that experience I can highly recommend such an approach for learning programming in general as it involves most of the important concepts and ideas in a playful - but still science related - way. For me that would also be the project of choice for getting in touch with the concepts of a new programming language.

Expand full comment

No posts