22101/22161 - Introduction to programming in Life Science using Python
Teacher: Peter Wad Sackett, pwsa@dtu.dk
Language: The course is taught in English.
Tools: The course is using Jupyter Notebook. Install Jupyter Notebook before you meet in class.
Textbooks: There are no text books for the course. I will make do with powerpoints, videos and references to online resources. You can find the material under the individual lessons in the Programme.
Location: Building 358, room 60b + streaming to room 046, no matter what your plan says. Course 22101 and 22161 are taught together.
Time: Tuesday 8:00 - 12:00, module E3-A.
Course details
There are no plans for streaming the lectures as there already are some recorded video lectures for each session. However, with over 180 students two teaching rooms must be used. I will stream the teaching from one room to the other.
Programme Fall 2024
How the course is conducted Required reading
Course Survival Guide Useful when you get stuck early
Good code Always keep this in mind
Rosalind project Python exercises at different levels for practicing
Competences
A general engineering competence skill is the ability to explain the process through which you obtain your results - how else can they be trusted? Learning to program is a great way to practice that skill, since you have to explain to the computer how it is supposed to solve the task you give. This explanation must pay attention to detail, specifically identifying and ordering the elements of the solution. This nurtures and strengthens an analytical and structured mindset which is also an essential engineering competence skill. Training these skills is obviously beneficial for the student, but they do not come for free - it is hard work, so put the time aside for it.
A single example of above:
With the rise of Copilot/ChatGPT answers are easier to get than ever. If you insist on using such tools, be sure you do not use them in a way harmful to your learning.
Specifically, ask questions like "how does this work?", "what is the significance of this?" as these questions promote learning.
Do NOT ask questions like "how do I do this?", "can you make python code that does this?", which simply solves a problem for you - likely in a way that is not intended in the course progression and you do not really understand, because it is either outside or too early in the curriculum.
Resources
- Online: Clean Code by Lukasz Dynowski. An amazing read that is mandatory. Read it once around lesson 5 and once more around lesson 8.
- Online: Coursera course: Programming for Everybody is a beginner course in Python. Everyone who wants to prepare for course 22101/22161 can start here. Just get far enough so you understand what programming is and how it works. That will benefit you a lot as a newbie. The Coursera textbook.
- Book: Learning Python, 5th ed. by Mark Lutz (O'Reilly) ISBN: 978-1-449-35573-9. This is the best Python book I have read. It covers all the basics and then some. All from the perspective of being a novice programmer. However, it is a brick; big, heavy and unwieldy. If you only want one Python book, then this should be the one. The course will not be taught from this book, but it could be good to have as a Python reference manual.
- Book: Python Crash Course: A Hands-On, Project-Based Introduction to Programming by Eric Matthes (No Starch Press) ISBN: 1593276036, 9781593276034. A pretty OK book which leads you into the Python world without too many distracting points and theoretical contemplation.
- Online: Python for Non-Programmers
- Online: Official Python 3 tutorial
- Online: Python 3 reference manual
- Online: Python 3 standard library
- Info: Biological knowledge needed in the course
Videos with advice on learning how to code
- Youtube: How I Would Learn To Code If I Was To Start Over by Tiff In Tech
- Youtube: Coding Was Hard Until I Learned THESE 5 Things! by Pooja Dutt
- Youtube: How I would learn to code (if I could start over) by Tina Huang
- Youtube: How I would learn to code (if I could start over) by PIRATE KING
- Youtube: How I would learn to code (If I could start over) by Jason Goodison
- Youtube: How to Learn to Code - 8 Hard Truths by Fireship
Interesting but less teaching oriented material
- Online: Top 12 reasons you know you are a Big Data biologist
- Online: How programming and your life is similar
- Youtube: What most schools don't teach - how to think