Showing posts with label why. Show all posts
Showing posts with label why. Show all posts

Why Teach Computer Science Facebook Discussion

Wednesday, August 3, 2016

So last week on Facebook I posted this link: Teach US Kids to Code. It brought up a really interesting discussion between some of my former students about computer science classes.


Now back when I taught these kids (now very much grown up and in their careers) my focus was mostly code, code and more code. I am happy to say my teaching has grown since then. Our discussion centered on the fact that many kids just dont "get" coding. They pointed out that half the kids in our classes never really moved beyond variables. And honestly this was my fault.

Without the broader context the abstraction of computer science can be overwhelming. Especially for an age group that has not necessarily hit the abstract thinking phase of development. Abstract thinking starts in early adolescence and continues until they are in their early 20s. And as teachers we cant control where they are in that spectrum.

What I can control are the activities and topics we do in class. By building a scaffolding through engaging activities you create a framework and a context for all these abstract things. Though practice comes understanding.

This leap from teaching code to teaching computer science has been the biggest development in my career.

NCIS
So here is what I wrote. It is the core of why I think every kids deserves computer science in school.


In a way it is asking the question from the wrong angle. For instance in Latin there is no expectation that every student become a master level linguist. There is an understood intrinsic benefit to studying something rigorous even if you do not hit mastery.

For too many cs classes we have a kind of Jedi master approach  You will either become expert, or get nothing out of the experience. I think there is a valuable middle. 

I assume all of my students will engage with some type of computing device in their professional lives. Having some experience with programming means they have a better understanding of what these devices can and cannot do.

Weve hit the point where cs is the magic trick...watch any old episode of NCIS to see that. For too many people you hit the button, magic occurs and answers appear. Any person with some cs experience knows how untrue that is, and how manipulative it can be.

We are at a point where you are either someone that understands this, or is getting tricked. It has become a basic literacy issue.

So no, many of my students will not master abstraction or recursion, but my classes also cover the culture of cs. They dont have to get every nuance of programming to understand some of the science behind what we do.

And that knowledge puts them on the stage with the magician, maybe holding the hat but still on stage, rather than in the audience. Cs should be more than a fun show. We depend on these devices so much that cs is a core part of being a literate person of influence.
Read More..

Why you Need a Popcorn Maker

Tuesday, August 2, 2016


Ok - I know, this is not exactly a programmable device.

But, I am assuming you want to get kids into your lab. I spent $20 on this last year and it has by far been the best piece of equipment I have added to our lab.

Why?

  • Teenagers like food
  • I have never in 16 years had a kid allergic to pop-corn
  • It is cheap food, and I am a teacher...enough said
  • As a mom I like that popcorn is relatively healthy. We eat it plain - no junk added. They grumble, but they still eat it.
  • The aroma brings kids in from the hall. I have at least two kids in my classes this year that first came to the lab for the popcorn
Read More..

So why do we need CS Principles

Thursday, July 28, 2016

I have been asked a lot this past year about why CS Principles is being developed.

Even though computer science is all about change, and the changes in our field seem to zoom by at lightning speed, there are some core ideas and well, principles, that are central to understanding how they work.



For those of us in the AP Computer Science community we do a great job of delivering computer science education. We all can point to students we have launched into the world. These students have overcome obstacles and are working and creating jobs in all sorts of places.

Sadly, this is not enough.

The existing computer science curriculum in K-12 schools does a good job for the few students it reaches, but what about everyone else? Think about where you are....how many schools around you have computer science? How many students in those schools have access to the classes?

Really, how many kids in your community even know what computer science is?

For me it is a question of literacy. To be a productive person you must be literate in the tools society is using to drive change. For that past few centuries this meant reading and writing. While these skills are still necessary for students, understanding computers and technology has become the new marker of literacy.

Simply put, anyone that does not have a foundation in computer science will not be as prepared for the changes to come.

This does not mean that every student needs to master computer science. There will always be a need for a core group of programmers that have reached a master level of understanding. These are the people that, to quote Virginia Tech, invent the future. We need more of these people. We also need these people to reflect the needs of the larger community they serve through their innovation.

And for everyone else? The computer is the tool of the future. We communicate, learn, work create...all with computing devices. To use them well means understanding some fundamental things about how they work and what they can, and cannot, do.

Think about Mr. Rodgers - "these are the people in your neighborhood". How many of them could do their job without a computer? How much of their daily life outside of work- communicating, playing, making, could happen without a computer?

Often in media computers are presented as magic. The character pushes a button and poof - the problem is solved. Those of us in CS know this is just slight of hand. Behind the scenes someone created a tool on a computer to solve the problem.

So this is why we need the CS Principles course. Every student in America needs a rigorous preparation for their future. That preparation must include computer science. Without access to computer science we run the risk innovation looking like magic, only available to those that know the trick.

Last week the CS Principles Phase II piloters met in Chicago. This is a great group of folks working hard to design the curriculum for this new computer science course. I have been so lucky this year to be a part of this community. It has been tiring, frustrating, humbling...and all totally worth it.  Hopefully after this year we have all pushed the rock a bit farther up the hill.

Everything you need to know about CS Principles. This page has all the documents that frame the course. One easy place for all the information.

Take a look, ask some questions. It is time for us as a community to really start the conversation on making the change happen.
Read More..

Why not to print more money by Government

Tuesday, July 12, 2016

SCENARIO 1:


Many of them asking why not print more money to solve debt problem?

SOLUTION:


Consider we have debt around 100 cr. to china,america,etc.,Now we print 100cr and solved debt problem.Now we are happy that we are free from debt from other countries.ok sounds happy.....
Now consider a product that avail only in america they are asking 100cr.As you wish now india can print 100cr money but other side other country can also print money,now they can also provide 100cr to that product.Now what america will do they increase product rate 200cr now also india can print and china also can print money..so there is no end to solve the problem.......what will america keep on increase the price of product and india and china keep on print the money until print paper avail........sounds crazy isnt........This is not right way to lead a world economy.........so this will rise money inflation and world economic war...........

SCENARIO 2


Now consider indian government planned to give 1cr to each people in india,what will happen?

SOLUTION:


Now consider there is only 1 book avail in bookshop.The cost book is 10000.person arun having 1cr and hari also having 1cr.now they both are demanding that book.Both of them have money to buy that book.But only one book avail,so the shopkeeper will rise the book price to 20000.Now also they can buy that book,Since they have 1cr in their hand.So the price of book keep on increasing like 1.1cr...now who have extra money, they only can buy that book.So there is no use of providing 1cr to each people,Though both of them having 1cr,but one person only can buy that book......now tell guys is there any use of providing 1cr to each people ....it also lead inflation and economic war.........

NOTE:if everyone having money means who will do agricultural works,then where we can get food.........think guys....thats why government not printing more moneyy............
Read More..

HTML is not programming so why teach it

Tuesday, April 12, 2016

So in talking to parents and guidance counselors I occasionally get asked if a kid can jump ahead and take one of our upper lever computer science classes. My first question is always "have they programmed?" Yes, I know, programming is not the end all and be all of computer science, but for a student that wants to take the current AP Computer Science course they need to be able to code.

Sadly the answer I most often get is "yes, they know HTML". Sigh.

For the CS Principles pilot this last year my second unit was The Internet Unplugged.  We covered both the hardware side along with how to actually make a web site. Yes, I taught HTML and CSS.

So the question is - why cover HTML at all?

One of the core themes of the CS Principles course is broadening participation. So many students have had exposure to HTML, and they all use web sites. This is the interface they use to get at the information on the web. It is an immediate way to show abstraction in action.

Plus, as we transitioned to coding students were already used to the idea that formatting and exact punctuation matters. This let us focus on the tools of programming, like ifs and loops.

And of course, CS Principles is not all about programming. The Internet is one of the seven core principles, equal to programming.

So this summer I am reviewing what we did in CS Principles last year. Honestly this was one of the better units we covered. It tied into all of the big ideas and was something we referred back to the rest of the year.

On the other hand I am not crazy about how I taught HTML. It was a bit dry - too much lecture and we got a bit bogged down. Id like to reduce this to just 4 days.

Next year I plan on trying Thimble. This is offered by Mozilla and lets you type in the HTML interactively and see what happens immediately. It also points out errors right away.

Read More..

Why Code Academy is Awesome

Thursday, March 10, 2016

We have been using Codeacademy in the CS Principles course to cover HTML and CSS (the abstraction part of the Big Ideas). IT is a great tool - lets the kids self pace, give instant feedback. They have made some pretty amazing things.

Plus the site uses badges to track progress. You know how I love badges.



I just got this e-mail from them - such a grreat summary of why Computer Science is important:

You’ve been a Codecademy student for a month now. Well done!

Here’s why that’s great news for you:

We believe that learning how to program is the best job security you can have because it’s more important than ever before to understand the systems we depend on every day.

The need for computer literacy has never been greater. As a Codecademy user, you’re getting a head start in many ways:
  • You’re learning how programs function, and how to control them
  • Programming is a skill that’s virtually guaranteed to help you get a job
  • By learning to code, you’re becoming a creator: someone who makes things happen
  • You can create programs, games, web pages and animations
  • As your coding skills grow, you can share knowledge and even teach your skills to others
  • In a world of tech consumers, you’re becoming an empowered builder…
Nice work!
So don’t stop here. Why not master a topic right now?
Exactly.
Read More..

Why Binary

Friday, February 12, 2016


I was challenged by a parent last year about why we teach binary in our CS classes. Honestly I didnt answer too well. I was in a bit of shock, good shock - it is not often I have a parent have much of an idea about what we teach in CS.

So I didnt answer well. But I do teach it, and for very specific reasons.

Analog Binary Calculator


You have to be intentional about why you are teaching anything. Are you using it as a way of dividing the smart and the dumb kids? We might not state this as a goal, but often difficult topics in class create just this divide. This group gets it easily, so they are valued more than the kids that struggle. Think back to the last class you really struggled in and be honest - it can feel that way. As a non-speller this was a lot of my own elementary experience.

So as a community we have to move beyond teaching a skill for the sake of the skill. Frankly teaching something like binary is a bit of a cheap trick. Here are the steps you perform, practice those steps, now demonstrate mastery. Especially for those of us with a math education background this is exactly how we were taught to teach. To some degree this is training behavior, not teaching content.

CS gives us the opportunity to move beyond basic skills and give them context. We see this same issue happening in math. The kids dont get WHY they have to do fractions, so rather than provide a context, we hand them a calculator and move on. Most of them will never use it anyway, right? We rob them of a deeper understanding of their world when we take the easy route.

So, why do we bother with binary?

It is our job to constantly link these skills based topics back to the bigger questions of CS. Binary is foundational to understanding how computers act and what they can and cannot do.

So as you teach binary your students should be writing and answering questions. This is a perfect time to explore what kinds of problems computers can solve. Why is it fairly simple to search a cell phones address book for your grandmas phone number, but you cannot just type in "solve world hunger" and get a solution? Well, part of the answer is the kinds of things computers can store. We can easily download Shakespeares Hamlet, but we cannot get the computer to read it for us and list the major themes. That kind of processing is, for now, outside its abilities.

And this is something students of any level can discuss. Perhaps not to the same depth or level of analysis, but they can form knowledge around it, and in fact they should.

And back to teaching the skill, it is also our job to teach difficult and abstract things with appropriate scaffolding so that all kids can get some level of mastery.  Again, not every kid will fully absorb the amazing beauty that is the twos comp algorithm, but if they have done it they will better understand why int x =/*insert hugemungous number*/ pops around and gives them a negative number. And maybe when that kid has gone off to college and is sitting in a very intimidating CS class they are that much less likely to drop it.

So for me binary is a cheap trick, but not for the skills sake, but as a bridge to the bigger philosophical ideas that should be a part of CS education. Every person should be thinking about these things. It impacts us all.
Read More..