So I've been tossing some sample problems at my AP students in preparation for the HS Programming Contest at Kansas State University later this fall. If I'm not busy with something else, I'm working on solving it myself for my own practice.
For the one from a couple days ago, I only had time to start the skeleton of the idea and didn't finish it to the full requirements of the problem. I showed them what I wrote this morning, as most of them were still battling the overall structure to approach the problem.
It was really nice, even as the teacher, to hear one of my students (and one of the best coders in the class) look at what I wrote and say, "That is beautiful code, man."
Here is what I wrote, feel free to shred me if you catch anything. Ultimately the problem included taking three entries, comparing them, and then giving output on which entry was the largest and whether it was a "t", "s", or "r".
def main():
print('Enter object types as t for triangle, r for rectangle, and s for sqaure.')
print('Enter numbers only for dimension values.')
print()
firstObjectType = input('Enter type of first object: ')
if firstObjectType == 't':
h = int(input('Enter height of triangle: '))
b = int(input('Enter base of triangle: '))
object1 = triangleCalc(b, h)
print(object1)
def triangleCalc(base, height):
tArea = 0.5 * base * height
return tArea
def squareCalc(sideLength):
sArea = sideLength * sideLength
return sArea
def rectangleCalc(length, width):
rArea = length * width
return rArea
Wednesday, September 20, 2017
Tuesday, September 19, 2017
Entering The Cyberpatriot Competition
So we have a really active AFJROTC wing here at my school, which isn't surprising considering we McConnell AFB literally just three miles up the road and within our district boundaries. I wasn't aware of the Cyberpatriot competition last year in time to get us in and competing, but we did meet and study a bit to learn about cybersecurity. This year, we are going to get in the game!
It looks like I will have one AFJROTC team and one open division team. Thankfully we have a local college instructor in cybersecurity who not only lives in our district, but also has extensive background with the military as an active duty Air Force officer in cybersecurity and intelligence. We also have an Air National Guard intelligence wing up at the base, giving me even more potential mentors to call on. I was talking with one of the current officers in the intelligence wing at our home football game last Friday (it was military night), and he was thrilled that Derby HS has students in CS and offering opportunities in cybersecurity.
As we ponder what to offer to round out our CS course offerings, a cybersecurity is certainly one possibility. The issue I am finding is there isn't a lot out there of more "ready to go" curriculum, and this is one area I certainly don't feel comfortable crafting up my own curriculum, at least not yet.
Any thoughts on a cybersecurity curriculum, or should we be pondering other avenues? I know we could add AP CS A, but considering what types of jobs are actually available in our area, I'm not sure AP CS A and its focus on students aiming for four year CS degrees makes the most sense. I've been wondering about the notion of the "blue collar coder" as was brought up in a Wired article earlier this year, though I know some were kind of loathe to that notion.
It looks like I will have one AFJROTC team and one open division team. Thankfully we have a local college instructor in cybersecurity who not only lives in our district, but also has extensive background with the military as an active duty Air Force officer in cybersecurity and intelligence. We also have an Air National Guard intelligence wing up at the base, giving me even more potential mentors to call on. I was talking with one of the current officers in the intelligence wing at our home football game last Friday (it was military night), and he was thrilled that Derby HS has students in CS and offering opportunities in cybersecurity.
As we ponder what to offer to round out our CS course offerings, a cybersecurity is certainly one possibility. The issue I am finding is there isn't a lot out there of more "ready to go" curriculum, and this is one area I certainly don't feel comfortable crafting up my own curriculum, at least not yet.
Any thoughts on a cybersecurity curriculum, or should we be pondering other avenues? I know we could add AP CS A, but considering what types of jobs are actually available in our area, I'm not sure AP CS A and its focus on students aiming for four year CS degrees makes the most sense. I've been wondering about the notion of the "blue collar coder" as was brought up in a Wired article earlier this year, though I know some were kind of loathe to that notion.
Thursday, September 7, 2017
Sticking My Neck Out...
Per the challenge from Mark Zamansky at C'est la Z, I am going to try and start posting more regularly on this blog I created many months ago.
Compared to most of you who blog, I am very much, as the title states, a noobie. While I have dabbled very lightly in HTML and GameMaker since the early 2000s, I really didn't get deep into CS until I and the middle school where I was teaching were selected to help Project Lead The Way pilot their new Intro to CS curriculum back in the spring semester of 2015. On that opening weekend in January 2015 when the pilot teachers met, and then a bit more during a week in June with the same group, I got dunked into the world of teaching CS. I now am teaching just CS classes at my district's high school, in my second year here at Derby HS.
Daunting? Yes. Overwhelming at times? Absolutely. Challenging? Wonderfully so! While I have a LONG way to go in building up my own skills, I absolutely am loving the challenge of keeping my own learning as sharp as possible. My focus right now is to build up my own Python skills, since my curriculum makes a pretty hefty use of Python.
I also more or less volunteered myself into becoming president of the re-established CSTA Kansas chapter. That is an area needing more attention from me, and right quick, as I really want to try and push forward many of the K-12 CS initiatives I see happening in other states.
Here at school, we are now near the end of our third week, and I certainly have lots of kids new to CS in my classes. My biggest challenge is getting them to break out of having everything laid out step by step where they just mimic, and start to actually understand what the bits of code are actually doing. For some, this comes naturally, for many others, it is a push for them to think at even just barely higher levels. They are too often far too conditioned to fact regurgitation learning. Have to remember, just keep swimming...
Compared to most of you who blog, I am very much, as the title states, a noobie. While I have dabbled very lightly in HTML and GameMaker since the early 2000s, I really didn't get deep into CS until I and the middle school where I was teaching were selected to help Project Lead The Way pilot their new Intro to CS curriculum back in the spring semester of 2015. On that opening weekend in January 2015 when the pilot teachers met, and then a bit more during a week in June with the same group, I got dunked into the world of teaching CS. I now am teaching just CS classes at my district's high school, in my second year here at Derby HS.
Daunting? Yes. Overwhelming at times? Absolutely. Challenging? Wonderfully so! While I have a LONG way to go in building up my own skills, I absolutely am loving the challenge of keeping my own learning as sharp as possible. My focus right now is to build up my own Python skills, since my curriculum makes a pretty hefty use of Python.
I also more or less volunteered myself into becoming president of the re-established CSTA Kansas chapter. That is an area needing more attention from me, and right quick, as I really want to try and push forward many of the K-12 CS initiatives I see happening in other states.
Here at school, we are now near the end of our third week, and I certainly have lots of kids new to CS in my classes. My biggest challenge is getting them to break out of having everything laid out step by step where they just mimic, and start to actually understand what the bits of code are actually doing. For some, this comes naturally, for many others, it is a push for them to think at even just barely higher levels. They are too often far too conditioned to fact regurgitation learning. Have to remember, just keep swimming...
Monday, January 9, 2017
Discovery or Direct?
So this post comes about after reading this great blog post over at Computing Education Blog. The author, Mark Guzdial at Georgia Tech, poses some great questions about methodology in CS education, namely the ever present battle between the discovery/constructivist camp and the direct instruction camp.
Personally, I think they both have their place, as typically direct instruction is needed early on to help steer students through challenging material that is brand new, but as students get some foothold with their understanding, it is important to gradually shift them into models that are more discovery/constructivist oriented in order to hold their interest, and, for lack of a better phrase, "keep it real." The big challenge is the HOW and WHEN to make that shift, and of course it will not be the same for every student, which then brings up how to differentiate instruction without driving ourselves as teachers absolutely mad with behind the scenes work.
This pedagogical query also raises something in my mind that I need to explore in another blog post, that of what we would consider the "core" of what students need to know and understand in CS, and at the different levels. Yes, there is a new framework that has been released, found at k12cs.org, but I find many times that these types of works are so broad that it leaves me worth more questions than answers. I thought about this today as I read another blog post by Alfred Thompson at his Computer Science Teacher blog. He posed a question about the importance of number bases in pre-university CS classes. More to come on my next post!
Personally, I think they both have their place, as typically direct instruction is needed early on to help steer students through challenging material that is brand new, but as students get some foothold with their understanding, it is important to gradually shift them into models that are more discovery/constructivist oriented in order to hold their interest, and, for lack of a better phrase, "keep it real." The big challenge is the HOW and WHEN to make that shift, and of course it will not be the same for every student, which then brings up how to differentiate instruction without driving ourselves as teachers absolutely mad with behind the scenes work.
This pedagogical query also raises something in my mind that I need to explore in another blog post, that of what we would consider the "core" of what students need to know and understand in CS, and at the different levels. Yes, there is a new framework that has been released, found at k12cs.org, but I find many times that these types of works are so broad that it leaves me worth more questions than answers. I thought about this today as I read another blog post by Alfred Thompson at his Computer Science Teacher blog. He posed a question about the importance of number bases in pre-university CS classes. More to come on my next post!
Thursday, December 1, 2016
Let's See How This Goes...
Well, the purpose of this blog really is for me, a place for me to "think out loud" on issues related to teaching computer science in K-12 education. I teach computer science at public high school in a suburb of Wichita, Kansas, and I am finding that teaching the concepts of coding presents a lot of pedagogical issues. Some are just like any other class, others are not. A lot of coding has such abstractness in concept that one cannot just rely on memorization for very long. Getting many students from rote mimicry of code examples to actually understanding things conceptually is a big leap!
So if you do happen to stumble across this little foray into the blogosphere, and have something to add, share, or comment on, please do!
So if you do happen to stumble across this little foray into the blogosphere, and have something to add, share, or comment on, please do!
Subscribe to:
Posts (Atom)