CS21 Lab 1: First Programs
Due Saturday, January 29, by 11:59pm
In this lab you will write a few basic python programs. For each program, we provide specifications and some sample output. Edit the files after running update21
and then run handin21
to submit your solution. Complete a short questionnaire once you are done. Full details are below.
Programming Tips
As you write programs, use good programming practices:
-
Use a comment at the top of the file to describe the purpose of the program (see example).
-
All programs should have a
main()
function (see example). -
Use variable names that describe the contents of the variables.
-
Write your programs incrementally and test them as you go. This is really crucial to success: don’t write lots of code and then test it all at once! Write a little code, make sure it works, then add some more and test it again.
-
Don’t assume that if your program passes the sample tests we provide that it is completely correct. Come up with your own test cases and verify that the program is producing the right output on them.
-
Avoid writing any lines of code that exceed 80 columns.
-
Always work in a terminal window that is 80 characters wide (resize it to be this wide)
-
In
vim
, at the bottom left in the window, there is an indication of both the line and the column of the cursor.
-
Are your files in the correct place?
Make sure all programs are saved to your cs21/labs/01
directory! Files
outside that directory will not be graded.
$ update21 $ cd ~/cs21/labs/01 $ pwd /home/username/cs21/labs/01 $ ls Questions-01.txt (should see your program files here)
Goals
The goals for this lab assignment are:
-
Write your first
python
programs! -
Practice using an editor
-
Use variable assignment to store values
-
Use
print()
andinput()
-
Learn to identify and fix common errors in programs
1. A first program
The file intro.py
is initially empty. Practice using an editor and type in the program below. After saving your file, run the program and fix any errors.
Here is an image of the program to type.
Here are two examples of the running program. User input is shown in bold.
$ python3 intro.py What is your name? Tamika Hello Tamika Nice to meet you
$ python3 intro.py What is your name? Matty Bevers Hello Matty Bevers Nice to meet you
2. Basic math operators
Complete the program started in ops.py
to print the result of adding and multiplying two numbers x
and y
stored as variables. In this example program, you should not prompt
the user to type in the numbers. The values can be stored directly in the program as variables. You may choose an arbitrary value for y
between 1 and 10. A sample run is shown below when y
is set to 3. User input is shown in bold.
$ python3 ops.py x+y = 5 x*y = 6
It is perfectly fine to print x+y =
on one line and the result on the next line as shown above. We will learn formatted output in a week or two to have the text and the result appear on the same line.
What is the differrence between print("x") and print(x) ? How can you use this to solve the problem?
|
3. Python debugging
Often a program won’t work as intended the first time we try to run it. We must review and revise the program in a process called debugging to fix syntax or logic errors in our program. The provided program fixme.py
is supposed to prompt the user to type in a phrase and print it out twice. However when we run the program, we get the following output:
$ python3 fixme.py File "fixme.py", line 13 resp = input("Type a phrase: ) ^ SyntaxError: EOL while scanning string literal
Look closely at the program and the error output and try to fix this first error. Looking at a working example program may help. Unfortunately, there are two more errors in this program. After fixing the first, continue your debugging process to fix the other two. The error messages for the first two errors give pretty good hints. Before fixing the last error, your program might run as follow:
$ python3 fixme.py
The is no output at all, yet no error messages. Something is missing at the end of your program. Can you add it to fix the program? Compare the bottom of your non-working program to example program if you need a hint.
When all three errors are fixed, the program should run as follows, where user input is in bold:
$ python3 fixme.py Type a phrase: It's working! It's working! It's working!
4. Answer the Questionnaire
Each lab will have a short questionnaire at the end. Please edit
the Questions-01.txt
file in your cs21/labs/01
directory
and answer the questions in that file.
Once you’re done with that, you should run handin21
again.
Submitting lab assignments
Remember to run handin21
to turn in your lab files! You may run handin21
as many times as you want. Each time it will turn in any new work. We
recommend running handin21
after you complete each program or after you
complete significant work on any one program.
Logging out
When you’re done working in the lab, you should log out of the computer you’re using.
When Remotely logged in
When you are ssh’ed into the CS labs, first quit any applications you are
running, like vim
, then simply type exit
at the prompt in your terminal
window to disconnect.
When Physically logged in
When you are in a CS lab logged into a CS machine. First quit any applications you are running, like the browser and the terminal. Then click on the logout icon ( or ) and choose "log out".
If you plan to leave the lab for just a few minutes, you do not need to log out. It is, however, a good idea to lock your machine while you are gone. You can lock your screen by clicking on the lock icon. PLEASE do not leave a session locked for a long period of time. Power may go out, someone might reboot the machine, etc. You don’t want to lose any work!