This repository contains information about the course "Basic Programming - Introduction into Python" (2026).
In this class, we will follow largely (but not exclusively) the course NESC 3505 Neural Data Science, developed at Dalhousie University as an open educational resource.
The first part of the course follows an inverted classroom approach, which means you prepare the material for the sessions at home, leaving the actual sessions for doing exercises, discussions, questions, and problem-solving. The second part of the course - after the vacation - consistst of more advanced sessions that will address more specific topics, such as the use of AI, data processing and presentation for neuroscience, how to design (re)usable software and such.
The materials consist of
- Online chapters, which will provide you with the respective background
- Jupyter notebooks, in which you can learn and practice Python concepts
- YouTube videos, which go through the notebooks step-by-step. We highly recommand to try to do the notebooks first by yourself, and only use the videos if you encounter major difficulties
When indicated below, you need to read a few chapters and do the lesson part of the respective Jupyter notebooks before the session. The notebooks are divided into a lesson part, where the concepts are introduced and demonstrated, and an exercise part, where you can apply the knowledge just gained.
During the sessions, we will to the exercise parts of the notebooks together, discuss what you learned, where you encountered problems, and how to solve these.
Important: The links to chapters point at the original class material, whereas the notebooks you will find in your
bwJupyterenvironment - as demonstrated in the first session.
To prepare before:
- Read chapters "About This Course" (all sections) and "Introduction to Data Science" (all sections)
During the class:
- Why this course? About adult learners and your motivation to learn Python, your programming/Python background, that the only way to learn to code is to write it, the importance of coding skills for science and beyond, and the use of AI tools.
- The organisation of this course. Time budget outside the classroom, videos as the last resort, and final project.
- Setting up
bwJupyter.de_ and accessing the course material. How to submit exercises. - Skills evaluation
To prepare before:
- Read chapter "Introducing Python"; you can ignore the section
Deactivate AI for Now. Also, read the next chapter with the respective learning objectives. - On bwJupyter: Go over the notebooks
01 - Variables and Assignmentsto05 - Dictionariesunder__shared. Note that the exercise parts of the notebooks will be done in class.
During the class:
- Do exercises together, answer qustions.
To prepare before:
- On bwJupyter: Go over the notebooks
06 - For Loopsand09 - Looping Data Filesunder__shared.
During the class:
- Do exercises together, answer qustions.
- For more advanced students, there will be additional, more challenging exercises (check out the
extra_execisesfolder)
To prepare before:
- On bwJupyter: Go over the notebook
08 - pandas DataFrames - Go over the official numpy tutorial
- On bwJupyter: Go over the notebook
10 - Numpy and Scipy(no need to do the tasks, we will do them together in the class)
During the class:
- We will go through the notebook and do the tasks in the notebook
To prepare before:
- Read chapter "Introduction to Data Visualization" and the respective learning objectives.
During the class:
- We will go through the Jupyter notebook together.
- In the end, as an exercise, you should re-create a figure including different plot types based on real data
To prepare before:
- Do the notebook lecture from the last session on your own again
- Read chapter "Data Science Plots with Seaborn" and the respective learning objectives.
During the class:
- We will build the figures from the last session together step-by-step
- Discuss and showcase Seaborn
To prepare before:
- An IDE (Integrated Development Environment) is a program where you have all you need to write, read, and run code effectively. We will talk about this more in the lecture, but as a preparation please try to install one very common IDE called "visual studio code": Install visual studio code here.
- In VS code there are some very useful extensions specifically for working with Python and Jupyter notebooks. After installing VS code, go to the "Extensions marketplace" (block-like icon on the left hand pannel) and install the "Python" and "Jupyter" extensions. These extensions add helpful features, but they don't include Python itself. Note that after installing the "Python" extension, VS code may ask you somthing like "No Python found. Would you like to install uv and use it to install python?". Please only click "install" here, if it expicitly mentions "uv". If you clicked "install" you can then skip the next step.
- UV is a piece of software that allows you to donwload Python itself as well as packages like numpy. If VS code did not offer you to install "uv", please install uv here. You will have to open either PowerShell (Windows) or Terminal (Mac/Linux) and paste the line of code for your operating system into there. Afterwards, close and open PowerShell/Terminal again and type in "uv --version", to see if it works. In the lecture we will then use uv to install python.
If this did not work for you, do not worry! At the beginning of the class, there will be some time to trouble shoot of finish installing, but it is important that you try for yourself first at home.
During the class:
- We will explain concepts like IDEs and environments.
- You will get some hands on experimence in running code on your computer and using IDEs, which will be super useful to you if you have to deal with code during your lab rotations.
- If time, we will discuss how to use AI effectively while coding and you will again get some hands on experimence in "vibe coding".
