📝 W03 Formative
File Systems, Terminal Commands, and Python Control Flow
Ideally, everyone should finish this exercise before the 🖥️ W03 Lecture!
This practice exercise should take about 2-3 hours to complete. If you found the W02 DataQuest coding challenging, this week gives you a chance to take a breather! You’ll learn about how computers organise files and some essential professional skills before we return to more Python coding in Task 4.
Think of this as building your toolkit with different kinds of tools.
Briefing
| ⏳ | Duration | 2-3 hours. This week builds essential professional skills! |
| 📂 | Folder to Use in Nuvolos | week03/ |
| 💎 | Key Learning Concept | How to navigate files and read different file formats |
💡 Learning Together:
This week’s exercise introduces professional skills that every data scientist needs. The Terminal can feel unfamiliar at first, and this is completely normal! We encourage you to:
- Take your time with each section - these are foundational skills
- Ask questions in the
#helpchannel on Slack if you get stuck - Work with classmates to understand the concepts together
Remember that the best way to learn in DS105 is to learn by doing and asking questions whenever you get stuck.
Desired Output
At the end of this exercise, you should have created the following structure inside your Nuvolos workspace:
/files/
├── week01/ (from previous weeks)
├── week02/ (from previous weeks)
└── week03/
├── W03-NB01-reflections-and-dataquest.ipynb
└── data/
└── [any data files you create during practice]
Your notebook should contain:
- Reflections on the Shell-it game experience
- Notes on Terminal commands you learned
- Documentation of three DataQuest lessons (loops and conditionals)
- (optional)Your solution to the advanced challenge (revisiting the W01 Lab algorithm)
Task 1: Shell-it Game
⌚ Time estimate: 20 minutes
Before diving into real Terminal commands, let’s build your intuition about file navigation through an interactive experience.
🎯 ACTION POINTS
Play “Shell-it: The London Episode” for at least 10 locations.
Visit the
Shell-it game and navigate through London landmarks using command-line style instructions. You’ll learn
cd(change directory) andls(list contents) in a fun, low-pressure environment.
Created by Riya Chhikara
Class Teacher
Riya built this interactive game to help you learn Terminal navigation in a playful way. Thanks, Riya!
Observe patterns: Each landmark has an absolute and relative path, just like files on your computer.
Take a screenshot of your final location in the game and save it to your computer. You’ll upload this to your
week03/folder later to show you know how to handle and organise files.
Task 2: Create Your Notebook & Reflect
⌚ Time estimate: 15 minutes
Before jumping into the Nuvolos Terminal, let’s create a notebook where you can document your reflections and learning.
🎯 ACTION POINTS
Open Terminal in VS Code
- On
VS Code, click on the
Menu icon then navigate to Terminal > New Terminal.
- On
Check where you are:
Whenever you open a Terminal, you are always in a specific folder. To check where you are, type:
pwdOn Nuvolos, you should be in
/files/by default. This is your “home” folder.
In a ‘normal’ computer, your home folder will typically be something like C:\Users\<your-username> on Windows or /Users/<your-username> on Mac.
See what folders exist:
lsYou should see your
week01andweek02folders from previous weeks.Create your week03 folder (if it doesn’t exist yet):
mkdir week03Then verify it was created:
lsNavigate into week03:
cd week03Confirm you’re there:
pwdCreate a data subfolder:
mkdir data lsYou should see your new
data/folder.Create your notebook file using
touch:touch W03-NB01-reflections-and-dataquest.ipynb lsYou should now see your new notebook file listed.
Cross-platform note: touch creates empty files on Mac/Linux. On Windows PowerShell, you’d use New-Item instead. This is one of the differences between operating systems.
Open the notebook in VS Code
Click on the
W03-NB01-reflections-and-dataquest.ipynbfile in VS Code’s file explorer (left panel) to open it.Add a professional header
Create a Markdown cell at the top of your notebook with content a header similar to this:
# 📝 Week 03 Practice – File Systems and Python Control Flow **LSE DS105A – Data for Data Science (2025/26)** - 📅 Date: [Add today's date] - 👤 Name: [Add your name] - 🎯 Purpose: Learn Terminal navigation and Python loops/conditionalsAdd your Shell-it reflection
Create a new Markdown cell with a section heading and write your reflection (3-5 sentences):
- How does navigating the London landmarks in Shell-it relate to navigating files on a computer?
- What patterns did you notice about the commands?
- What was confusing or surprising?
Task 3: Terminal Skills
⌚ Time estimate: 30 minutes
Let’s explore what else you can do from the Terminal. In the olden days, computers did not have a mouse and you could not click and drag stuff around. The only way to interact with files was to use the Terminal and run applications. It might not feel like it yet, but this skill is still very relevant today.
🎯 ACTION POINTS
Navigate to read CSV files
Use
cdwith relative paths to navigate from wherever you are now to/files/week01/data/. Remember you can usepwdto check where you are andlsto see what’s around you.Need help with relative paths?
If you’re in
/files/week03/, you can use:cd ../week01/data/The
..means “go up one level” (to the parent folder).Read a CSV file with
catOnce you’re in
/files/week01/data/, try:cat london_heatwaves_by_year_1990_2025.csvReadable, right? CSV files are plain text, just like code files.
Navigate to root and edit README
Navigate back to
/files/and uselsto see if there’s aREADME.mdfile there.cd /files/ lsIf you see
README.md, open it with thenanotext editor:nano README.mdHow to use
nanonanois a plain text editor that works in your Terminal. Think of it as a 🦖 dinosaur version of Google Docs or VS Code.- Use arrow keys to move around
- Type normally to edit
- Ctrl + X to exit
- Press Y to save your changes
- Press N to discard changes
- Ctrl + O then Enter to save to a different filename
Your task: Make changes to the README so it has your personal touch! You can either rewrite it entirely or just add to it.
It could be as simple as adding a list of relevant links you need to visit regularly when you are on Nuvolos.
Here’s an example
Maybe I would add a link to the Dataquest or Slack channels or Claude:
--- ## 🔗 Quick Links - [Dataquest](https://app.dataquest.io/) - [Slack](https://lse-ds105-2025-26-at.slack.com/) - [Claude](https://claude.ai/project/01990f03-4acd-748a-b8c4-b08c9cf9127c)Save and exit (
Ctrl + X, thenY, thenEnter), then verify your changes:cat README.mdYou should see your new section at the bottom.
💡 Lightbulb moment? Have you ever wondered what a Jupyter Notebook looks like deep down?
Navigate to where one of your Jupyter notebooks lives (week01 or week02) and use
catto look inside it. For example:cd week01 cat W01-NB01-heatwave-analysis.ipynbAdd a reflection in your W03-NB01 notebook:
Navigate back to VS Code and create a new Markdown cell. Write about what you see when you
cata Jupyter notebook file. What patterns do you notice? What does the structure remind you of from your W02 DataQuest lessons? (Hint: think about the Python data structures you’ve learned.)Upload your Shell-it screenshot
Remember the screenshot you took during 🎯 Task 1? Let’s upload it now.
In VS Code, right-click on your
week03/folder and select Upload. Upload the screenshot you saved earlier.Name it something simple like
shell-it-screenshot.pngso it’s easy to find.Binary files experiment
Now let’s use that screenshot you just uploaded to understand the difference between text and binary files.
Navigate to your week03 folder (if you’re not there already):
cd /files/week03Try to look at what’s inside your screenshot using
cat:cat shell-it-screenshot.pngGibberish! This is because images are binary files (not plain text). They’re meant to be read by image viewers, not humans reading text.
Add a reflection in your notebook: What’s the difference between plain text files (CSV, Python scripts, Jupyter notebooks) and binary files (images, PDFs)? Why can you read some files with
catbut not others?Document what you learned and what you remain curious about
Create a new section in your W03-NB01 notebook called “Terminal Commands I Learned” and document the commands from this task. You can format this however you like - as a table, a list, or prose.
Task 4: DataQuest & Advanced Challenge
⌚ Time estimate: 60 minutes
Now back to Python! Complete these three DataQuest lessons in your W03-NB01 notebook:
🎯 ACTION POINTS
Complete three DataQuest lessons:
Document your learning as you go:
Follow the same approach you used in 📝 W02 Practice:
- Create section headers for each lesson
- Include code examples that demonstrate key concepts
- Add your personal notes about what clicked or what confused you
Engage! 🗣️ 💬
As you work through this week’s tasks, feel free to share observations or questions in the #help channel on Slack.
The teaching team monitors Slack regularly and other students often have helpful perspectives.
💭 Here’s something to think about: How do Terminal commands relate to the Python code you write? Both are ways of telling a computer what to do, but they operate at different levels. What makes them different?
🔖 Appendix
Relevant Tutorials:
Support this week:
- Slack: Post questions to
#helpand help each other out! Staff will check Slack at specific times during the week. - Office Hours: You can book a 1:1 session with the teaching staff via StudentHub. Just search for our names there.
