Difference between revisions of "CSC111 Homework 1 2015b"
Line 16: | Line 16: | ||
<br /> | <br /> | ||
__NOTOC__ | __NOTOC__ | ||
+ | <br /> | ||
+ | =Quiz= | ||
+ | <br /> | ||
+ | There is a quiz on the Moodle page for CSC111 with several questions regarding the [http://cs.smith.edu/~jfrankli/111s08/pairProgramming2000.pdf article on Pair-Programming] that you have to read this week. The questions are reported here in case you cannot access them on Moodle yet: | ||
+ | |||
+ | ;Question 1 | ||
+ | : The article refers to Robert Fulghum's book All I needed to know I learned in kindergarten. Robert Fulghum was once a commencement speaker at Smith College. True or false? (You are allowed to use the Web to figure the answer to this question). | ||
+ | |||
+ | ;Question 2 | ||
+ | : A big american car company with over 10,000 employees used pair programming for the development of its payroll system. True or False? | ||
+ | |||
+ | ;Question 3 | ||
+ | : Extreme programming refers to: | ||
+ | :* A software practice where programmers code gaming software while riding skateboards | ||
+ | :* A software approach where programmers are subjected to extreme conditions while programming. | ||
+ | :* A software practice where all production code is written with a partner. | ||
+ | :* A type of programming environment where two coders work independently on the same program, and attempt to beat each other at finishing writing error-free code. | ||
+ | :* A type of programming where programmers must pay attention to extremely minute details of the problem at hand. | ||
+ | |||
+ | ;Question 4 | ||
+ | : In pair programming, it is acceptable (even recommended) for the person not "driving" to be passive from time to time, and even take breaks while the other one codes. True or false? | ||
+ | |||
+ | ;Question 5 | ||
+ | : It is acceptable for a pair of programmers to use code written by a single person, but that code must be reviewed by both programmers before incorporating it in the pair's project. True or false? | ||
+ | |||
+ | ;Question 6 | ||
+ | The article suggests that it is acceptable for programmers involved in pair programming to sometimes work alone. But the time spent alone should be less than half of the total time spent on the project. True or false? | ||
<br /> | <br /> | ||
=Problem #1= | =Problem #1= |
Revision as of 07:08, 11 September 2015
--D. Thiebaut (talk) 16:45, 7 September 2015 (EDT)
In this assignment is due on 9/19/15 at 11:55 p.m., or 5 minutes before midnight. Remember that no extensions are given in this class!
Each problem requires you to copy an incomplete program into IDLE, and then edit it so that the output of your edited program matches exactly the output specified in the problem. You will submit your programs for this assignment in the CSC111 section of your Moodle account.
There may be many different ways to edit a program to make it output the one specified in the problem. In general, if you have a choice between several possible modifications, pick the one that is the simplest. Do not try to rewrite the program, but keep its structure. It is acceptable to add new statements in some problems. You must evaluate each program on Moodle to receive a grade for it. Make sure you evaluate your programs before the deadline, otherwise you will not receive a grade.
Grading: The homework assignments count for a total of 40% of the final grade. Since there will be approximately 11 assignments this semester, each one will count for roughly 40/11 or 3.9% of the final grade. Homework 1 contains 10 problems; therefore each one counts for approximately 0.039% of the final grade. The programs are graded 0 or 100, depending on whether its output is exactly the one required, or not.
You should work as a pair on this assignment, and submit your program on Moodle twice, once for each pair member. For example, if Emily and Sarah work as a pair, they will create the program together on one computer. When the program runs well, Sarah will connect to her Moodle account, and submit the program in the area specific to this assignment, and then Emily will connect to her Moodle account and do the same.
Quiz
There is a quiz on the Moodle page for CSC111 with several questions regarding the article on Pair-Programming that you have to read this week. The questions are reported here in case you cannot access them on Moodle yet:
- Question 1
- The article refers to Robert Fulghum's book All I needed to know I learned in kindergarten. Robert Fulghum was once a commencement speaker at Smith College. True or false? (You are allowed to use the Web to figure the answer to this question).
- Question 2
- A big american car company with over 10,000 employees used pair programming for the development of its payroll system. True or False?
- Question 3
- Extreme programming refers to:
- A software practice where programmers code gaming software while riding skateboards
- A software approach where programmers are subjected to extreme conditions while programming.
- A software practice where all production code is written with a partner.
- A type of programming environment where two coders work independently on the same program, and attempt to beat each other at finishing writing error-free code.
- A type of programming where programmers must pay attention to extremely minute details of the problem at hand.
- Question 4
- In pair programming, it is acceptable (even recommended) for the person not "driving" to be passive from time to time, and even take breaks while the other one codes. True or false?
- Question 5
- It is acceptable for a pair of programmers to use code written by a single person, but that code must be reviewed by both programmers before incorporating it in the pair's project. True or false?
- Question 6
The article suggests that it is acceptable for programmers involved in pair programming to sometimes work alone. But the time spent alone should be less than half of the total time spent on the project. True or false?
Problem #1
Open IDLE on your computer and create a new program called hw1_1.py. In the IDLE edit window, type the incomplete program shown below. Modify it until you get it to show the output shown in the second column, below. When you are satisfied your program runs correctly, submit it to Moodle, in the HW 1 P 1 section:
Incomplete program | Output |
---|---|
# hw1_1.py
# Homework 1, Problem 1
# Name of pair partner #1
# Name of pair partner #2
age = 1
name = "Alex"
year = 2015
print( "--", year )
print( name, "is", "and was born in" )
|
-- 2015 --
Alex is 20 years old and was born in 1995
Alex will be 25 in 2020
|
Make sure you evaluate the program and receive a grade for it, otherwise your work will not be counted toward the homework grade!
Problem #2
Open IDLE on your computer and create a new program called hw1_2.py. In the IDLE window, type in the incomplete program shown below. Modify it until you get it to show the output shown in the second column, below. When you are satisfied your program runs correctly, submit it to Moodle, in the HW 1 P 2 section:
Incomplete program | Output |
---|---|
# hw1_2.py
# Homework 1, Problem 2
# Name of pair partner #1
# Name of pair partner #2
college = "Smith College"
bar = "-" * len( college )
name = "Fiona"
print( bar )
print( college )
|
-------------
Smith College
Fiona
-------------
|
Make sure you evaluate the program and receive a grade for it, otherwise your work will not be counted toward the homework grade!
Problem #3
Be sure to read Chapter 1, Section 6 in Zelle before starting. Then, open IDLE on your computer, create a program called hw1_3.py, and type in the incomplete program shown below. Modify it until you get it to show the output shown in the second column, below. When you are satisfied your program runs correctly, submit it to Moodle, in the HW 1 PB 3 section:
Incomplete program | Output |
---|---|
# hw1_3.py
# Homework 1, Problem 3
# Name of pair partner #1
# Name of pair partner #2
def greet( person ):
print( "bonjour", person )
print( "How are you today?" )
greet( "John" )
greet( "Emily" )
greet( "Lujun" )
|
Hello John
How are you?
Hello Emily
How are you?
Hello Lujun
How are you?
|
Make sure you evaluate the program and receive a grade for it, otherwise your work will not be counted toward the homework grade!
Problem #4
Open IDLE on your computer and type in the incomplete program shown below. Save it in a file called hw1_4.py. Modify it until you get it to show the output shown in the second column, below. When you are satisfied your program runs correctly, submit it to Moodle, in the HW 1 PB 4 section:
Incomplete program | Output |
---|---|
# hw1_4.py
# Homework 1, Problem 4
# Name of pair partner #1
# Name of pair partner #2
def greetBar( person ):
bar = "---------------------"
print( bar )
print( person )
greetBar( "Lujun" )
greetBar( "Emily" )
greetBar( "John" )
|
---------------------
Hello John
How are you?
---------------------
Hello Emily
How are you?
---------------------
Hello Lujun
How are you?
|
Problem 5
Open IDLE on your computer and type in the incomplete program shown below. Save it as hw1_5.py. Modify it until you get it to show the output shown in the second column, below. When you are satisfied your program runs correctly, submit it to Moodle, in the HW 1 P 5 section. Be careful, as the Moodle testing program counts extra spaces or extra blank lines in your output as incorrect!
Make sure you click on evaluate in Moodle to make sure your program receives a grade.
Incomplete program | Output |
---|---|
# hw1_5.py
# Homework 1, Problem 5
# Name of pair partner #1
# Name of pair partner #2
def greetLength( person ):
bar = "---------------------"
print( bar )
print( "Hello", person )
greetLength( "John" )
greetLength( "Emily" )
greetLength( "Jo" )
|
---------------------
Hello John how are you?
---------------------
Hello Emily how are you?
---------------------
Hello Jo how are you?
|
Problem 6
Open IDLE on your computer and type in the incomplete program shown below. Save it as hw1_6.py. Modify it until you get it to show the output shown in the second column, below. When you are satisfied your program runs correctly, submit it to Moodle, in the HW 1 P 6 section.
Be careful, as the Moodle testing program counts extra spaces or extra blank lines in your output as incorrect!
Make sure you click on evaluate in Moodle to make sure your program receives a grade.
Incomplete program | Output |
---|---|
# hw1_6.py
# Homework 1, Problem 6
# Name of pair partner #1
# Name of pair partner #2
person1 = "Maria Callas"
person2 = "Sir Elton John"
person3 = "Lady Gaga"
def greetLength( person ):
bar = "---------------------"
print( bar )
noChars = len( person )
print( person, "<==" )
print( noChars, "characters" )
greetLength( person2 )
greetLength( person2 )
greetLength( person2 )
|
---------------------
==> Maria Callas <==
Your name contains 12 characters
---------------------
==> Sir Elton John <==
Your name contains 14 characters
---------------------
==> Lady Gaga <==
Your name contains 9 characters
|
<showafterdate after="20150920 00:00" before="20151231 00:00">
Solution Programs
# edit the statements below (some of them are incomplete) so that the output
# is the one stated in Homework #1, Problem #1
print("\n\n==================== 1 ========================\n\n" )
# hw1_1.py
# Homework 1, Problem 1
# Name of pair partner #1
# Name of pair partner #2
age = 20
name = "Alex"
year = 2015
print( "--", year, "--" )
print( name, "is", age, "years old and was born in", year-age )
print( name, "will be", 2020-2015 + age, "in 2020" )
print("\n\n==================== 2 ========================\n\n" )
# Homework 1, Problem 2
college = "Smith College"
bar = "-" * len( college )
name = "Fiona"
print( bar )
print( college )
print( name )
print( bar )
print("\n\n==================== 3 ========================\n\n" )
# Homework 1, Problem 3 (read Section 1.6 in Zelle)
def greet( person ):
print( "Hello", person )
print( "How are you?" )
greet( "John" )
greet( "Emily" )
greet( "Lujun" )
print("\n\n==================== 4 ========================\n\n" )
# Homework 1, Problem 4 (read Section 1.6 in Zelle)
def greetBar( person ):
bar = "---------------------"
print( bar )
print( "Hello", person )
print( "How are you?" )
greetBar( "John" )
greetBar( "Emily" )
greetBar( "Lujun" )
print("\n\n==================== 5 ========================\n\n" )
# Homework 1, Problem 5
def greetLength( person ):
bar = "---------------------"
print( bar )
noChars = len( person )
print( "Hello", person, "how are you?" )
greetLength( "John" )
greetLength( "Emily" )
greetLength( "Jo" )
print("\n\n==================== 6 ========================\n\n" )
# Homework 1, Problem 6
person1 = "Maria Callas"
person2 = "Sir Elton John"
person3 = "Lady Gaga"
def greetLength( person ):
bar = "---------------------"
print( bar )
noChars = len( person )
print( "==>", person, "<==" )
print( "Your name contains", noChars, "characters" )
greetLength( person1 )
greetLength( person2 )
greetLength( person3 )
</showafterdate>