Welcome people as they arrive. When "enough" people have arrived you can introduce yourselves.
- Name.
- Position and what you work on.
- Why you're attending the course (only for students).
- Interests / interesting fact about you.
- How you can be contacted (only for instructors).
Ask students to do the same (no camera if they're not comfortable).
Pull up the "PythonPreCourseQuestionnaire" statistics tab.
There are 19 registered students. 15 of which have completed the questionnaire.
Online learning is different from classroom learning. It's difficult for trainers to notice that you are struggling and it's difficult to interact like we would in a classroom setting. Therefore self-motivation and time management are very important in order for you to be able to complete the course successfully. Please interact with us instructors as much as possible. Whether you feel completely lost or confident with what you're learning any feedback you can give us can only help you. If you are struggling (for any reason) it is imperative that you contact an instructor. We care about your wellbeing and any impact that has on your progress through the course.
This is a beginners course. We happen to use a language called "Python" to communicate with the computer, but many of the concepts you will learn are applicable to other languages. If you are already a confident programmer, you are unlikely to benefit much from this course. Some of you wish to learn quite specific applications of the Python language. Unfortunately these applications are not covered by this course but may be covered in follow up courses. In English you would say that you have to crawl before you can walk: this course will familiarise you with fundamental programming constructs that form a solid foundation for you to build upon. You need to understand these concepts whether you just want to download and modify a script to suit your purposes or whether you want to build programs for yourself. We encourage you to organise study groups among yourselves. These can provide you with some external motivation to practice. A very effective way of using these is to learn a concept and teach it to your partner.
In order to get the most out of the course, you should plan to dedicate at least one focused hour a day (or 3-4 hours per week) to the course. Programming is a skill you can learn and you have taken the first step. But, like any other skill, it requires dedicated practice. Unfortunately there are no shortcuts. Also we need to pop the bubble of your own expectations for the course: two-thirds of you expect to "know" Python after successfully completing the course. Python is a big, complex language that cannot possibly be completely understood in the space of just 6 weeks. Luckily however, you don't need to understand much to be able to do useful things. In fact you will already be able to make useful programs after just a few lessons.
Sometimes the exercises will cover topics (or apply to fields, perhaps outside of biology altogether) that you might feel are irrelevant to you. I hope you will look past this since the course is about programming concepts that are universally applicable, not just applicable within any one domain. Try to treat these exercises as programming problems. That said, we have tried to teach programming concepts by applying them to biological problems wherever possible. And, if you have suggestions, we are always grateful for constructive feedback.
So, what topics will you cover? The course is broadly organised into 3 parts:
- Programming and computation fundamentals. This part describes the very foundations of programming and computation in an approachable way. The concepts introduced here are universally applicable to programming (not just Python).
- The basics of programming with Python: data structures and control flow. You will need the ideas presented here in order to work with Python in any meaningful way.
- Real-world programming. This final part of the course builds upon the first 2 parts and sets you loose on a realistic programming problem in a realistic environment. You will also be introduced to I/O and plotting in this section.
There are 32 practical exercises for you to complete, and 4 projects. In order to receive a certificate for completing the course you must have attempted 75% of the exercises and submitted a completed project by email to the instructors. These must be completed/submitted no later than 17u (close-of-business) on 24 June.
Since this is an online course we use a platform called Dodona to present video and reading lessons. (Instructor open Dodona)
Dodona splits the topics covered in the course into "exercise series". Within the "Introduction" series you can click on the "Introduction lesson". This is a combined video and reading lesson. When you finish watching the video and reading through the text you can click on the "Mark as read" button to mark this lesson as completed. This allows you to see your progress through the course, but it is also visible to instructors so we can see if you might be struggling.
The next lesson in "Introduction" is called "Thinking like a programmer". In this lesson you will use an external website called "Hedy" to get a feel for programming. Make sure you use the provided link to find Hedy so that we know you have completed the lesson. Hedy is only used in that one lesson.
In the "Fundamentals" exercise series you will encounter your first exercise requiring to you write code and submit it for grading within Dodona. You can submit any number of times without penalty.
After completing the "Control flow" exercise series you can already start working on a project. To do this you will need to set up some software as described in the "Development environment" lesson for the "Real-world programming" exercise series. There may be some reasons you can't set up a development environment as described in that lesson. Don't worry, there are several alternatives that we can help you with. So the important take-away is to remember to contact us (or come to the lab session) with your question and we will be very happy to help you.
We strongly discourage you from using these tools while trying to learn. They will help you to get quick, easy, and sometimes correct exercise answers. While we will not penalise you for doing this we do think that you're wasting your time: you're here to learn, not copy and paste answers from an LLM without learning anything. When you feel the urge to ask an LLM we encourage you to take a break, do something else, and come back to the problem later when you're feeling refreshed. This feeling of not quite "getting" the problem, the feeling of discomfort means you're about to learn something. Please don't sabotage yourself.
The most important thing we want you to know is that there's no shame in asking for help. Use the resources (us) that you suddenly find available to you.
-
What are some possible alternatives for a local development environment?
- Google Colab (requires a Google account)
- Jupyterlite
- Replit (requires login)
-
Will this course cover package X? No. This course is a beginner introduction to the language. For specific applications you should follow a specific course after successfully completing this one.
-
Programming gives me anxiety. What should I do? Try to reframe how you feel about it. This course is low pressure so try to find the fun in it. Maybe you will find that in Hedy, or in making games, or ... Try to understand what about it makes you feel anxious and ask for help in that area. There is no shame in asking for help.