#Name: Thomas Hunter #Date: January 27, 2019 #This program prints: Hello, World! print("Hello, World!")
Submit the following programs via Gradescope:
Write a program that prints "Hello, World!" to the screen.
Hint: See Lab 1.
Write a program that draws an octagon (8-sided polygon).
Note: Choose a name for your file that is not turtle.py.
When executing the "import turtle" statement, the computer first looks in the folder where the file is saved for the turtle module and then in the libraries (and other places on the path). So, it thinks the module is itself, causing all kinds of errors. To avoid this, name your program something like "myTurtle.py" or "program2.py".
Hint: See Lab 1.
Write a program that implements the pseudocode ("informal high-level description of the operating principle of a computer program or other algorithm") below:
Repeat 45 times: Walk forward 100 steps Turn right 92 degrees Walk forward 10 steps Turn right 92 degreesYour output should look similar to:
Write a program that will print the Hunter College motto ("Mihi cura futuri" which translates to: "The care of the future is mine") 19 times.
The output of your program should be:
Mihi cura futuri Mihi cura futuri Mihi cura futuri Mihi cura futuri Mihi cura futuri Mihi cura futuri Mihi cura futuri Mihi cura futuri Mihi cura futuri Mihi cura futuri Mihi cura futuri Mihi cura futuri Mihi cura futuri Mihi cura futuri Mihi cura futuri Mihi cura futuri Mihi cura futuri Mihi cura futuri Mihi cura futuri
Copy the program from Section 4.3 into a file on your computer and modify the program (with turtles alex and tess) to have a purple background color and have tess draw white lines:
Write a program that prints out the numbers from 0 to 14.
The output of your program should be:
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14
Hint: Use a loop and print out the index or loop variable.
Using the string commands introduced in Lab 2, write a Python program that prompts the user for a message, and then prints the message, the message in upper case letters, and the message in lower case letters.
A sample run of your program should look like:
Enter a message: Mihi cura futuri Mihi cura futuri MIHI CURA FUTURI mihi cura futuri
Another run:
Enter a message: I love Python! I love Python! I LOVE PYTHON! i love python!
Hint: Your program should be able to take any phrase the user enters and prints it, it in upper case letters, and it in lower case letters. To do that, you need to store the phrase in a variable and print variations of the stored variable.
Write a program that prompts the user to enter a phrase and then prints out the ASCII code of each character in the phrase.
A sample run of your program should look like:
Enter a phrase: I love Python! In ASCII: 73 32 108 111 118 101 32 80 121 116 104 111 110 33
And another sample run:
Enter a phrase: ABC In ASCII: 65 66 67
Hint: If c is a character, ord(c) returns its ASCII code. For example, if c is 'I', then ord(c) returns 73. See Lab 2.
(The cipher disk above shifts 'A' to 'N', 'B' to 'O', ... 'Z' to 'M', or a shift of 13. From secretcodebreaker.com.)
Write a program that prompts the user to enter a word and then prints out the word with each letter shifted right by 13. That is, 'a' becomes 'n', 'b' becomes 'o', ... 'y' becomes 'l', and 'z' becomes 'm'.
Assume that all inputted words are in lower case letters: 'a',...,'z'.
A sample run of your program should look like:
Enter a word: zebra Your word in code is: mroen
Hint: See the example programs from Lecture 2.
Write a program that implements the pseudocode below:
For i = 5, 10, 15, 20, 25, ... ,300: Walk forward i steps Turn left 91 degreesYour output should look similar to:
Hint: See examples of range(start,stop,step) in Lecture 2 notes.
Write a program that prompts the user for a DNA string, and then prints the length and GC-content (percent of the string that is C or G, written as a decimal).
A sample run of your program should look like:
Enter a DNA string: ACGCCCGGGATG Length is 12 GC-content is 0.75
And another sample run:
Enter a DNA string: AAAAA Length is 5 GC-content is 0.0
Hint: See Lab 2.
Write a program that asks the user for a message and then prints the message out, one character per line. Each line should also contain a '!!'.
A sample run of your program should look like:
Enter a message: I love Python! !! I !! !! l !! o !! v !! e !! !! P !! y !! t !! h !! o !! n !! !
And another sample run:
Enter a message: Hunter !! H !! u !! n !! t !! e !! r
Note: The print() command can take multiple inputs to print at the same time. For example, print('!!',c) will print two exclamation points followed by a space and the contents of variable c. For example, if Hint: See Lab 2 or Lecture 2 notes.
Write a program that prints an opening statement and then
asks the user for a number and prints that many stars, one per line.
For example:
Another sample run:
Modify the program from Lab 3 to show the shades of green.
Your output should look similar to:
Write a program that asks the user for a name of an image .png file and the name of an output file. Your program should create a new image that has only the red and blue channel of the original image (that is, no green channel).
A sample run of your program should look like:
Sample input and resulting output files:
Note: before submitting your program for grading, remove the commands that show the image (i.e. the ones that pop up the graphics window with the image). The program is graded on a server on the cloud and does not have a graphics window, so, the plt.show() and plt.imshow() commands will give an error. Instead, the files your program produces are compared pixel-by-pixel to the answer to check for correctness.
Hint: See Lab 3.
Write a program that asks the user for 5 whole (integer) numbers. For each number, turn the turtle left the degrees entered and then the turtle should move forward 100.
A sample run of your program should look like:
and the output should look similar to:
Write a program that asks the user for a noun and two verbs (inspired by a Colgate University COSC 101 program). Using the words the user entered, print out a new sentence of the form:
Hint: Here's a way to approach the problem:
Create a program that creates a image of red and white stripes. Your program should ask the user for the size of your image, the name of the output file, and create a .png file of stripes. For example, if the user enters 10, your program should create a 10x10 image, alternating between red and white stripes.
A sample run of the program:
Another sample run of the program:
Note: before submitting your program for grading, remove the commands that show the image (i.e. the ones that pop up the graphics window with the image). The program is graded on a server on the cloud and does not have a graphics window, so, the plt.show() and plt.imshow() commands will give an error. Instead, the files your program produces are compared pixel-by-pixel to the answer to check for correctness.
Hint: See notes from Lecture 3.
Write a program that implements the pseudocode below:
A sample run of your program should look like:
and another sample run:
Hint: See Section 2.7.
Write a program that converts kilometers to miles. Your program should prompt the user for the number of kilometers and then print out the number of miles.
A useful formula: miles = 0.621371* kilometers.
See Lab 4 for designing Input-Process-Output programs.
Modify the flood map of NYC from Lab 4 to color the region of the map with elevation greater than 6 feet and less than or equal 20 feet above sea level the color grey (50% red, 50% green, and 50% blue).
Your resulting map should look like:
and be saved to a file called floodMap.png.
Note: before submitting your program for grading, remove the commands that show the image (i.e. the ones that pop up the graphics window with the image). The program is graded on a server on the cloud and does not have a graphics window, so, the plt.show() and plt.show() commands will give an error. Instead, the files your program produces are compared pixel-by-pixel to the answer to check for correctness.
The program turtleString.py takes a string as input and uses that string to control what the turtle draws on the screen (inspired by code.org's graph paper programming). Currently, the program processes the following commands:
Modify this program to allow the user also to specify with the following symbols:
Hint: See Lecture 4 notes.
Following Lab 5, write a program that asks the user for the name of a png file and print the number of pixels that are nearly white (the fraction of red, the fraction of green, and the fraction of blue are all above 0.75).
For example, if your file was of the snow pack in the Sierra Nevada mountains in California in February 2014:
then a sample run would be:
Note: for this program, you only need to compute the snow count. Showing the image will confuse the grading script, since it's only expecting the snow count.
Write a logical expression that is equivalent to the circuit that computes the majority of 3 inputs, called in1, in2, in3:
Save your expression to a text file.
See Lab 5 for the format for submitting logical expressions to Gradescope.
Modify the map-mapking program from Lab 4 to create a map that outlines the coastline. Your program should create a new image, called coast.png with the pixels colored as follows:
Your resulting map should look like:
and be saved to a file called coast.png.
Note: before submitting your program for grading, remove the commands that show the image (i.e. the ones that pop up the graphics window with the image). The program is graded on a server on the cloud and does not have a graphics window, so, the plt.show() commands will give an error. Instead, the files your program produces are compared pixel-by-pixel to the answer to check for correctness.
Build a circuit that has the same behavior as a nor gate (i.e. for the same inputs, gives identical output) using only and, or, and not gates.
Save your expression to a text file.
See Lab 5 for the format for submitting logical expressions to Gradescope.
Modify the program from Lab 6 that displays the NYC historical population data. Your program should ask the user for the borough, an name for the output file, and then display the fraction of the population that has lived in that borough, over time.
A sample run of the program:
The file qFraction.png:
Note: before submitting your program for grading, remove the commands that show the image (i.e. the ones that pop up the graphics window with the image). The program is graded on a server on the cloud and does not have a graphics window, so, the plt.show() and plt.imshow() commands will give an error. Instead, the files your program produces are compared pixel-by-pixel to the answer to check for correctness.
Write a program that computes the average and maximum population over time for a borough (entered by the user). Your program should assume that the NYC historical population data file, nycHistPop.csv is in the same directory.
A sample run of your program:
and another run:
Hint: See Lab 6.
Write an Unix shell script that prints Hello, World to the screen.
Submit a single text file containing your shell commands. See Lab 6 for details.
In Lab 6, you created a github account. Submit a text file with the name of your account. The grading script is expecting a file with the format:
Note: it takes a few minutes for a newly created github account to be visible. If you submit to gradescope and get a message that the account doesn't exist, wait a few minutes and try again.
Write a program that asks the user for the hour of the day (in 24 hour time), and prints
A sample run:
Another sample run:
And another run:
Modify the program from Lab 7 that displays shelter population over time to:
A sample run of the program:
which produces an output:
Note: The grading script is expecting that the label (i.e. name of your new column) is "Fraction Children".
Write a program, using a function main() that prints "Hello, World!" to the screen. See Lab 7.
Logical gates can be used to do arithmetic on binary numbers. For example, we can write a logical circuit whose output is one more than the inputted number. Our inputs are in1 and in2 and the outputs are stored in out1, out2, and out3.
Here is a table of the inputs and outputs:
Submit a text file with each of the outputs on a separate line:
Note: here's a quick review of binary numbers.
Write a program that prompts the user to enter a list of names. Each person's name is separated from the next by a semi-colon and a space ('; ') and the names are entered lastName, firstName (i.e. separated by ', '). Your program should then print out the names, one per line, with the first names first followed by the last names.
A sample run of your program should look like:
Hint: See Section 10.24 for a quick overview of split(). Do this problem in parts: first, split the list by person (what should the delimiter be?). Then, split each of person's name into first and last name (what should the delimiter be here?).
Write a program that asks the user for the name of an image, the name of an output file. Your program should then save the upper right quarter of the image to the output file specified by the user.
A sample run of your program should look like:
which would have as input and output:
Hint: See sample programs from Lectures 3 and 6.
Note: before submitting your program for grading, remove any commands that show the image (i.e. the ones that pop up the graphics window with the image). The program is graded on a server on the cloud and does not have a graphics window, so, the plt.show() and plt.imshow() commands will give an error. Instead, the files your program produces are compared pixel-by-pixel to the answer to check for correctness.
Modify the parking ticket program from Lab 8 to do the following:
A sample run:
And another run:
Fill in the missing function, num2string(), in the program, numsConvert.py (available at:
https://github.com/stjohn/csci127). The function should take number between 0 and 9 as a parameter and returns the corresponding number as a string. For example, if the parameter is 0, your function should return "zero". If the parameter is 1, your function should return out "one", etc.
Note: The grading scripts are expecting that your function is called num2string(). You need to use that name, since instead of running the entire program, the scripts are "unit testing" the function-- that is, calling that function, in isolation, with differrent inputs to verify that it performs correctly.
Hint: See notes from Lecture 7 and Lab 8.
Write a program that asks the user for a CSV of collision data (see note below about obtaining reported collisions from NYC OpenData). Your program should then list the top three contributing factors for the primary vehichle of collisions ("CONTRIBUTING FACTOR VEHICLE 1") in the file.
A sample run:
This assignment uses collision data collected and made publicly by
New York City Open Data, and can be found at:
Hint: See Lab 8 for accessing and analyzing structured data.
Write two functions, triangle() and nestedTriangle(). Both functions take two parameters: a turtle and an edge length. The pseudocode for triangle() is:
The pseudocode for nestedTriangle() is very similar:
A template program, nestingTrianges.py, is available on the
CSci 127 repo on github.
The grading script does not run the whole program, but instead tests your function separately ('unit tests') to determine correctness. As such, the function names must match exactly (else, the scripts cannot find it). Make sure to use the function names from the github program (it is expecting triangle() and nestedTriangle()).
A sample run:
which would produce:
Write a function, computeFare(), that takes as two parameters: the zone and the ticket type, and returns the Long Island Railroad fare.
A template program, LIRRtransit.py, is available on the
CSci 127 repo on github.
The grading script does not run the whole program, but instead tests your function separately ('unit tests') to determine correctness. As such, the name of the function must match exactly (else, the scripts cannot find it).
A sample run:
And another:
Hint: See Lab 8.
Write a program that uses folium to make a map of New York City. Your map should be centered at (40.75, -74.125) and include a marker for the main campus of Hunter College. The HTML file your program creates should be called: nycMap.html
Hint: See Lab 9.
Using folium (see Lab 9), write a program that asks the user for the name of a CSV file, name of the output file, and creates a map with markers for all the traffic collisions from the input file.
A sample run:
which would produce the html file:
(The demo above is for March 18, 2016 using the time the collision occurred ("TIME") to label each marker and changed the underlying map with the option:
tiles="Cartodb Positron" when creating the map.)
This assignment uses collision data collected and made publicly by
New York City Open Data.
See Programming Problem #39 for details on this data set. When creating datasets to test your program, you will need to filter for both date (to keep the files from being huge) and that there's a location entered. The former is explained above; to check the latter, add the additional filter condition of "LONGITUDE is not blank".
Hint: For this data set, the names of the columns are "LATITUDE" and "LONGITUDE" (unlike the previous map problem, where the data was stored with "Latitude" and "Longitude").
The program,
errorsHex.py, has lots of errors. Fix the errors and submit the modified program.
Hint: See Lab 9.
Fill in the following functions in a program that maps GIS data from NYC OpenData CSV files and marks the current location and closest point:
A sample run to find the closest CUNY campus to the Brooklyn Navy Yard:
which would produce the html file:
Another sample run to find the closest recycling bin to Roosevelt Island (using the list of recycling bins from https://data.cityofnewyork.us/Environment/Litter-Basket-Inventory/es7t-6u8y):
which would produce the html file:
A template program, closestPoint.py, is available on the
CSci 127 repo on github.
The grading script does not run the whole program, but instead runs each of your functions separately ('unit tests') to determine correctness. As such, the names of the functions must match exactly the ones listed above (else, the scripts cannot find them).
Hint: See Lab 9.
Fill in the missing functions:
The functions are part of a program that averages smaller and smaller regions of an image until the underlying scene is visible
(inspired by the elegant koalas to the max).
For example, if you inputted our favorite image, you would see (left to right):
and finally:
A template program, averageImage.py, is available on the
CSci 127 repo on github.
The grading script does not run the whole program, but instead runs each of your functions separately ('unit tests') to determine correctness. As such, the names of the functions must match exactly the ones listed above (else, the scripts cannot find them).
Hint: See notes from Lecture 8.
Modify the program from Lab 10 that makes a turtle walk 100 times. Each "walk" is 10 steps forward and the turtle can turn 0,1,2,...,359 degrees (chosen randomly) at the beginning of each walk.
A sample run of your program:
Write a program that asks the user to enter a string. If the user enters an empty string, your program should continue prompting the user for a new string until they enter a non-empty string. Your program should then print out the string entered.
A sample run of your program:
Hint: See Lab 10.
Write an Unix shell script that does the following:
Hint: See Lab 10.
Write a simplified machine language program that prints: Hello, World!
See Lab 11 for details on submitting the simplified machine language programs.
Hint: You may find the following table useful:
Hint: The grading scripts are matching the phrase exactly, so, you need to include the spacing and punctuation.
Write a simplified machine language program that has register $s0 loop through
the numbers 0, 5, 10, ..., 50.
See Lab 11 for details on submitting the simplified machine language programs.
Using Unix shell commands, write a script that counts the number of .py files in current working directory.
Hint: See Lab 11.
Write a C++ program that prints "Hello, World!" to the screen.
Hint: See Lab 12 for getting started with C++.
Write a C++ program that will print "Mihi cura futuri" 19 times.
The output of your program should be:
Hint: See Lab 12 for getting started with C++.
Write a C++ program that converts kilometers to miles. Your program should prompt the user for the number of kilometers and then print out the number of miles.
A useful formula: miles = 0.621371* kilometers.
See Lab 4 for designing Input-Process-Output programs and Lab 12 for getting started with C++.
Write a C++ program program that asks the user for a number and draws a grid of zeros and ones of that height and width using 'character graphics'.
A sample run:
Another sample run:
Hint: if your nested loops have index variables, i and j, then what does: cout << ((i+j)%2) do?
Write a C++ program that asks the user for the hour of the day (in 24 hour time), and prints
A sample run:
Another sample run:
And another run:
Write a C++ program that asks the user for their age, and continue asking until the number entered positive (that is, greater than 0).
A sample run:
Hint: Rewrite the Python program
from Lab 10 in C++.
Write a C++ program that asks the user for the starting amount, and prints out the yearly balance of a savings account, assuming 10% interest, until the amount has doubled.
A sample run:
Hint: Use an indefinite loop and continue looping while the balance is less than twice the initial amount.
Note: the autograder is expecting each line to begin with "Year " and the corresponding number for the year.
Write a C++ program that asks the user for a whole number between -31 and 31 and prints out the number in "two's complement" notation, using the following algorithm:
A sample run:
Another run:
The fault is in our stars...
Please enter a number: 2
*
*
The fault is in our stars...
Please enter a number: 5
*
*
*
*
*
Enter name of the input file: csBridge.png
Enter name of the output file: greenFreeH.png
Enter a number: 270
Enter a number: 100
Enter a number: 190
Enter a number: 200
Enter a number: 80
If it VERB1 like a NOUN and VERB2 like a NOUN, it probably is a NOUN.
A sample run of the program:
Enter a noun: duck
Enter a verb: walks
Enter another verb: talks
New sentence:
If it walks like a duck and talks like a duck, it probably is a duck.
Another sample run of the program:
Enter a noun: cat
Enter a verb: sounds
Enter another verb: moves
New sentence:
If it sounds like a cat and moves like a cat, it probably is a cat.
Enter the size: 13
Enter output file: stripes13.png
Enter the size: 50
Enter output file: stripes50.png
1. Ask the user for the number of hours until the weekend.
2. Print out the days until the weekend (days = hours // 24)
3. Print out the leftover hours (leftover = hours % 24)
Enter number of hours: 27
Days: 1
Hours: 3
Enter number of hours: 52
Days: 2
Hours: 4
For example, if the user enters the string "FLFLFLFL^FFFvFLFLFLFL", the turtle would move forward and then turn left. It repeats this 4 times, drawing a square. Next, it lifts the pen and move forward 3, puts the pen back down and draw another square.
Enter file name: caDrought2014.png
Snow count is 38010
Enter borough name: Queens
Enter output file name: qFraction.png
Enter borough: Staten Island
Average population: 139814.23076923078
Maximum population: 474558
Enter borough: Brooklyn
Average population: 1252437.5384615385
Maximum population: 2738175
#Name: Your name
#Date: April 2017
#Account name for my github account
AccountNameGoesHere
Enter hour (in 24 hour time): 11
Good Morning
Enter hour (in 24 hour time): 20
Good Evening
Enter hour (in 24 hour time): 15
Good Afternoon
Enter name of input file: DHS_2015_2016.csv
Enter name of output file: dhsPlot.png
(click to launch new window with circuit)
Inputs Outputs
Decimal
Numberin1 in2 Decimal
Numberout1 out2 out3
0 0 0 1 0 0 1
1 0 1 2 0 1 0
2 1 0 3 0 1 1
3 1 1 4 1 0 0
#Name: YourNameHere
#Date: April 2017
#Logical expressions for a 4-bit incrementer
out1 = ...
out2 = ...
out3 = ...
Where "..." is replaced by your logical expression (see Lab 5).
Please enter your list of names: Cohn, Mildred; Dolciani, Mary P.; Rees, Mina; Teitelbaum, Ruth; Yalow, Rosalyn
You entered:
Mildred Cohn
Mary P. Dolciani
Mina Rees
Ruth Teitelbaum
Rosalyn Yalow
Thank you for using my name organizer!
Enter image file name: hunterLogo.png
Enter output file: logoUR.png
Enter file name: Parking_Violations_Jan_2016.csv
Enter attribute: Vehicle Color
The 10 worst offenders are:
WHITE 2801
WH 2695
GY 1420
BK 1153
BLACK 1054
BROWN 727
BL 656
GREY 574
SILVE 450
BLUE 412
Name: Vehicle Color, dtype: int64
Enter file name: Parking_Violations_Jan_2016.csv
Enter attribute: Vehicle Year
The 10 worst offenders are:
0 3927
2015 1265
2014 1143
2013 1105
2012 772
2011 666
2007 643
2008 559
2010 509
2006 499
Name: Vehicle Year, dtype: int64
Enter CSV file name: collisionsNewYears2016.csv
Top three contributing factors for collisions:
Driver Inattention/Distraction 136
Unspecified 119
Following Too Closely 37
Name: CONTRIBUTING FACTOR VEHICLE 1, dtype: int64
https://data.cityofnewyork.us/Public-Safety/NYPD-Motor-Vehicle-Collisions/h9gi-nx95.
Since the files are quite large, use the "Filter" option and choose your birthday in 2016 and "Export" (in CSV format) all collisions for that day. We will use this data set for future programs, so, instead of downloading the test files multiple times, save a copy for future use.
triangle(t, length):
1. If length > 10:
2. Repeat 3 times:
3. Move t, the turtle, forward length steps.
4. Turn t left 120 degrees.
5. Call triangle with t and length/2.
nestedTriangle(t, length):
1. If length > 10:
2. Repeat 3 times:
3. Move t, the turtle, forward length steps.
4. Turn t left 120 degrees.
5. Call nestedTriangle with t and length/2.
Enter edge length: 160
Enter the number of zones: 4
Enter the ticket type (peak/off-peak): off-peak
The fare is 8.75
Enter the number of zones: 6
Enter the ticket type (peak/off-peak): peak
The fare is 13.5
Enter CSV file name: collisionsThHunterBday.csv
Enter output file: thMap.html
(x1-x2)2 + (y1-y2)2
Enter CSV file name: cunyLocations.csv
Enter column name for latitude: Latitude
Enter column name for longitude: Longitude
Enter current latitude: 40.7021
Enter current longitude: -73.9708
Enter output file: closestCUNY.html
Enter CSV file name: recyclingBins.csv
Enter column name for latitude: Latitude
Enter column name for longitude: Longitude
Enter current latitude: 40.7605
Enter current longitude: -73.951
Enter output file: recyc.html
Enter a non-empty string:
That was empty. Try again.
Enter a non-empty string:
That was empty. Try again.
Enter a non-empty string: Mihi cura futuri
You entered: Mihi cura futuri
Submit a single text file containing your shell commands. See Lab 10.
(Image from wikimedia commons)
Mihi cura futuri
Mihi cura futuri
Mihi cura futuri
Mihi cura futuri
Mihi cura futuri
Mihi cura futuri
Mihi cura futuri
Mihi cura futuri
Mihi cura futuri
Mihi cura futuri
Mihi cura futuri
Mihi cura futuri
Mihi cura futuri
Mihi cura futuri
Mihi cura futuri
Mihi cura futuri
Mihi cura futuri
Mihi cura futuri
Mihi cura futuri
Enter a number: 6
010101
101010
010101
101010
010101
101010
Enter a number: 3
010
101
010
Enter hour (in 24 hour time): 11
Good Morning
Enter hour (in 24 hour time): 20
Good Evening
Enter hour (in 24 hour time): 15
Good Afternoon
Please enter age: -6
Entered a negative number.
Please enter age: -50
Entered a negative number.
Please enter age: 100
You entered your age as: 100
Please enter the starting amount: 1000
Year 1 1100.00
Year 2 1210.00
Year 3 1331.00
Year 4 1464.10
Year 5 1610.51
Year 6 1771.56
Year 7 1948.72
Year 8 2143.59
Enter a number: 8
001000
Enter a number: -1
111111