---
# System prepended metadata

title: lesson-01
tags: [python-course]

---

---
tags: python-course
title: lesson-01
---

# Introduction to the course

:::info
:bulb: Introduction and overview of the course, tools, and topics covered. Introduction to the core concepts of programming and computation.

Personas: Teacher is Nina, student is James.
:::

:::success
:movie_camera: VIB background fading to course title slide. James and Ninas smiling faces fade in.
:::

:::warning
:notes: Upbeat intro music
:::

**Nina**: Hello and welcome to the Gentle Hands-On Introduction to Python Programming course presented by VIB and Elixir Belgium. My name is Nina...

**James**: and my name is James. Together with Nina, I will guide you on your journey into the amazingly useful world of programming. (pause) I'm a software engineer within VIB Technologies and I have many years of software development experience in Python and other languages. My experience ranges from embedded medical devices to supercomputers. You may be familiar with some of the projects I've worked on such as SCope from Stein Aerts lab in KU Leuven, or the Falcon system used by Neuro-Electronics Research Flanders. I'm really excited to guide you through this course and really hope you get a lot out of it.

**Nina**: And I am a professional software developer working in the industry outside of VIB. In my career I wrote Python software for many different applications: websites, machine learning algorithms, even controlling robot arms. This is why I like Python: it is really versatile and can be useful in all kinds of domains. So good job choosing this course! This is a great investment in your skills.

**James**: Now that you know who we are, you're probably curious how this course will work. It's set up so that you can follow it at your own pace and in your own time. There are times scheduled where we can answer your questions. If that doesn't suit you, then we encourage you to ask questions on this online platform (show how to do this in the background). Above all, you will get the most out of this course by applying what you learn. Programming is a skill like any other practical skill in a sense that theory can only get you so far. You will only progress and become more confident if you consistently practice using the skill.

**Nina**: There are 11 lessons that you may follow at your own pace over the 6 week period. Each lesson is broken into 2 parts: a video where we introduce a concept, and a document that you will find below elaborating on what we discuss in the video. The document also contains exercises for you to hone your skills. You should attempt all exercises in each lesson to practice as much as possible.

**James**: In the beginning you will use a learning language called "Hedy". This will give you a taste of what computer programming is like. Hedy will introduce you to some important concepts used later in the course. The chapters that follow will build a theoretical foundation of concepts and gradually familiarise you with the vocabulary used by programmers. The lessons cover topics including:
  * Values,
  * Variables,
  * Types,
  * Functions,
  * Testing,
  * and Documentation

When you're comfortable with these foundational concepts, you will begin picking up some experience with practicalities like:
  * Decision making,
  * Collections of data,
  * Loops,
  * Dictionaries,
  * and I/O.

Finally, we will introduce you to plotting data which will draw on all of the skills you've learned during the preceeding chapters. Much of what I just said will likely be very confusing. Don't panic! We will cover each in much more detail later, then everything will make sense.

Throughout the course, you should practise the skills you are learning as much as possible. We strongly encourage you to practise on one of the larger scale projects we've provided. There are 3 to choose from, each is ambitious but reasonable for you to complete within a total of 4 to 6 hours. You don't need to know much in order to write useful programs.

**Nina**: There is a lot to learn and you may feel overwhelmed at times. If you find your efforts frustrated or if you're struggling to understand a concept we recommend you to step away from your computer for a while and think about something else. Come back fresh, contact us for help, or ask your fellow students for help. You will often find you're not the only one having difficulty. Some of the concepts we cover can be challenging so please don't blame yourself if you don't understand immediately. We are here to help you.

**James**: Now that we have introduced ourselves and the course, Nina, what is programming?

**Nina**: Fundamentally, programming is a tool to explain to a computer how to solve problems.

**James**: Can you give me an example?

**Nina**: When we were small children, our parents would ask us simple questions like, "What is 3 + 2?". We would count off on our fingers: 1, 2, 3, 4, 5. Finally we would say, "5". Our parents programmed and we computed.

**James**: So programs are like instructions to complete a task?

**Nina**: Yeah! We can do this together. I will program and you compute.

**James**: Ok I'm ready.

**Nina**: Place your pen on the paper and move it up.

(James places his pen sideways on the paper then lifts it above the table)

**Nina** (looking into the camera): Ok, looks like my instructions weren't precise. James made no assumptions about what I meant and carried out my instructions exactly as I described. I need to be more precise.

**Nina** (to James): Are you ready to start again James?

**James**: Yes I'm ready Nina.

:::success
:movie_camera: The image on the wacom tablet can be superimposed on the video.
:::

**Nina**: Move the writing end of your pen so that it touches the centre of the page. Remember this as the starting point. Move the pen away from you, keeping the writing tip in contact with the page, for 5cm. Keeping the writing tip in contact with the page, move the pen horizontally to the right for 5cm. Finally, keeping the writing tip incontact with the page, move the pen back to the starting point.

**James** (Holding up the page of paper for the camera to see, or on the wacom or whatever): I've drawn a triangle.

**Nina** (looking into the camera): You should try this yourself. Try to write out instructions for making your favourite drink. But be as detailed as possible. When you're satisfied ask a friend to follow the instructions as closely as possible without making any assumptions. How far did they get? Did you make any mistakes?

:::success
:movie_camera: Slide for exercise. Write drink making instructions as described above.
:::

**James**: Pause the video now and attempt the exercise.

:::warning
:notes: Waiting music
:::

**Nina**: You have described a computation using a "natural language". Because of this, you probably discovered that describing the task unambiguously is difficult. That's why programmers often use a specialised language, a programming language, to tell a computer what to do.

**James**: Each programming language offers a unique way to describe tasks. Some are very good within a particular domain, some are general purpose, some may fit the way you solve problems better than others. In this course you will use a general purpose programming language called "Python". Python is very popular in the life sciences so is a useful language to learn. Nina, can we see some Python please?

:::success
:movie_camera: Fade to the demo (tbd what this is).
:::

**James**: Ah, Nina. What just happened?

**Nina**: I wrote a very short program in Python, that is the text displayed here. It is formal and precise because, contrary to popular belief, computers aren't smart. They're machines that will do exactly as a programmer specifies. No more and no less. Just like in the tale of the Sourcerers's Apprentice.

**James**: This is the end of the first lesson. You should have some understanding of the structure of the course and what we will cover. You have also learned about what it means to program and to compute. You have discovered that programs are a sequential ordering of steps that must be understandable for a computer.

**Nina**: Don't forget to take a break between lessons or if you're struggling. And remember: we're here to help you.

**James and Nina**: Goodbye for now!

:::success
:movie_camera: Fade to VIB logo slide.
:::

:::warning
:notes: Upbeat outro music
:::
