Always remember: Python is the programming language. Positron is the IDE.
Code
print("Hello, Positron!")Hello, Positron!
βοΈ Positron & Jupyter Notebooks

Welcome to your first hands-on session. You have already met Positron in your R course, so the workspace itself will look familiar. Over the next hour you will learn what changes when the language is Python, and you will build the first of the Jupyter Notebooks you will write your code in for the rest of this course.
Always remember: Python is the programming language. Positron is the IDE.
An IDE (integrated development environment) is a workspace that puts your code, its output, your notes, and your files together in one place. Positron is the IDE we use. Python is the language we write in it.
Positron runs both R and Python. The panes you learned in your R course, the Console, the Variables pane, the Plots pane, and the file Explorer, all do the same jobs here. What changes is the interpreter Positron is talking to, and the file format we write in.
We run Positron on a shared Posit Workbench server, so there is nothing to install. Everything happens in your browser.
The Positron layout is the same one you used for R:
An IDE like Positron supports interactive computing: you run your code a piece at a time and see each result immediately. That fast feedback loop is what makes it useful for exploring data.
Look at the interpreter dropdown in the top right. If it shows R, or shows a Python that is not ours, click the ellipsis (...) next to it and choose eds217_2026 from the list of available interpreters.
Changing the interpreter shuts down the old one and starts the new one, so any variables you had defined are lost. Choose the right interpreter first, then start working.
Positron can run your Python code in two places. It is worth seeing both once so you know the difference.
The Console is a Python prompt. This is a REPL, which stands for Read-Eval-Print Loop, and it is the same idea as the R console you already use.
A REPL Reads what you type, Evaluates it, Prints the result, and Loops back for more. It is an interactive prompt for trying one line at a time.
Click into the Console, type an expression, and press Enter:
42
That is the whole read-eval-print idea: you typed an expression, it evaluated it, it printed 42. We are just watching the environment work here. You will learn Pythonβs syntax properly this afternoon, and its full set of operators on Day 3.
The Console is useful for quick checks, but nothing you type there is saved. That is why we work in notebooks.
For the rest of this course you will write your code in Jupyter Notebooks, files ending in .ipynb. A notebook lets you combine code, its output, and narrative text in one document, so your analysis and the story of your analysis stay together. That is what we want for data science, so notebooks are our home base from here on.
Letβs make the notebook you will use for this session. We follow this same setup ritual at the start of every session, so it will quickly become second nature.
Ctrl + Shift + P (Cmd + Shift + P on macOS).New Jupyter Notebook and select Create: New Jupyter Notebook.Ctrl + S (Cmd + S on macOS) right away.Session_1A_Positron.ipynbThe dropdown in the top right controls the Console. The Kernel Selector in the action bar controls the notebook. Each notebook keeps its own kernel, so check it every time you open a new one.
# Day 1: Session 1A - Positron & Jupyter Notebooks
[Session Webpage](https://eds-217-essential-python.github.io/course-materials/interactive-sessions/1a_positron_notebooks.html)
Date: 08/31/2026Save your work frequently. Click the save icon or press Ctrl + S (Cmd + S on macOS).
Throughout the session: take notes in Markdown cells, write and run code in Code cells, and ask questions whenever you need to.
A notebook is a stack of cells. Two kinds matter to us:
Click into your empty code cell, type the classic first line of code, and run it with Shift + Enter:
The output appears directly below the cell. Shift + Enter runs the cell and moves to the next one. Ctrl + Enter (Cmd + Enter) runs it and stays put.
Watch the Console while you do this. Positron shows notebook execution there too, so the Console and your notebook are working with the same Python session.
Change the message inside the quotes to greet yourself by name, then re-run the cell with Shift + Enter. Did the output update?
Hover between two cells, or below the last one, and Positron offers buttons to insert a new Code cell or a new Markdown cell at that point. Each cell also carries its own small toolbar for running, moving, and deleting it.
Add a new Markdown cell and try some formatting:
## My notes
This is a **Markdown** cell. I can write:
- **Bold** with `**text**`
- *Italic* with `*text*`
- [Links](https://positron.posit.co/)Run the Markdown cell (Shift + Enter) to render it into formatted text.
Add one more bullet to your Markdown cell, a link to the course website, then re-render it. Try double-clicking the rendered cell to edit it again.
A few features that will save you time all week:
Tab to auto-complete it or see suggestions.help(print) in a code cell to read a functionβs documentation, or add a ? after a name (print?) for a quick description. Pressing F1 with your cursor on a name opens the same documentation in the Help pane.%, like %whos to list your variables. You will meet these as needed.In a code cell, type pri and press Tab. Does Positron offer to complete it to print? Then run help(print) and skim the description.
The Variables pane is not the right tool for very large DataFrames or arrays. Use df.head(), df.info(), and df.describe() for those, which you will learn on Day 4.
Ctrl + S / Cmd + S. Do this often.Shift + Enter. Use Ctrl + Enter to run without moving on.End interactive session 1A