(Top)
1 Set Up
1.1 Join Gradescope
1.2 Text Editor
1.3 Exercise: complete a survey
1.4 Terminal and Python
1.5 An Interactive Python Session
1.6 Exercise: run a test program
1.7 Exercise write a Python program
1.8 Run your first program
1.9 Submit your work
2 Appendices
2.1 Appendix: configuring Atom tabbing
2.2 Appendix: getting a Windows terminal using Git tools
2.3 Appendix: getting a Windows terminal using WSL
Here we set-up the software necessary for completing and submitting your work throughout the semester, and we try out some Python programming. By the end of this homework you'll have run the Python interpreter, written some Python code, tested that code, and submitted it to us so that we can take a look at it. In doing so, you will interact through Gradescope and our automated system that works to check your work and tries its best to give you feedback on it.
Before we get into the substantive material of the course, we need to make sure your computer has all the software necessary for the course and show you how to use it. This assignment walks you through that process. We have tried to include detailed instructions, but if anything isn't working, you can get help from us to complete the work.
In order to do the work of this class, you'll need the following:
Below are instructions for installing each of these things. The instructions are meant to work for Windows, Mac, or Linux computers, so they ought to be relevant to your computer. There are also several “exercises” you have to complete. These are very basic and really just meant to test that you have everything set up correctly.
Your first step is to create a Gradescope account associated with your Reed email. In doing so you can join the CSCI 121 Spring 2025 course on Gradescope by using the course code we'll provide in this lab. You need to join Gradescope in order to submit the work of this assignment and all the future assignments.
If you officially registered for this course before this past weekend, you should have received an invitation from Gradescope to join the course. Just follow the links and instructions in that e-mail. It should be pretty straightforward to join.
You're going to need a text editor to write code for this class. You do not want to use Notepad, TextEdit, or other minimal default text editors that come on your computer. Fortunately, there is a wide variety of (mostly free) excellent text editors out there. These powerful editors are made with programmers in mind, and they have a variety of features that you will find useful. Many good text editors are available, and many of them are free. You should choose one and download it. We've listed some good options below (along with some caveats about them), but you're welcome to use others if you prefer. (We recommend, however, that you use a simple text editor, rather than a complex integrated development environment (IDE), at least at first.)
We'll do most of our coding in an editor, and coding is best practiced with a fixed-width font. This means that every letter, symbol, and space in your document will occupy the same width and height, and so your text will be lined up in same-width rows and columns:
Here is text in a fixed-width font.
The text is lined up and laid out in a grid, because each symbol
occupies the same area.
To get this, the text editor you choose may need some configuration in its preferences:
Next we're going to edit a text file. Make a folder on your computer
where you will store your work for this class. You'll probably want
folders within that for each lab homework and project. It's best
for our purposes to not include spaces in the names of those folders.
A folder named cs1
or csci121
with a folder inside named project0
or
pj0
might be best. You can put these inside Documents
or Desktop
,
whichever you most prefer for yor work.
Now download the survey.txt
file and open it with your
editor. Fill in answers to the questions, and then save the
file. (We'll submit this and the work of another exercise in the last
step of this assignment.)
We will run our programs using terminal commands. The terminal is a text-based interface where you can issue commands to your computer. It's a very powerful tool, and programmers use it all the time. You'll only get a very basic introduction to the terminal in this course, but it's still very important to what you're doing.
In particular, what we're going to be doing with the terminal is running Python programs, and for that we'll need to download the Python interpreter, the program that carries out the instructions we'll write in Python. (This program is not something you can open in a window— you call it from the terminal or some other program.)
Depending on your operating system, you might have some of this installed already. Follow the instructions below for your operating system.
Mac Macs come with a built-in terminal, which you can easily find by using the Spotlight search feature. Macs also come with Python installed, but unfortunately it's Python 2, which is not what we're using. (Be careful— you can get through a little bit of the class not realizing you're using Python 2 by accident, and then eventually things stop working right.)
You should go to the Python website and download and install the
latest version of Python 3 (currently 3.13.1).
To check that it works, open up the terminal and type python3
(and hit enter).
You should see something like the following:
Python 3.12.6 (v3.12.6:a4a2d2b0d85, Sep 6 2024, 16:08:03)
[Clang 13.0.0 (clang-1300.0.29.30)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>>
Crucially, the version number at the top indicates that it is Python
3, not the Python 2 installation that comes with your computer. (You
should leave the Python 2 installation alone— your computer relies on
it for various things.) Type quit()
to get back to the regular
terminal prompt.
Linux Linux also comes with a built-in terminal. It also often
comes with a Python 3 installation. You can type python3
or python
at the command line to see if one is already there. (If it is, you'll
see something like the terminal response shown above in the Mac
section.) If it is not, go to the Python website and follow the
installation instructions. If it's there, and the version is 3.X.Y,
for some value of X that's 10 or greater, then you're fine. If you
want to take the time to upgrade to a newer version, that's great, but
it shouldn't be necessary. Type quit()
to get back to the regular
terminal prompt.
Windows Things are a little trickier on Windows, just because
we're trying to maintain consistency in the class. You have two
options for what to do. One thing you can do is use the “command
prompt” as your terminal— this is the Windows equivalent of
“terminal,” and there's nothing wrong with it at all. But it's
different than terminal, so some of the instructions we give for how
to use the terminal will be slightly different if you're using the
command prompt instead. We're not doing anything extreme in this
class, so the differences will be quite minor, but you might need to
look things up a little bit. If you want to do this, then you need to
download Python 3 from the Python website, just like the instructions
for Mac users above. The only difference is that installations in
Windows usually default to using the py
command instead of python3
, so
make sure you try that at the command line when you're looking for the
successful Python installation.
The other option on Windows is to install the Windows Subsystem for
Linux, which is essentially a small Linux environment that you can run
on Windows. This lets you use a fully Linux-style terminal, just like
you would see on a Linux or Mac computer. You do this by going to the
Microsoft store, finding the Ubuntu application, and installing
it. (Ubuntu is a popular Linux distribution.) When you run it, you
should see a terminal window pop up. The first thing it will do is
prompt you to pick a username and password— do that. Then try typing
the python3
command— you should find that there's a Python installation already
there. Then follow the Mac and Linux instructions above that discuss
checking the version.
Python is a programming language. You can write large files full of
many lines of code and have Python run the whole file. But you can
also use Python in an interactive mode, where you can write single
lines of Python, and the Python interpreter will evaluate them each
one-by-one as you type them. Go to your terminal and type the command
for Python there. (This is usually python3
, but it could be py
or
python
or something else, depending on how it was installed. You can
also create an alternate command if you feel ambitious and want to
look up details of how the terminal works.) When you do this, you
should see the version information discussed above in the installation
instructions.
The key thing that you should see is the Python prompt >>>
. Here
you can type individual lines of Python code and watch them be
evaluated immediately. If you type 4+5
and then press the [return]
key, it should print 9
on the next line and give you a new >>>
prompt. Try each of the Python code suggested below and make sure
that you get the same responses. The lines starting with >>>
contain the code you should type at the prompt. The other lines
should appear automatically as responses.
>>> 18 % 4
2
>>> x = 7
>>> print(x)
7
>>> from math import pi
>>> pi
3.141592653589793
>>> quit()
The last line with quit()
tells Python to exit and should return you
back to the terminal so that you can enter console commands, not Python
expressions.
Next we want to run a Python program from the terminal. Download the
file test.py and put it in your project folder.
To run it we'll need some simple terminal commands— in
particular we need cd
and ls
. (Note the extra instructions for Windows
users below.)
When you're working in the terminal, your computer keeps track of the
directory/folder you are currently working in, even if it's not
displayed. (If you're unsure, you can type pwd
for “print working
directory” and it will tell you where you are.) You should start by
default in your computer's home directory. If you ever want to return
directly to the home directory, you can type the cd
command (for “change
directory”). You can display the contents of the directory
you're in (both sub-directories and files) by typing the ls
command. If the folder you're in contains the sub-directory named
“lower”, you get to it by typing the command
cd lower
If you want to move up one level into the parent folder of your current directory, you do it with the command
cd ..
A series of cd
commands should let you navigate to
any folder on your computer.
You should use these commands to navigate to the folder where you're
storing your Project 0 work, and you should make sure it contains the
test.py
file that you just downloaded. Then run the command python3 test.py
at the terminal. (As always, I use python3
because that is the
most common default command for Python 3, but it could be different on
your computer.) When you put a file name after the Python command, you
don’t get an interactive session like we did above — instead the
interpreter carries out the contents of the file. In this case, that
should result in a number being printed to the terminal. Find this
assignment on Gradescope and enter that number.
Windows users using command prompt You will need to sometimes look
up command prompt commands, but here the only difference should be
that you use dir
instead of ls
to display the contents of a
directory.
Windows users using WSL Ubuntu You're using a real Linux prompt,
so the commands are the same as those discussed above. The only tricky
thing is that the file system is organized a little bit weirdly. The
Linux installation has its own home directory, and your computer's
regular file system is listed as if it's an external drive. To find
it, navigate up to the root directory. You should see a directory
there called mnt
. Navigate into that, and you should see that it
contains all your computer’s regular drives (including the C
drive,
which is probably where your homework folder is.) So for example, if
you normally have a folder for Python code at the top level of your
computer, C:\python
, then in the Linux installation you would find
it at /mnt/c/python
. (Another Windows/Linux difference is that the
slashes in file locations go the other way— backslashes on Windows
and slashes on Linux.)
Now we want to practice writing an actual Python program, meaning writing Python code in its own file. You should start your editor and open a new file. In some editors, it might ask you what kind of file, or in what programming language, you will be writing. If so, find the option that allows you to create a new Python source code file.
Now go ahead and type the following Python code into the file (perhaps replacing any initial text that the editor automatically provided). The file should just be this code:
def first(a, b):
c = 3
if a > b:
c = 4
return a**c - b
You will want to literally type in the code, rather than cut and paste. Some characters that appear in documents look the same but are not the same as the keys you would press yourself (double quotes and hyphens are notorious examples of this trickiness). Furthermore, you should make sure that you indent each of the lines after the first using spaces— 4 spaces for lines 2, 3, and 5; 8 spaces for line 4. (If your editor is configured correctly to treat tabs as spaces, you can tab once for lines 2, 3, and 5; hit tab twice for line 4.)
Save the file with the above code as first.py
. Most text editors
will now know that your file is a file of Python code and will color
it accordingly, with specific colors assigned to functions, variables,
etc.
Now I know that you probably followed our instructions well and copied the code verbatim. Even so, you should want to see if the code works before you hand it in. We will explain this more carefully in future lectures and labs, but there is no harm in just trying things out now. In the terminal type the following command:
python3 -i first.py
This is the same python3
command you entered earlier along with some
extra information. This runs the program you've written in a
different way. It reads in the code in first.py
code first,
and then allows you to interact with Python, prompting you
for more Python code. For example, here is a
session that I ran with my code in the terminal:
>>> first(100,1)
99999999
>>> quit()
Here, havingh run Python 3 within a terminal, I enter a Python expression
after the >>>
prompt. Python responds on the next line with a
number computed from the expression first(100,1)
If instead you see
errors rather than an integer, email us. To stop playing with
the code within Python, Enter quit()
at a >>>
prompt to leave the
Python system and go back to entering terminal commands.
Understand that this is hardly testing the code, and rather just an easy sanity check compared to what we expect for later homework and projects.
We're ready for the final step, submitting the completed work. To do
this, go to Gradescope (and log in) and navigate to the site's CSCI
121 Spring 2025 course
page. You should see several assignments there, including ones
labelled [Pj0 Ex1], [Pj0 Ex2], and [Pj0 Ex3]. When you
click on the first and the last of these, you'll get a Submit
Programming Assignment pop-up that will ask you to upload the file
you need to submit for that problem. For “submit your survey,” upload
the file survey.txt
, but only once you've edited and saved it with
your survey responses. For “submit your first,” upload the file
first.py
, but only once you've run it yourself. For each, the
system should tell you that the problem was successfully submitted.
The system inspects the files you submit and does work to give you more detailed feedback on their contents. In the case of the first problem, your submitted survey will get scanned by a script. In the case of the second problem, the code you submit will be run by a test script. For each, some results should appear shortly and a score will get reported. Sometimes the system is slow but the score should eventually appear. Let us know if for some reason it does not.
For the “report test.py
output” exercse, you'll need to fill in
the number printed by your run of that test.py
script. This is just
a sanity check that you ran the correct version of Python, version 3.
If not, we can work to correct the installation on your computer.
If you see an autograder score above 0.0 for each, you will have completed this assignment. Congrats! You're ready to do more interesting things in the first Tuesday lab meeting.
You can configure Atom to use spaces by going to the menu bar at
the top of the screen and finding the menu selection Atom >
Preferences.... This will bring up a Settings pane with an option
list Core, Editor, etc. Select Editor and scroll through the
various configurable options scanning for a check-box named Soft
Tabs. Select this option with a check mark so that “soft tabs” are
enabled. “Soft” means that when you hit the [tab]
key a number of
spaces will be entered instead. (“Hard” would mean that an actual tab
is inserted.)
You should also change the Tab Length setting (just a little below
the soft tabs setting). Set its field to 4
. Atom can be clever
in reading source code that was written using different settings. It
is willing to work with both hard tabs and soft tabs, mimicking the
file it is reading. If you set the option Tab Type to soft
, then
it will just always insert spaces when you hit [tab]
regardless of
the other sections of the code. This is probably the option you should
prefer.
A different option for getting a terminal on Windows that has worked for CSCI 121 students in the past is to download and install a program provided by the GitHub service, as part of its Windows tools, called GitBash. If you can get this installed, it works the same as the terminal programs on the Mac and on Linux.
A fairly advanced option for getting a terminal on Windows is one used by students taking our CSCI 221 course. You can install a Windows System for Linux or WSL on Windows. A WSL is a bit more feature-rich than Powershell and GitBash (described just above). It essentially has you put a mini Unix computer system (sometimes called a “virtual machine”) onto your computer. This will be especially useful after this course, as you'll probably see need to use other Unix tools beyond those for Python programming, and the skills you've learned in this class will probably motivate you to do so.
To install a WSL open up the Microsoft Store and search for Linux. This will bring up several Linux distributions as applications that you can download. Select the Ubuntu one and install it. Alternatively, you can probably just search directly for “Ubuntu” in the store.
Once you've downloaded that software application, go ahead and run it. Running the Ubuntu WSL brings up a Unix console window, one that will (because it is your first time running it) ask you to name your WSL user and provide its password. I recommend using your Reed login name and password here, but you can choose whatever you like. This username/password combo will be what you type in every time you run this Ubuntu WSL application.
Because this acts like a computer within your computer, it acts like
it has its own structure of files and folders. But you can access your
normal Windows system files and folders (the stuff that's normally on
your C:
drive) using a special “folder path” here within WSL.
For example if you type the command
cd /mnt/c/Users/WINDOWS-NAME/csci121
where WINDOWS-NAME
is your Windows user name, this will take you
into the folder we had you make with the "Make coursework folders"
step up above. If you don't know your Windows user name, typing the
command
ls /mnt/c/Users
should give you a list of possible user names on the system, and it should hopefully be obvious which one is yours.
It's also possible to create a shortcut to your coursework folder within this WSL subsystem. If you enter the commands
cd ~
ln -s /mnt/c/Users/WINDOWS-NAME/csci121 csci121
then this will create a “symbolic link” called csci121
in your WSL
user's home, and that is a system item that refers to the actual
csci121
folder in your Window's user's home.
This all sounds complicated, and it's not necessary for this course. Nevertheless, some of you might enjoy giving it a try.