Skip to content

Week 1: Your Development Environment

How these weekly documents work

Welcome to CS 149. Each week you'll get a document like this one. It has three parts:

  • 🎯 Objectives: what you should be able to do by the end of the week. This is the target; everything else points at it.
  • πŸ“š Study menu: a list of things you could do outside of class to reach those objectives: readings, videos, practice problems, prompts to try with an AI tutor, and setup tasks. It's a menu, not a to-do list. You choose what fits how you learn and where your gaps are. Some weeks you'll need more of it than others.
  • ✍️ Reflection: the part you submit for a grade, due each Sunday. It opens with a few quick questions about what you did and how long it took, and a place to upload code you wrote. Then it asks, in a few sentences each, what you understand now and where you're still stuck.

A few things worth understanding up front, because this course works differently from most:

The reflection is graded on honesty and thought, not on getting things right. You will not lose points for admitting you're confused. Confusion is information: it's what tells your instructor where to help, and it's what tells you where to focus. A reflection that says "I set up git, I thought I understood the sync loop, but I couldn't get my laptop to connect" is a good reflection. One that says "I understand everything" and turns out not to be true helps no one.

You direct your own studying. Last year, everyone got the same readings and homework. This year you choose from the menu. This is on purpose: some of you have programmed before and some haven't, so the same assignment can't fit everyone. The trade-off is that it's now on you to notice what you don't understand and go after it. The reflection is where you practice that skill, and where your instructor gives you feedback on how you're doing it.

AI is a study tool outside class, never inside it. You're encouraged to use AI to help you learn when you study. But every quiz, the final exam, and your ability to explain your own project happen without AI. So the real question every week is whether your studying built understanding you carry into a closed-book setting, or whether AI did the work and left you with nothing to draw on. The reflection is where you start paying attention to that difference.

🎯 Objectives

This is a setup week. There's no quiz on it, but everything in the rest of the course assumes these tools work and you know how to use them. By the end of the week you should be able to:

  • Write, edit, and run a Python program in Thonny.
  • Work at the command line: run basic commands and move around the file system using relative paths.
  • Use ssh to connect to a lab machine from your own laptop.
  • Use git to keep your files in sync between the lab machines and your laptop.

If your tools aren't working, nothing else this semester will go smoothly. Treat this week as clearing the runway.

πŸ“š Study menu

Week 1 is less "study a topic" and more "get your environment working and get comfortable moving around in it." The two setup labs (setting up git in the lab, then connecting your laptop over SSH) are the core of the week. The items below help you make sure it all stuck and go a little deeper if you want to.

Read an introduction

We've picked two free online textbooks for this course, both hosted on Runestone. They cover the same Python, just in different voices and with different examples. This week, read the opening sections of the introduction chapter in either book, or skim both and notice which author's style clicks for you. There's no single "right" book; part of this week is finding the one you'll actually want to read when the content gets harder.

Both chapters carry on past those sections into error messages and debugging. Leave that part for next week, which is where it belongs.

Make sure it all works

  • Reopen your ~/CS149 folder on both machines (a lab desktop and your laptop) and run the full sync loop once on your own, without the lab handout in front of you: git pull, make a small change, git add -A, git commit -m "...", git push, then git pull on the other machine and confirm the change arrived. If you can do this from memory, you've got the week's most important skill.
  • Run git status at a few different points (before and after a change, before and after a commit) and read what it tells you. Getting comfortable reading git status will save you all semester.
  • Practice moving around the file system from the command line: cd, ls, pwd, ls -a, and using both relative and absolute paths to reach a file.

Write a little code

  • Head to the Week 1 practice problems and write a few short programs to get comfortable with the write–save–run loop in Thonny. Submit to Gradescope to check your work.
  • There's no new Python to learn yet; the point is to make the tools feel routine, so that when real content starts next week, the environment isn't the thing slowing you down. Commit and push what you write, so it's on both machines.

More about git

More about the command line

More about SSH

  • Curious what an SSH key actually is, why there's a public half and a private half? DataCamp, "SSH Keys Explained".

Try an AI tutor

You may already use an AI assistant, or this may be new to you. It's worth knowing what's out there: ChatGPT, Claude, and Gemini are the most common, and all have free versions. This week, if you got stuck on a tool, try asking one of them to explain the part that confused you. A good prompt names your confusion specifically:

"I'm new to the Linux command line. Explain the difference between a relative path and an absolute path, with two examples, as if I've never used a terminal before."

"In git, what's the difference between git add and git commit? Explain it like I'm brand new to version control, and use an everyday analogy."

A note on using AI: setup is a great place to use AI, because you can immediately check whether its advice worked: the command runs or it doesn't. That instant feedback is exactly the kind of AI use that helps you learn. Notice how different that feels from asking AI to write a whole program for you, where you can't easily tell whether the answer taught you anything.

✍️ Reflection

Instructions

Download the Week 1 reflection template, type your answers into it, and submit the completed document.

The first few questions are quick; the short-answer questions at the end are the ones that matter most, so save your energy for those. A few sentences each is plenty. Be specific and be honest.

1. What did you do this week? (Check all that apply.)

  • Read the introduction from one or more of the textbooks
  • Ran the git sync loop on my own
  • Practiced at the command line
  • Wrote one or more practice programs
  • Watched a video or read another resource
  • Chatted with an AI tutor back and forth
  • Something else (tell us in the short answers)

2. Roughly how much time did you spend on CS 149 outside of class this week?

  • Under 1 hour
  • 1–2 hours
  • 3–4 hours
  • 5–6 hours
  • 7+ hours

3. How did setup go, and what (if anything) is still broken or confusing? Can you run a program in Thonny, and can you sync your ~/CS149 folder between a lab machine and your laptop? Say what's working. If something's broken (a failed ssh stu, a git error, an install that won't finish), describe it as specifically as you can; this is what your instructor will help you fix. If everything works, say how you know it works: what did you test?

4. The two-folder idea (the hidden shared repository ~/.CS149.git versus your working copy ~/CS149): how well do you understand it right now? What about the pull / add / commit / push loop? Name the part that's clearest and the part that's shakiest.

5. Did you use an AI tool this week, and which one? (ChatGPT, Claude, Gemini, something else, or none?) If you did, what did you ask it, and did it actually help? If you didn't, that's fine, just say so.

6. Found something useful? If a video, article, or tutorial helped a tool finally click for you, drop a link and one line on why it helped. We collect these to build better study menus for future students; you'd be helping the next group.

7. Paste one or two programs you wrote this week. (Note: there's little to write yet. If you did the practice problems or wrote anything in Thonny while setting up, paste it here. Starting next week, this is where your out-of-class code goes.)