# AP Annual Conference: Making Sense of Electric Potential

**Making Sense of Electric Potential**

*Jim Vander Weide, Hudsonville High School, MI*

*I attended this session since electric force, field, potential, and energy are concepts with which students struggle. I have attempted to make connections between these concepts and the corresponding gravitational concepts. I’m interested to see this teacher’s approach.*

* Jim provided slides building an extended analogy between gravitational fields and electric fields as well as other handouts. He would probably be willing to share, and his contact info can be found with a bit of Google-fu đź™‚

# AP Annual Conference: Results from AP Physics Exams

**Results from AP Exams**

*I attended this session to gain some insights into how the AP Physics B exam is scored and what common mistakes students made on the exam.*

* Question B1
* 6.6/10
* common errors
* omit one of the three forces or add a normal force on FBD
* use unconventional labels for their forces
* units! students often omitted units
* not recognize buoyancy is measured in Newtons
* forces that appeared on the FBD often did not match the ones appeared in subsequent calculations
* not using physics but general language in justification
* Question B2
* 6.0/15
* common errors
* applied kinematic equations for constantly accelerated motion to a motion of changing acceleration
* not recognize that W=Fd can only be used when F is constant
* not knowing that spring force is not a constant force
* explanations are not concise and clear
* Question B3
* 3.6/10
* common errors
* non-linear scaling of axes in graphing
* best-fit line often is drawn by just connecting points
* not showing work for calculating slope of the best-fit line
* not understanding that the light must pass from a higher index of refraction to a lower index of refraction in order to have total internal reflection
* Question B4
* 3.6/10
* common errors
* not showing enough work beginning with the correct equations and then all the needed steps leading to an answer
* messing up the horizontal and the vertical dimensions in calculations
* deficiency in understanding the conservation of momentum
* using “energy,” “force,” “momentum” and “velocity” interchangeable in explanations
* Question B5
* 3.6/10
* common errors
* misunderstanding of the sign conventions in evolved for heat, work and energy
* not clear with their justifications, but often simply restated the question, and answer without providing further support
* connected heat or average kinetic energy to temperature, but not to the internal energy
* used W = -PĂŽâ€ťV and did not discuss the effect of temperature on the pressure
* Question 6
* 3.5/15
* common errors
* simple calculations errors were everywhere
* incorrect use or value of the magnetic permeability, ĂŽÂĽo, in Ampere’s Law
* not understanding the intent of parts (a) & (b)
* did not clearly understand the nature of the question and the connection of the parts to each other
* Question 7
* 2.7/10
* common errors
* the most common errors were the result of a lack of understanding of atomic states and associated energy levels. Students seemed to choose and use the equations without basic understanding of the physics involved.

# AP Annual Conference: A First Look at the Labs for AP Computer Science A

**A First Look at the Labs for AP Computer Science A**

*Renee Ciezki*

*I attended this session since the AP Computer Science Case Study, Grid World, will be retied after the 2013-2014 school year. It is being “replaced” by a set of example labs, none of which will be accessed directly but present concepts that will be assessed. The case study is one of my favorite aspects of AP Computer Science A because I find it extremely authentic that students are presented with a large body of well designed and well written code that they have to understand and extend. That said, these new labs look really good and will be a fantastic resource for teachers.*

* real-world context will increase interest
* exam questions will focus on essential concepts
* [Draft lab materials](http://www.tymann.us/apcs_labs/) (*site is currently down*)
* teacher guide, student guide, code
* updated course description (topic outline remains the same) and lab materials available February 2014
* new audit should not be required; maybe just a form in which you promise to have good labs that meet the hands-on time requirement and cover the necessary concepts
* there will also be new practice exams to reflect this change
* use of these labs are not required
* [session slides](http://tinyurl.com/LabsAPAC2013)

**Magpie**

* Natural Language Processing (NLP)
* String class
* Conditionals and iteration, arrays optional
* a chatbot
* created by Laurie White, Mercer University, Macon, GA
* 4-8 hours of activities? (presenter did it one 75 minute class period?)
* use it as a first lab to introduce the IDE? (better than Hello World)

**Picture Lab**

* Manipulating digital pictures (Media Computation)
* Two-dimensional arrays
* created by Barbara Ericson, Georgia Tech, Atlanta, GA
* 6.5 – 15 hours
* Stenganography and chroma key in the teacher guide as extensions

**Elevens**

* Solitaire game, GUI supplied
* Object-oriented design and programming
* Michael Clancy, University of California at Berkeley
* Judith Hromcik, School for the Talented and Gifted, Dallas, TX
* Robert Glen Martin, School for the Talented and Gifted, Dallas, TX
* 11 (+5 optional) hours

# AP Annual Conference: AP Physics 1 and 2 Courses

**AP Physics 1 and 2 Courses**

*Connie Wells, Co-Chair, Physics 2 Development Committee*

*Karen Lionberger, College Board’s AP Program Director, Science Curriculum and Content*

*I attended this session to learn as much as possible about the new AP Physics 1 and 2 courses as we are “piloting” AP Physics 1 in the context of our Honors Physics course this upcoming school year.*

* Out of 1 million high school freshen interested in STEM majors and careers, 57.4% loose interest and switch to a different career path.
* Big Ideas -> Enduring Understandings -> Essential Knowledge + Science Practices -> Learning Objectives
* Physics 1 designed to have a couple of weeks of extra time to cover additional topics to meet requirements for state exams or teacher preference.
* Big Idea 7 is only addressed in Physics 2. Some new material related to probability.
* Rigor (or Vigor) = Complexity (and Autonomy) + Engagement
* Teaching Strategies for Success in the AP Physics 1 and 2 Courses
* assessment of prior knowledge, beliefs, and misconceptions that students bring with them to the course(s)
* analysis of how to deal with students’ misconceptions
* greater depth of conceptual understanding through the use of student-centered, inquiry-based instructional practices
* use of formative assessments to guide instructional practices and provide feedback to students about depth of understanding
* planning lessons based on the clearly articulated AP Physics learning objectives
* integration of student inquiry laboratory work into the course
* How the Learning Objectives Will Be Assessed
* ability to solve problems mathematically Ă˘â‚¬â€ś including symbolically Ă˘â‚¬â€ś but with less emphasis on only mathematical routines used for solutions
* questions relating to lab experience and analytical skills: designing and describing experiments; data and error analysis
* more emphasis on deeper understanding of foundational principles and concepts
* interpreting and developing conceptual models
* laboratory emphasis on students Ă˘â‚¬â€śĂ‚Â inquiry-based, hands-on, integrated, investigative and collaborative
* lab questions will focus more on error analysis and what the next step in the investigation would be
* students will have to write at least one paragraph-length argument (make a claim and support with evidence) in the short-answer questions
* 2014 professional development will launch new One-Day and AP Summer Institute Workshops to support the new courses
* June 2014 Ă˘â‚¬â€śĂ‚Â practice exams for both AP Physics 1 and Physics 2
* sample syllabi available before March 2014
* course and exam description (including equation sheets) available March 2014
* course planning and pacing guides (8 total, 4 for each course)
* teacher’s guide on inquiry-based investigations
* **2 pacing guides will be available August 1st**
* 140 instruction hours is the target for AP courses (Physics 1 is targeted at 115-120 to allow time for additional topics)

# AP Annual Conference: Learning with Exploring Computer Science

**Learning with Exploring Computer Science (ECS): Connections to AP CS**

*I attended this session to get an overview of Exploring Computer Science and AP Computer Science Principles, determine how these courses may apply to my school’s computer science sequence, and learn how these efforts are able to increase enrollment of underrepresented groups.*

**Exploring Computer Science (ECS)**

* [exploringcs.org](http://exploringcs.org/)
* Goal: increase student enrollment, especially with females and underrepresented minorities.
* ECS is a year-long course that includes six curricular units and daily lesson plans. Grew out of the book [Stuck in the Shallow End](http://www.amazon.com/Stuck-Shallow-End-Education-Computing/dp/0262514044). Funded by the NSF.
* ECS computer science concepts
* human-computer interaction
* problem solving
* web design
* introduction to programming
* computing and data analysis
* robotics
* ECS computational practices
* analyze effects of computing
* design creative solutions and artifacts
* apply abstractions and models
* analyze computational work and work of others
* communication computational thought processes
* collaborate with peers on computing activities
* In the Los Angeles School District, ~2000 students are enrolled in ECS per year; 45% are girls; underrepresented minority enrollment mirrors (or exceeds) enrollment in the district.
* ECS is also in Chicago Public Schools as well; data forthcoming.

**AP Computer Science Principles**

* [csprinciples.org](http://csprinciples.org/)

**Jody Paul**

* involved in APCS, AP Computer Science Principles, and ECS
* The context within which we teach Computer Science …
* extreme variation in prior exposure and experience of students
* misconception: computer science equals writing programs
* cognitive shifts are associated with acquiring new thinking skills
* require the passage of time (as well as mentored exercise) to acquire and internalize
* limited set of skills successful in other domains not sufficient
* frustration, confusion, bewilderment
* Success in Computer Science is associated with being adept at:
* discovery learning & inquiry-based learning
* understanding when and how to seek assistance from peers, mentors, and references
* working collaboratively
* applying creative practices
* appreciating larger context within which computation exists
* accepting and working well with the juxtaposition of vagueness and precision
* problems must be precisely specified
* there are many correct ways to solve a problem
* solutions must be creatively developed
* a solution must be precisely and unambiguously specified
* Three programs jointly facilitate success
* leveling influences to accommodate diverse backgrounds
* establishing meaningful context
* correcting misconceptions and inappropriate stereotypes
* initiating mental development processes that facilitate the cognitive shifts necessary for successful study in CS
* preparing students for progressively increasing rigor and challenge in CS study
* acquisition of key skills: inquiry, collaboration, algorithmic thinking, Ă˘â‚¬Â¦

**Q&A**

* AP CS Principles is intended for all 21st Century Students. It is a computer science course; not a programming course.
* Only 10 states count computer science as a math or science course. Some states have no certification for computer science.
* ECS, AP CS Principles, and AP Computer Science A are not intended to be a course sequence. All three courses are potential entry points into computer science. The panel seemed to concur that the audience for AP Computer Science A is quite different, and smaller, than the audience for the other two courses. There was a bit of confusion about how ECS and AP Computer Science Principles differ. With my limited exposure, they seem very similar in principle. I wouldn’t envision a high school offering both. The fact that one is AP and one is not may lead a high school toward one over the other. In addition, since ECS is an entire course package (e.g., includes daily lesson plans) while AP CS Principles is a curriculum framework, may lead a high school towards one over the other. I don’t see either replacing our current Programming 1/2 courses, but I could see offering one or the other as an additional course targeted at a much wider audience.

# AP Computer Science Preconference Workshop

I attended the AP Computer Science workshop led by [Leon Tabak](http://eonsahead.com/) from Cornell College at the AP Annual Conference. The workshop was a good mix of discussion among the participants and sharing of information by Leon. This post captures the litany of resources, pedagogical ideas, and insights from the workshop.

**Resoures**

* Java Style Guide. Leon recommended [The Elements of Java Style](http://www.amazon.com/Elements-Java-Style-Reference-Library/dp/0521777682). I currently use Litvin and Litvin’s [The 17 Bits of Style](http://www.skylit.com/javamethods/JM-Appendix-A.pdf) which is Appendix A in their book Java Methods. I also reference Sun’s [Code Conventions](http://www.oracle.com/technetwork/java/codeconv-138413.html). I’ll have to pick up a copy of the Java Style Guide.
* Leon makes great use of [Javadoc](http://www.oracle.com/technetwork/java/javase/documentation/index-jsp-135444.html) in his code. I learned that you can embed any HTML in the Javadoc comments. This includes image tags referencing UML diagrams, links to articles on algorithms, or even LaTex markup through the inclusion of [MathJax](http://www.mathjax.org)!
* Speaking of LaTex, Leon introduced me to the [Listings package](http://en.wikibooks.org/wiki/LaTeX/Source_Code_Listings) which supports Java and very nicely formats both inline code and code snippets in LaTex documents.
* [ICE](http://ice.cc.gatech.edu/apexam_final/) at Georgia Tech has AP practice questions
* [Dia](https://wiki.gnome.org/Dia) is a UML diagramming tool that was recommended

**Pedagogy**

* Leon led us through a series of exercises to introduce recursion. His exercises help students to understand the value of recursion rather than just understand the concept. He highlights an analysis of effective and efficient methods implemented recursively and iteratively. He starts with the classic example of implementing a factorial method recursively. While this recursive implementation is easier to understand conceptually, it is no more efficient (actually less efficient) than an iterative solution. The next exercise implements a powers of 2 method recursively and illustrates that the recursive solution is more efficient than an iterative solution by applying the algorithm $2^n = (2^{\frac{n}{2}})^2$. Additional exercises build on these ideas. A recursive method that raises a number to a power can introduce log n vs. n efficiency. Similarly, [Euclid’s Algorithm](https://en.wikipedia.org/wiki/Euclidean_algorithm) for calculating the greatest common divisor is another good example.
* While talking about recursion, one of the participants shared an exercise that she uses with her students. She gives them index cards with a number written on them and references to other cards. A student with a card reads the number and then asks the person with the referenced card to do the same. In the end, the school’s telephone number is spoken. She then has them ask the person with the referenced card for their number before speaking the number on the card. The result is the school’s telephone number backwards. This nicely illustrates the difference between tail and head recursion. Reflecting on this activity, I think I would put letters on the cards instead of numbers such that the series of cards would spell one word with tail recursion and a different word with head recursion. I’m definitely going to try this concrete example of recursion next year.
* In the midsts of a discussion of whether students should type in code by hand in order to discover common syntax mistakes that they will inevitably make and how to debug them, an alternative activity was shared. The activity is to provide students with working sample code and a list of errors to introduce one at a time. Students introduce the error, observe the result, and then better understand the how common mistakes are manifested.
* Another discussion focused on engaging students through pop culture examples. One that sounded intriguing was exploring class hierarchies using Angry Birds.
* Leon shared the importance of having students present and explain their code to their peers. I’m going to try and incorporate this next year. Perhaps in conjunction with their capstone project.

**Insights**

* Students that have a computer science class before AP Computer Science are much more successful. This is not surprising, but I was surprised by how many participants teach AP Computer Science as students’ first course. At my school, we are fortunate that we have Programming 1/2, each one semester, that is required (except for exceptional situations), before enrolling in AP Computer Science. I would be unable to expose students to many of the topics that I think are important (UML, unit testing, Javadoc, graphics) if AP Computer Science was their first course.

# Fractal Tree Lab

I’m currently working on curriculum development for our AP Computer Science and our new textbook (Cay Horstmann’s [Java Concepts: Early Objects, 7th edition](http://www.horstmann.com/bigjava.html)). As part of this effort, my counterpart at our district’s other high school and I were sharing some of our favorite labs. One that I shared was the Fractal Tree Lab that my class did this year as part of the recursion unit.

I found this [fractal tree assignment](http://205.173.41.8/staff/peck_george/notemplate/JavaCS/FractalTree/FractalTreeGenerator.html) online when searching for a fractal example of recursion that my students would find interesting. I believe this assignment is authored by George Peck at Lynbrook High School, but I couldn’t find a reference to it other than through a Google search.

We started with example code for an applet that generated a [Koch Snowflake](http://en.wikipedia.org/wiki/Koch_snowflake). We then built upon this example to create our fractal trees. I’m fortunate that my inaugural AP Computer Science students were fantastic about providing me honest feedback throughout the year. For this lab, they shared that the assignment provided way too much support and I should have let them figure more of the algorithm out on their own. Based on this feedback, I edited the original assignment to provide less direction.

The fractal tree should look like this:

Along my goal of providing [differentiation and choice in programming activities](https://pedagoguepadawan.net/212/differentiation-and-choice-in-programming-activities/), I encouraged students to “add more awesomeness” to their fractal trees. Here are some examples of what they did:

Another student made an interactive fractal tree where you could adjust the growth of the tree with a scroll bar. Another made his fractal tree animated and grow slowly.

I’m looking forward to seeing what next year’s students come up with when provided less explicit support but some cool examples from this year’s class.

# Capstones

My AP Physics B class developed capstones as their final rather than a traditional exam. I give them tons of tests to help them prepare for the AP exam; so, I didn’t want to give them a traditional summative final for the fall semester. I wanted them to synthesize multiple concepts, have a choice in the topic they pursue, and present it in an engaging and creative manner.

I had remembered reading about [John Burk’s capstones](http://quantumprogress.wordpress.com/2011/08/09/raising-the-bar-for-an-aĂ˘â‚¬â€ťcapstones/) and modeled mine after his. While I have done similar end-of-semester projects before, these were by far the most successful. Reflecting on the capstones, I think a couple of factors helped my students be so successful.

The first is that I provided several exemplars as sources of inspiration. I stressed that I didn’t want a traditional lab report or a PowerPoint presentation. I wanted something that other students would want to read or watch. I pointed students to the following YouTube channels and blogs:

* [Dot Physics](http://www.wired.com/wiredscience/dotphysics/)
* [xkcd’s What If?](http://what-if.xkcd.com)

Based on our current unit, I frequently share links to these folks; so, most students were familiar with their style. Since I wanted students to spend the final exam period engaged in each other’s capstones and I would be spending my winter break scoring these capstones, I wanted them to be as interesting as possible.

The second factor that contributed to my students’ success is the requirement that students submit an initial idea for their capstone and then are provided considerable time in class for work and feedback from me. I spent an entire two days moving from student to student and sharing feedback on their capstone. Students had two additional days to work in class, solicit additional feedback, and use lab equipment. This wasn’t enough feedback for every student. A few really needed another round of review and feedback as their capstones missed the mark. While they could have solicited this additional input on their own, their final capstone would have been better if I could have shared another round of feedback.

The third factor that contributed to success is that I provided access to a wide range of technology, but I didn’t mandate that students use any particular technology. This is how educational technology should be integrated into the classroom, it is a tool to enhance learning where appropriate and not a means to an end unto itself. Students chose to use a high-speed video camera, Tracker, Logger Pro, iPads, iPad document camera stand, Educreations app, Scribd, video screen capture, VPython, LabPro and sensors, Vimeo video hosting for embedding, and Canvas ePortfolios.

There were so many fantastic capstones. I selected several to share that represent the variety of engaging presentations:

* [Energy Efficiency of a Piano](https://naperville.instructure.com/eportfolios/13183/Home/Capstone_Project) Minute Physics-style video
* [D-Rose and Gravity](https://naperville.instructure.com/eportfolios/13234/Home/What_if) An xkcd What If-style capstone on how the position of celestial bodies affects Derrick Rose’s vertical
* [Bubbles](https://naperville.instructure.com/eportfolios/13154/Home/Welcome) Vogue-style magazine about Secrets of the Soap Bubble: How to be Beautiful
* [Yo-Yos](https://naperville.instructure.com/eportfolios/13204/Proposal/Intro) video analysis of a yo-yo to calculate its moment of inertia
* [The Physics of Space Travel and Orbital Manuevers](https://naperville.instructure.com/eportfolios/10690/Capstone/Part_1_of_3) analysis of Kerbal Space Program simulator
* [Newton’s Law of Cooling Experiment](https://naperville.instructure.com/eportfolios/13156/Home/Introduction_My_experiment) Well done and polished experiment to explore Newton’s Law of Cooling for different liquids
* [LCAC Hovercraft Analysis](https://naperville.instructure.com/eportfolios/13258/LCAC_Dynamics/New_Page) Minute Physics-inspired video
* [Lava Lamps](https://naperville.instructure.com/eportfolios/13217/Lava_Blob_Physics) in the style of a science magazine

Thanks to John Burk for planting the capstone seed in my mind and Derek, Henry, Rhett, and Randall for providing amazing and engaging exemplars for my students to model!

In case you’re interested, here is the rubric. It isn’t perfect, but it worked okay:

# Projectile Motion Lab Practicum and Computational Modeling

In my AP Physics B class, I’m reviewing all of the material on the AP exam even though all of the students studied some of this materials last year in either Physics or Honors Physics. When we do have a review unit, I try to keep it engaging for all students by studying the concepts from a different perspective and performing more sophisticated labs.

When reviewing kinematics, I took the opportunity to introduce computational modeling using [VPython](http://www.vpython.org/index.html) and the [physutils](https://per.gatech.edu/wiki/doku.php?id=projects:hscomp:physutil) package. I started with [John Burk’s](http://quantumprogress.wordpress.com/) [Computational Modeling Introduction](http://quantumprogress.wordpress.com/2011/08/17/computational-modeling-assignment-draft-3/) and extended it with my experiences at Fermilab where computational modeling plays a role in everything from the optics of interferometers to the distribution of dark matter in the galaxy. I then provided students with a working example of a typical projectile motion model and let them explore. I encouraged them to extend the model to have the projectile launched with an initial vertical displacement.

Later that unit, I introduced the lab practicum which was based on a lab shared by my counterpart at our neighboring high school. The goal of the lab was to characterize the [projectile launcher](http://www.pasco.com/prodCatalog/ME/ME-6800_projectile-launcher-short-range/index.cfm) such that when the launcher is placed on a lab table, the projectile will hit a constant velocity buggy driving on the floor, away from the launcher, at the specified location. The location would not be specified until the day of the lab practicum. No procedure was specified and students decided what they needed to measure and how they wanted to measure it. I also used this as practice for writing clear and concise lab procedures like those required on the free response section of the AP exam.

All groups figured out that they needed to determine the velocity of the car (which some had done the previous year) and the initial velocity of the projectile. Some groups used a technique very similar to the previous year’s projectile motion lab where a marble is rolled down a ramp and launched horizontally. These groups fired the projectile horizontally from atop the table and measured the horizontal displacement. Groups that calculated the flight time based on the vertical height were more accurate than those that timed the flight with a stopwatch. Another group fired the projectile straight up, measured the maximum height, and calculated the initial velocity. This group was particularly successful. Another group attempted to use a motion sensor to measure the initial velocity of the ball as they fired it straight up. The motion sensor had trouble picking up the projectile and this group’s data was suspect. A couple of other groups fired the projectile at a variety of angles, timed the flight, and measured the horizontal displacement. Some of these groups later realized that they didn’t really need to perform measurements at a variety of angles. After gathering data and calculating the initial velocity of the projectile as a group, I asked the students to practice calculating their launch angle based on a sample target distance. I hadn’t really thought this lab through and didn’t appreciate how challenging it would be to derive an equation for the launch angle as a function of horizontal displacement when the projectile is launched with an initial vertical displacement. It wasn’t until that night that I appreciated the magnitude of this challenge and then realized how this challenge could be used to dramatically improve the value of this lab.

Most students returned the next day a bit frustrated but with an appreciation of how hard it is to derive this equation. One student, who is concurrently taking AP Physics B and AP Physics C, used the function from his AP Physics C text successfully. Another student amazed me by completing pages of trig and algebra to derive the equation. No one tried to use the range equation in the text, which pleased me greatly (the [found candy](http://www.wired.com/wiredscience/2011/06/dont-eat-candy-you-find-on-the-ground/all/1) discussion must have made an impact on them). As we discussed how challenging it was to solve this problem, I dramatically lamented, “if only there was another approach that would allow us to solve this complex scenarioĂ˘â‚¬Â¦” The connection clicked and students realized that they could apply the computational model for projectile motion to this lab. Almost all of the groups chose to use the computational model. One student wrote his own model in Matlab since he was more familiar with that than Python. With assistance, all groups were able to modify the computational model and most were successful in hitting the CV buggy. One group dressed for the occasion:

Students’ reflections on this lab were very positive. They remarked how they appreciated learning that there are some physics problems that are not easily solved algebraically (they are accustomed to only being given problems that they can solve). They also remarked that, while they didn’t appreciate the value of computational modeling at first, using their computational model in the lab practicum showed them its value. I saw evidence of their appreciation for computational modeling a couple of weeks later when a few of the students tried to model an after-school Physics Club challenge with VPython. For me, I was pleased that an oversight on my part resulted in a much more effective unit than what I had originally planned.

# The Game of Life and GridWorld

I love [GridWorld](http://apcentral.collegeboard.com/apc/public/courses/teachers_corner/151155.html), the case study for AP Computer Science. I think it makes the course much more authentic in that students experience developing software in a large (compared to what they are accustomed to) and unfamiliar code base.

One of the first labs that we did was the ActorBox lab published as part of the [A+ Computer Science](http://www.apluscompsci.com) curriculum materials. The students knew almost nothing about GridWorld and nothing about object-oriented programming, but they managed to figure out how to add Actors the the World. I introduced this lab as their first day on the job: “welcome to your new software job, here’s a large code base that you didn’t write and you don’t yet understand, figure out how to Ă˘â‚¬Â¦”

Since then we have been learning the basics of Java, and now that we understand conditionals and loops, we can finally write interesting software. For the summative lab, I wanted to revisit GridWorld, emphasize the various phases of software development, and have them write a program that would be memorable. Implementing [Conway’s Game of Life](http://en.wikipedia.org/wiki/Conway’s_Game_of_Life) in GridWorld seemed to be the perfect fit.

I introduced Conway’s Game of Life last week and presented them with some initial requirements. However, I left a lot of the requirements unspecified. Students enumerated their own requirements on Friday and discussed them with me. I wanted them to realize that they needed to specify such requirements as the grid size, how to represent alive and dead cells, when the program finishes, and the time between generations. Students came up with a variety of ways of specifying these requirements with various levels of user specification. Students then started working on their design (flow charts or pseudocode; we haven’t touched on UML yet). This weekend, the were to enumerate their test cases and they will start implementation this week.

Through all of this, I continuously stressed that their requirements and design should be treated as living artifacts and will evolve as they progress through this lab. (I’m a huge proponent of Agile Software Development Methodologies, but that is a subject for another post.)

Since, at this point in the semester, my students are not that familiar with object oriented design, their solutions will be a functional approach and, most likely, inefficient and implemented with brute force. They will get to apply their newly acquired conditional and loop structures. I also think they will better appreciate the upcoming units related to object-oriented design as a result of this experience. In fact, I’m planning on a future lab to be going back and refactoring their Game of Life program.

Here’s the assignment that I posted: