Friday, February 16, 2018

D95: Project Based Learning


AP CSA
Another lab day working on the customer lab.  A student toldl me that they are getting it now!  They went back to work on the Structured Lab and it was really “clicking” for them. 

Half the class was gone for the AMC test but it was good to sit with students as they worked.

AP CSP
I am making stage 13 homework for students.  It is SO scaffolded, I think they can do it at home and watching them do it is a bit painful. 

I made a project inspired by a project a former student made.  Students needed to make a hangman game.  I demoed the former students’ project in class, but I probably wouldn’t do that again – students just copied the format she had.  I think the major win in the task was asking students to give it a “theme”.   Here is the copy of the task.

My goal in doing this task was to get students to see the use of an array.  BUT I think some side-benefits are also coming out.
  • I wanted to shift more time to planning out student work.  I have learned that I don't do enough of this after being observed and also after attending my grad class, AND conferences this week, I am realizing forcing students to spend more time planning is a good thing. 
  • Using substring methods.  I thought students got this in the Movie Bot lab, but that knowledge is clearly stale now. 
  • AP test practice! I am having students create an algorithm with two other algorithms inside it.  We will be writing about this too. 

Concepts
Energy was high - too high, today in concepts.  We did the "Price is Right" expected value problem today.  I suppose we didn't calculate the "expected value" but we did calculate what the individual should do or not do in the situation.  It was a good "intro" to probability activity, I would do it again for sure.  

The second half of class we continued on the "fair hopper" activity.  I asked students to design their own "Fair Hopper" which some students put some real time into and others' did not.   It would be good to hold students more accountable to these activities.  




One Good Thing
A student teacher in the building came to observe me today in concepts.  It is always so great to get a fresh perspective on my classroom.  She sent me some of her notes afterwards which was actually affirming.  Sometimes I feel like my list of classes to teach is too long this year, but her notes re-affirmed that some of the "teacher moves" I have worked hard to develop have become instincts.  Things like writing all the answers on the board that students give - even the wrong ones, and making students justify their thinking were things she noticed.  I am glad those were apparent and to be honest, I don't necessarily THINK about doing those things any more, it is just more natural.

Wednesday, February 14, 2018

D94: I MADE a lab!

AP CSA

This might sound crazy, but I think I haven't really CREATED my own labs at all this year.  It has all been using A+ materials, figuring them out, and then doing them. 

I haven't been super impressed by their labs but they get the job done - they are a bit dull and don't provide a ton of context/direction.

This is why I was excited about the lab I made.  I used a "structured lab" earlier in this unit that I really liked.  I don't think I really understood how it all worked until I did it.

I had a "station" in my activities that felt like it could be a much bigger task, so I made it into a lab.

We started it in class today and I think it really helped students understand the following:

  • how and when to use super constructors
  • how to use super in other code (like the toString methods)
  • how to class cast for methods like equals or compare to
  • how you can use inheritance AND interfaces
We are going to take one more day to do this, but then I think we are ready to test.  These structured labs have been super helpful.

AP CSP
I did an interactive notebook on arrays.  I need to do more of this next year. 

Concepts
We played the "Fair Hopper" game which went really well.  Students had really good reasoning about why the game was unfair.

One good thing
Having another hour in my day to plan has been a game-changer.  I am able to so much better plan for all my classes. 

D93: Stations - adapted for CSA

AP CSA

I am having trouble figuring out how to teach these big design ideas in the class.  These are all big ideas that are implemented in big projects so it is hard to do repetition at all since it is so big.

It seems like UML, hierarchy diagrams, and method output tables are all great ways to help students read code that uses inheritance and polymorphism. But it is tough to have students CREATE code themselves that use these ideas.

I made a station activity for these ideas which took forever to create, but was helpful.

I had a few different types of activities.  The "Create a UML diagram" one was a bit much for students (and even for myself).  It became a bit of a handwriting exercise. 

There were also two "trace code and predict output" activities which were really strong - students enjoyed the chance to get practice.  I would like to develop more of these.  Honestly, it would be good to make 8 of these and then I think the stations activity would work better.  I didn't have any method output tables, but I think doing some of those would be awesome too.

Additionally I had two "creative" tasks where students needed to create a heirachy diagram for a situation.  For example, a hierarchy diagram for animals or sports.  Students stayed away from this - I think it seemed like too much work for students - they didn't like the idea of "being creative" or "making a poster".  I think it seemed too abstract on it's face.  Students who choose to do it did a great job through.

Next year, I think I would make these "creative" tasks a whiteboard activity and have students walk around and add to others' whiteboards to add other methods or classes that could be child classes from a parent class.

AP CSP
Explore day.  I love the check-off list.  That's a game changer.

Concepts
Quiz day. 

One Good Thing
I met with the MS computer science teachers yesterday.  We talked about the need to be more project based in our teaching of CS. 

Monday, February 12, 2018

D92: Cleaning up the mess left behind

AP CSA
Students took a quiz on interfaces that was a mixed bag.  It is clear they know how to implement an interface but to have a method pass a parameter of another object type was a hot mess.  I asked them to use the comparable interface, but that did not go well.

SO... today became the day that I cleaned up the remnants that I didn't get before.  We talked about:

  • The key word this - which I really should have covered when I introduced methods in the fall.  There is no harm in holding out for latter, but it is something they should have by now.
  • We looked deeper at the Comparable interface - I showed them that to TRULY implement the interface they need to have a method that takes in a parameter of type Object.  That means you need to cast the object to match the class that is using the interface.
  • toString - this is also something I should have talked more about in the fall.  Not every student got why having a toString method is nice and that they can put whatever they want in there. 
  • Heirarchy diagrams - something we touched on in UML diagrams, but probably could have been put earlier in the unit.
  • Method output tables - again, probably something we could have done a day or two earlier.  They were super helpful.
The rest of the time was for PracticeIt which was a bit glitchy.  I am still thinking the best way to practice this content is to actually do unplugged activities and more diagraming.

AP CSP
I handed back students quizzes on variables.  They went pretty well - I was actually surprised - I was expecting it to go way worse.  

The rest of the time was for the Explore task.

Concepts
We talked about conditional probability today and did a quick worksheet. 

One Good Thing
I found out that two of my students will be recognized as NCWIT students.  That is exciting!

Friday, February 9, 2018

D88-91: Polymorphism and Inheritance - time to embrace my lead learner

Phew... I meant to do this everyday... but... I didn't.

AP CSA

I think I spent more time preparing for this week of lessons more than any other week of lessons in my life.  Polymorphism is a big topic and a confusing one.

On Tuesday I introduced UML diagrams and students worked on the FRQs.  Honestly, working on FRQs is probably the best use of time in class for learning AND for the AP test.  It also helps me see what students are still struggling with.

I wished I would have introduced UML diagrams back when I started classes in Sept/Oct.  They are helpful for organizing the basics.  I moved in to is-a and has-a relationships from there.  Again, has-a relationships could have been introduced later.  I think this might have been helpful back when we introduced classes as well.

I emphasized to students the importance of watching some videos before we got to day 89 which was going to be a big day for inheritance.  I also checked off their notes which were better than usual.

I went into a mini-lecture on inheritance with some examples that I had found from another teacher.  In the end, here's what my notes looked like.





I was SO glad I found this person's slides online.  They introduced things in a way that I would have never thought of!  More specifically, they highlighted issues that I, myself wouldn't have noticed.

One thing that came up in this was class casting which I was a little unsure of myself.

That's what we did on day 90.

Here's the video I watched to help myself prepare - it was the best example of when/why we cast that I have seen.




I am still struggling with what the best way is to show long code in class.  It is too small to fit all up on the board, so I printed it out for students.  I decided to do a tree example which looked a bit like this:



From there students worked on the "Structured Lab" - I felt like it was a bit too redundant, but I think students saw how the super class was to interact with the other levels.

On Monday when students get back we are going to apply what we know in a bunch of different contexts, so we will see how that goes!

CSP
I really loved unit 5 when I had smaller classes, but for my large class it is just too much to be able to understand how well students are grasping the content.  I think I need to do more exit tickets in this class for the basics (like declaring and updating variables).

I gave them a quiz which most students did pretty well, others are going to need a lot more attention.

Concepts
We are doing probability diagrams.  Today we did a stations activity which went pretty well.  I will be giving those students a lot more attention.

One Good Thing
Having an extra hour has been a game changer.  It came just in time.  This has hands down been the hardest week for me content wise and I survived!  I also was able to do activities with my concepts students in a much more intentional way.

Monday, February 5, 2018

D87: Going for Goldielocks

APCSA
I missed the Goldielocks space today in CSA.  Interfaces, and more broadly, understanding classes still eludes my 2nd hour.  They are confused and not making progress.  My 3rd hour, finished the labs early and were goofing around by the end of the hour.   I think this is because I gave too much support to my 3rd hour and not enough to my 2nd hour.

SO... tomorrow, I am going to take it slow with my second hour.  We need to clear up some of this confusion before we move forward.

My third hour I think I am going to move ahead with UML diagrams.  This will let me test something out on them first so my 2nd hour is always my "testing" hour.

APCSP
We did an around the world activity with code.  I LOVE around the world activites - students get in a lot of practice AND they get to move AND they self-check their work.  It went well.

Concepts
Made the fatal error of not giving them enough to do today.

One Good Thing
I love it when students monitor each other.  I'm not going to put too much detail into what happened, but I heard about it after the fact and I think it worked.  I have a chronic "bathroom" issue in one of my classes that another student may have just resolved (or eased temporarily). 

Friday, February 2, 2018

D86: Digging deeper into interfaces

AP CSA

We revealed the Snowflake lab.  It was cool to see what happened when we brought everything together.

Then we watched this short video from my new favorite show.



This fed into talking about using the Comparable interface.  We talked about why we might want to be able to use the Comparable interface (to compare GPAs, to compare ratings of restaurants, to compare souls, etc.)

In my first hour, I had them get started on the labs that ask them to create a compareTo method that compares lengths of words, etc.  I thought we were good to go, but there was a TON of confusion.  I am learning that while I am getting good at prepping myself for the content, I am not doing a great job of anticipating what challenges students will encounter.

In the runner class, I gave students code that takes words from a file and puts them into an array.  Then Array.sort() is called to sort the array and then it prints it out.  Students were really confused as to where compareTo was called.  We looked at the documentation for Array.sort to see that when we use Array.sort it sorts the array based on the compareTo method.  In retrospect, I think I should have students tested the code themselves in smaller cases like this:


Students were confused as to where the method was going to get two different Word objects - they didn't get that the compareTo method has to be called on a Word object.

During second hour, I walked through the solution a bit more with students and it seemed to go a lot more smoothly.  We will see how the practice goes on Monday.

APCSP
Last day for the Explore for a while.  We are going to spread out the last 4 days over the next month.  I have 3 students who are done with the task after 4 hours.

Concepts
I NEED to watch my management.  Seating charts got a bit flexed today but I have my para escorting students to the bathroom when ever anyone needs to go.  That seems to help.  We are working on permutations and combinations.

One Good Thing
I was talking with a student today about what the next course in our sequence looks like.  He really wants to do something with a heavy physical competent.  It is interesting to think about what the next course could look like.







Thursday, February 1, 2018

D83-85: Introducing Interfaces

AP CSA
We started AP CSA with talking about interfaces.  I used the example that as a teacher, I need a way for everyone to turn in assignments. In my class, that means that I need a way for every student to get paper into the basket.  Each student will take a different route to the basket, other students might be a bit lazier and give their paper to someone else to hand into the basket.   How each individual student (object) does the behavior (method) may differ, but in the end, I NEED each student do have a way to do that.

I also used an example with people getting to school or work.  This would work better in an urban setting, but it still worked well.  I think I could even write psuedocode for the method.  Something like...




You even could extend this with the fact that everyone gets to school at a different time (night custodians get there later), etc.

Later on I asked one of my robotics girls if they used interfaces in their programming portions of robotics and she said "Yes, but I never knew why"... that was kind of the best answer I could hope for.

She said they had common methods like Go that made the vehicles go a certain distance.  This method made the gears change by a different amount depending on the size of the wheel and such.  It was interesting.

To teach interfaces, I also stole a little activity from my collaborator TJ.  Essentially each student needed to implement the Snow interface.  They had to make a Snowflake class that implemented the Snow interface and then we were going to compile them all in Processing.

I don't really think students got YET why we were doing this.  Tomorrow we will do the great snowflake reveal.

This lesson has taught me some of the challenges of teaching design to students.  It is hard for them to know WHY they are really doing something and what the benefits of using interfaces or polymorphism is - it isn't something you can teach quickly or show a ton of examples of.

When I showed students the project, they didn't get they they would need 3 different tabs in processing.  I needed to explain what the purpose of each tab was - 1 needed to be for the interface, 1 needed to be for the class that would implement the interface and the third would be for the class which would describe the behavior.

I have also noticed that in Processing, students aren't required to make constructors which leads to some confusion as to why having a constructor is a good (or necessary) thing to do.

Today, we got back onto BlueJ with a CodeAlong POGIL activity.  The first half of it was very much "typing test" esque but I like how it gradually took off the supports over time.  I think students got a better idea of why an interface was useful.

APCSP
Students worked on their explore task.  I made a little check-in sheet where students tell me where they are in the process.  I check them off for things like choosing a topic, finishing their research, writing responses, and creating a computational artifact.  Since I am not telling them that what they are doing is good or bad, it helps keep students accountable to finishing while making sure I don't influence the content of their writing.  We were on day 3 right now and some students are essentially done.   I am going to give them tomorrow to finish it up and then we will have 4 work days later in the semester for students to either finish their Explore task or work on other things.

Concepts
This class probably hates me right now.  I have really been cracking down on behavior.  It seems to be going better but I know that this might still be a bit of the honeymoon phase of second semester.  We are talking about combinatorics which seems to be going well.  The additional structure also seems to be helping.

One Good Thing
I talked with a dean and a student today and I learned a lot about how to have some tough conversations with students.  I always start with letting the student talk first, but he dragged that out for a LONG time.  He kept asking "What is the expectation when you XX?" that made me realize that A) I need to make sure I know what I expect from students and B) Students actually know those answers... so, it sets up a nice "you know what you should be doing" sort of situation.