Difference between revisions of "Computer Science"

From WLCS
 
(881 intermediate revisions by the same user not shown)
Line 1: Line 1:
== Wednesday - Thursday (2/24/11) ==
 
'''Warmup:'''
 
 
* Copy the following code into python
 
<syntaxhighlight lang="Python">
 
def matches(target,test):
 
    len_target=len(target)
 
    if test[0:len_target]==target:
 
        return True
 
    else:
 
        return False
 
       
 
target=raw_input("Enter target string:")
 
test=raw_input("Enter test string:")
 
print matches(target, test)
 
</syntaxhighlight>
 
 
* Try it with the following inputs:<br/>
 
a,a <br/>
 
out,outside<br/>
 
side,outside<br/>
 
i,iphone<br/>
 
inner,inn
 
 
* What does 'matches' do, in general?
 
* Try your own inputs, and see if the results match your expectation.
 
* Why might this be useful?
 
* Add comments, describing what each line does.
 
 
'''Agenda:'''
 
* Finish 12-14 in [[Python String Exercises]] and resubmit
 
** Reference:  [[[Media:Strings_Python.ppt]] and [http://openbookproject.net/thinkcs/python/english2e/ch07.html HTTLCS, Chapter 7]
 
* Work on the [[E-mail Harvester Assignment]] - review warm up below first.
 
* If you finish it, work on  [http://openbookproject.net/thinkcs/python/english2e/ch07.html HTTLCS, Chapter 7]
 
** First do ex. #s 5,6,7 then 1,2 and 8-10
 
== Friday - Tuesday (2/18/11-2/22/11) ==
 
'''Warmup:'''
 
* Jot notes on the format of an email address:
 
** What character must be in an email?
 
** What characters can never be in an email?
 
** Within a sentence, how are words separated?
 
** How could you detect where an email starts and end?
 
 
'''Agenda:'''
 
* Complete PPT [https://docs.google.com/viewer?a=v&pid=explorer&chrome=true&srcid=0ByUoKSNQtPWuZDg2MTk5Y2MtZDExNy00YTVmLWIxZTMtNWE4OWNlOGE0MjVl&hl=en Strings_Python Updated]
 
** Reference: [http://openbookproject.net/thinkcs/python/english2e/ch07.html HTTLCS, Chapter 7]
 
* Then complete [[Python String Exercises]] -  '''all exercises''' and resubmit
 
* Finally, work on the [[E-mail Harvester Assignment]]
 
* If you finish it, work on  [http://openbookproject.net/thinkcs/python/english2e/ch07.html HTTLCS, Chapter 7] exercises 1,2 and 5-10
 
 
== Wednesday - Thursday (2/16/11-2/17/11) ==
 
'''Warmup:'''
 
* Using python, create a variable '''sample''' and set it to "We're Building a Better Internet".
 
* Write expressions that:
 
** Print the first character
 
** Print the third character (the apostrophe)
 
** Print the first "B"
 
** Print the second from last character (''hint'': use the ''len()'' function)
 
** Print the word 'Building'
 
** Print the word 'Internet'
 
* Tip: Use ''print ":"+sample['''x''':'''y''']+":"'' to see exactly what is in your slice (check for extra spaces at the start or end).
 
 
'''Agenda:'''
 
* Review PPT [[Media:Strings_Python.ppt]]
 
* Reference: [http://openbookproject.net/thinkcs/python/english2e/ch07.html HTTLCS, Chapter 7]
 
* Interim grades are due - so demo/submit Robot, if you haven't already.
 
* Then complete [[Python String Exercises]] -  '''all exercises''' and resubmit
 
* Finally, work on the [[E-mail Harvester Assignment]]
 
 
== Monday - Tuesday (2/14/11-2/15/11) ==
 
'''Warmup:'''
 
''When is 1 + 1=11? ''
 
* Write a short program that asks the user for two values using '''raw_input''' (not input).
 
* Add the two values and store them in a third variable, then print this variable.
 
* Test your program by entering your first name and last name.
 
* Try it again with the values ‘1’ and ‘1’
 
** If you're ahead, overview [http://openbookproject.net/thinkcs/python/english2e/ch07.html HTTLCS, Chapter 7]
 
 
'''Agenda:'''
 
* Interactive presentation [[Media:Strings_Python.ppt]] - Slides 1-9
 
* Complete/submit [[Python String Exercises]] - 1 to 11 only
 
* Reference: [http://openbookproject.net/thinkcs/python/english2e/ch07.html HTTLCS, Chapter 7]
 
* Demo/submit Robot, if you haven't already.
 
** If you're ahead, work on Dodge.
 
* Work on the [[E-mail Harvester Assignment]]
 
 
== Friday (2/11/11) ==
 
'''Warmup:'''
 
* Review the Robot project rubric - work out how you can get most points
 
#Player sprite must be able to move in four directions using the keyboard : 5 pts
 
#The player sprite wraps at the edges of the screen : 10 pts
 
#5-10 collectable items (coins) are created and placed onscreen: 10 pts
 
#Items are removed once the player ‘collects’ them: 10 pts
 
#A robot sprite follows the player around the screen : 10 pts
 
#If the player collides with the robot, then the player loses (and the game ends)  : 5 pts
 
#If the player collects all the items, then the player wins (and the game ends): 10 pts
 
#Code legibility (meaningful variable names and code comments): 10 pts
 
#Code parsimony (no redundant or convoluted code): 10 pts
 
#Completed on time: 10 pts
 
 
'''Agenda:'''
 
* Demo [[Robot game]]  : due today 
 
** Then put your name at the top, print it and submit to schoolweblockers with your name in the filename.
 
* If you've completed Robot, work on the [[Dodge game]]
 
* Depending upon how many people are complete, we may start on String- see [[File:Strings Python.ppt]]
 
 
== Wednesday-Thursday (2/9/11-2/10/11) ==
 
'''Warmup:'''
 
* Variable scope
 
* '''Without using a computer''' write down answers to the following questions:
 
# Where is 'myVar' defined (created)?
 
# In what order will the print statements be run?
 
# What value will 'myVar' have each time?  <br/>  '''Now copy the program into Python and test it'''.
 
# What values were actually printed?
 
# Was this the same or different from what you expected? Why so? Discuss with your partner.
 
# Inserted the following line at line 5 (just after the 'def test' line)<br/> '''print "In test, at start, myVar=", myVar''' <br/> Why does this create an error?
 
<syntaxhighlight lang="Python">
 
myVar=0
 
print "At start, myVar=",myVar
 
 
def test(input_var):
 
    myVar=input_var+1
 
    print "In test, at end, myVar=",myVar
 
   
 
myVar=1
 
print "Before test, myVar=:",myVar
 
 
test(myVar)
 
print "At end, myVar=:",myVar
 
</syntaxhighlight>
 
 
'''Agenda:'''
 
* Demo [[Robot game]]  : due for P2 class on Friday  (2/11/11) or Monday for P1 class (2/14/11)
 
** Then put your name at the top & print it
 
** Finally, rename it LASTNAME_FIRSTNAME_Robot.py and submit on school web lockers 
 
* If you've completed Robot, work on the [[Dodge game]]
 
* We'll start on Strings (HTTLCS Ch 7) next week
 
 
== Monday-Tuesday (2/7/11-2/8/11) ==
 
'''Warmup:'''
 
* Replacing constants with variables
 
: In this example, boxes are created in the four corners and center of the window.
 
: But what if we changed the size of the window (line 2)? Each box would have to be changed too -  not very efficient. 
 
* Instead, create variables for the window width (400) and height (300), and the box size (20).
 
: Then replace the box's coordinates (lines 4-8) with a 'variable expression'
 
:: So line 4 would be Box((windowWidth-boxSize,0),boxSize,boxSize,filled=False,color=color.RED,thickness=10) 
 
* Test your code by changing the variable values, and checking the boxes are still in the corners/center.
 
<syntaxhighlight lang="Python">
 
from gasp import *
 
begin_graphics(400, 300, title="Four corners", background=color.ORANGE)
 
 
Box((0,0),20,20,filled=False,color=color.RED,thickness=10)  #At bottom left corner
 
Box((380,0),20,20,filled=False,color=color.RED,thickness=10) #At bottom right corner
 
Box((0,280),20,20,filled=False,color=color.RED,thickness=10) #At top left corner
 
Box((380,280),20,20,filled=False,color=color.RED,thickness=10) #At top right corner
 
Box((190,140),20,20,filled=False,color=color.RED,thickness=10) #At center
 
sleep(6)
 
end_graphics()
 
</syntaxhighlight>
 
 
'''Agenda:'''
 
* Continue work on  [[Robot game]]  : due  Thursday (2/10/11)
 
** Submit your code to school web lockers when you're done (semester 2) - please put your name at the top of your code.
 
* Small group review of the [[Debugging short exercise]]
 
* If you've complete & submitted Robot, review  [http://openbookproject.net/thinkcs/python/english2e/ch07.html HTTLACS: Ch7]  on strings.  There are exercises to complete.
 
 
== Friday  (2/4/11) ==
 
'''Warmup:'''
 
* Review Robot grading rubric. See last slide of [[Media:Robot_game.pdf]]
 
 
'''Agenda:'''
 
* Continue work on  [[Robot game]]  : due  Thursday (2/10/11)
 
* Lesson: Review debugging techniques
 
* Complete and submit the [[Debugging short exercise]]
 
* Closure
 
** Complete [https://spreadsheets0.google.com/viewform?hl=en&hl=en&formkey=dGJtZWI1VUQ1VFplNTJfRU5lRk5feGc6MQ#gid=0 evaluation form]
 
 
== Wednesday - Thursday (2/2/11-2/3/11) ==
 
'''Warmup:'''
 
* The following code is supposed to wrap the player in Robot.
 
 
<syntaxhighlight lang="Python">
 
from gasp import *
 
begin_graphics(800, 600, title="Catch", background=color.YELLOW)
 
ball_x=-10
 
ball_y = 300
 
ball = Circle((ball_x, ball_y), 10, filled=True)
 
set_speed(120)
 
 
while True:
 
    if ball_x<=0:  # REPLACE WITH COMMENT
 
        ball_x=800
 
    elif ball_x>=800:  # REPLACE WITH COMMENT
 
        ball_x=0
 
    move_to(ball,( ball_x,ball_y))
 
    update_when('next_tick')
 
 
end_graphics()
 
</syntaxhighlight>
 
*Copy and paste this code, and save it as a new program, and test it
 
*Next, replace the comments in the code with a description of what that section does
 
*Finally, write answers to the following questions, then discuss them with your partner:
 
# What behavior do you see?
 
# Why do you think this is happening (what's your ''hypothesis'')? 
 
# How could you test your hypothesis?
 
# How can you fix the code?
 
'''Agenda:'''
 
* Debrief warm up
 
* [[Debugging short exercise]]
 
* Continue work on  [[Robot game]]  : due  Thursday (2/10/11)
 
* Closure
 
** Review Robot grading rubric. See [[Media:Robot_game.pdf]]
 
** Complete [https://spreadsheets.google.com/embeddedform?formkey=dGJtZWI1VUQ1VFplNTJfRU5lRk5feGc6MQ evaluation form]
 
 
== Monday  (1/31/11) - Tuesday (2/1/11) ==
 
'''Warmup:'''
 
* Write a program that prompts the user for x and y coordinates between 0 and 200. Compare their input to a point at (75, 100). Tell the user if they are left or right of that point, and by how much. Likewise, tell them if they are below or above that point , and by how much.
 
 
'''Agenda:'''
 
* [[Media:Robot_game.ppt]]
 
** Complete Robot hand out
 
* Work on [[Robot game]], even if you haven't finished Pong yet.
 
 
 
== Monday - Tuesday (1/24/11 - 1/25/11) ==
 
'''Agenda:'''
 
* Continue working on [[Pong]] - aim to be finished this week. 
 
* Work on [[Robot game]].  Use the 8.8 version of [http://www.openbookproject.net/thinkcs/python/english2e/ch08.html Catch]!
 
* Once you have finished the core of the Robot assignment, complete the extension work.
 
 
== Thursday - Friday (1/13/11 - 1/21/11) ==
 
'''Agenda:'''
 
* Begin working on [[Pong]].  Use the 8.10 version of Catch!
 
* If you complete Pong, then go onto the [[Robot game]].  Use the 8.8 version of Catch!
 
* NVCC Dual Enrollment
 
 
== Tuesday - Wednesday (1/11/11 - 1/12/11) ==
 
'''Warmup:'''
 
* Without using the computer, what does the following code display?
 
 
<syntaxhighlight lang="Python">
 
from gasp import *
 
begin_graphics(width=800, height=600, title="Question 23")
 
 
x = 0
 
while x < 100:
 
  Circle( (400, 300), x )
 
  Line( (x, 0), (400, 300) )
 
  x = x + 10
 
 
update_when('key_pressed')
 
end_graphics()
 
</syntaxhighlight>
 
 
'''Agenda:'''
 
* 2nd Quarter Exam Make-ups
 
* Turn in any missing assignments
 
** [[Looping with GASP Exercises]]
 
** Following Game
 
** Begin working on [[Pong]].  Use the 8.10 version of Catch!
 
 
== Friday - Monday (1/7/11 - 1/10/11) ==
 
'''Agenda:'''
 
* 2nd Quarter Exam
 
 
== Wednesday - Thursday (1/5/11 - 1/6/11) ==
 
'''Agenda:'''
 
* 2nd Quarter Exam will be on...
 
** Period 1 - Friday (1/7/11)
 
** Period 2 - Monday (1/10/11)
 
* 2nd Quarter Exam Review
 
** [[Media:2ndQExamReview.txt]]
 
* input, output, variables, and math expressions
 
* functions
 
** function definitions
 
** function header
 
** function body
 
** return keyword
 
* if statements
 
** comparison operators
 
*** ==
 
*** !=
 
*** <
 
*** >
 
*** <=
 
*** >=
 
** Boolean operators
 
*** and
 
*** or
 
*** combining Boolean operators
 
* while loops
 
** sequences
 
** break keyword
 
* GASP
 
* Catch/Follow game
 
 
* Exam Format:
 
** Open and closed-book sections
 
** Multiple-choice
 
** Short-answer code
 
** Identify syntax errors
 
** Identify the purpose of code sections
 
 
* Begin working on [[Pong]]
 
 
== Monday - Tuesday (1/3/11 - 1/4/11) ==
 
'''Warmup:'''
 
* Write a while loop that prints your name 10 times
 
 
'''Agenda:'''
 
* Winter Break de'''brief'''
 
* 2nd Quarter Exams Reminder
 
* Following Game Review
 
* Begin working on [[Pong]]
 
 
 
== Archives ==
 
== Archives ==
* [[CS1 - 1011 - December]]
+
* CS1 - 1819 (Poland) - APS Canvas
* [[CS1 - 1011 - November]]
+
* CS1 - 1718 (Poland) - APS Canvas
* [[CS1 - 1011 - October]]
+
* CS1 - 1617 (Poland) - Google Classroom
* [[CS1 - 1011 - September]]
+
** [https://docs.google.com/a/apsva.us/document/d/1VnXYBgVIABKBGVYNuoQQ6E_6kUzcNah2TFlM5QgTOW0/edit?usp=sharing 2017 Syllabus]
 +
* [https://sites.google.com/a/apsva.us/ocopcompsci/ CS1 - 1516 (MacLeod)]
 +
* [[CS1 - 1415]]
 +
* [[CS1 - 1314]]
 +
* [[CS1 - 1213]]
 +
* [[CS1 - 1112]]
 +
* [[CS1 - 1011]]
 +
* [[CS1 - 0910]]
 +
* [[CS1 - 0809]]
 +
* [http://www.paulbui.net/wl0708/cs1 CS1 - 0708]
 +
* [http://www.paulbui.net/wl0607/cs1/schedule.html CS1 - 0607]

Latest revision as of 11:04, 13 November 2018

Archives