Archive for October, 2015

Day two of Kodu.

October 30, 2015

I had found two videos on how to make a Pacman like game with Kodu.  Not two good videos, just two videos.  The guy doing the videos assumes the watcher knows how to do what he is doing.  He does something, I spend 30 minutes figuring out how he did it.  Actually it is teaching me a lot about Kodu.  The digging around and trial-and-error is teaching me a lot more than if I were just following clear directions.  I am also learning a lot about an X-Box controller.  I do not have to look at the controller any more to figure out which button is red or yellow or whatever.  I am not a gamer so the controller is not instinctive like it is with my students.

Some lessons learned.  Have the video drivers up to date.  That was good for at least a couple hours entertainment.  Kodu would not load on my desktop so as usual I hit Google.  The solutions did not fix the problem so I had to use my own brain.  The stress!  Kodu was working on a cheese bag laptop and not on my fancy desktop so it had to be something stupidly simple.  Update the video drives and poof, she works.

Kodu is pretty processor intensive.  My poor little school AMD laptop fan is a hummin’.  The i5 laptop at home is a hummin’.  The i7 tower with 8 gb of RAM has no problem.  I really like the fact is does actually work on the cheesy laptop.  I will be interested to see how it holds up as the project gets more complex.  Kodu has a little thermometer on the right side of the screen to indicate the level of complication of the project.  I am not sure if that is RAM usage or processor usage but it will be interesting to see how the laptop handles things as the project goes higher on the thermometer.  Right now I am just starting to tickle the thermometer and I have not even put any moving parts on the game board.

After two days of serious dinking with Kodu I am not sure I would give this to a programming novice cold turkey.  It is something a novice could easily work with but some initial guidance would really lower the frustration level.  There is almost too much “stuff” available to work with.  Lots of tutorials and lots of projects to work with.  That much “stuff” is a bit intimidating and confusing.  Kodu needs some kind of progression levels or a “do this first” type of guide for the novice to begin with.

This is one of those things I really want to have down pat before I throw it at the kids.  A lot of the building is technique which takes a lot of time.  Where things are, how to handle cursors, and how to save projects where you want them to save all takes time to figure out.  I do not want the kids spending a lot of time on the administrative details even if it would be a good learning experience.  Kids have a tendency to bail when things get ugly that way.

This weekend I will dig through the Resources tab on the Kodu website.  I also intend to spend a few hours working through Pacman video two.  The weather is supposed to be a bit rough and wet so no bike riding.  Maybe a short 6 mile trail run and a weekend of Kodu with some recovery beer.

Did you know beer is an excellent after run drink?  It is not much on recovery nutrients or rehydration but it sure is good for the aches and pains.  And it tastes sooo much better than that protein and recovery powder shake.  I wonder what would happen if I made the shake with beer instead of almond milk?  Probably just ruin the beer.  I am not risking the anger of the beer gods by experimenting with their miracle drink.

Bored with Python, at least for a while.

October 29, 2015

I am bored.  Sometimes that is good, sometimes that is bad.  When I get bored I use the kids to cure my boredom.  Sometimes that is good, sometimes that is bad.

My programming class has been moving along very nicely through the textbook and the programming problems.  (I should say three of the four are moving along nicely.  Number four struggles.)  They have been moving so well that we are getting bored with Python.  We need a break from Python.  Something to refresh the mind.  Something that will take our mind off the fact winter is on the way and the sky is gloomy.  So I have come up with an idea.  This will either be a fun divergence or a major can of worms.  My ideas are usually the latter but I still have them.  We are going to play with Kodu.  Now if this were a semester long course I would not diverge like this but I have these kids for the year.  Lots of time to go all sorts of places.

In my review of stand-alone programming for beginners (no teacher needed) I accidentally stumbled on Pacman for Kodu.  There are some YouTube tutorials.  The tutorials still make the traditional 2-D game with Kodu.  No biggie there.  I am going to elevate the game to 3 –D with bridges.  (Did you get that?  “elevate”.  I am so proud of myself for that one.)  We will start by following the tutorials and get that working.  We will then mangle the playing field with bridges and non-symmetric paths.  There will be some programming involved but I am after the thinking and designing part of CS here.  And some just plain fun.  If this works I might take the exercise on to Project Spark.  There may be a glitch here since Project Spark requires a minimum of an i5 processor.  I have one i5 loaner and I will have to see what the kids have.

For some people programming is fun; problem solving, a puzzle, a challenge to make the better mouse trap.  For some people programming is like watching paint dry.  My programming classes are usually filled with the former.  Hopefully my little divergences will keep the former from turning into the latter.

Programming Software for Kids: What can stand by itself?

October 21, 2015

My wife is teaching Project Lead The Way to 6 – 8 grades in a public zoo, opps, school.  If you are not familiar with PLTW it is a canned teaching program for hands-on STEM.  The kids do some engineering, some robotics, and a Medical Investigations (like a CSI) biology class.  Very hands-on classes, all labs with very little sit and listen to the teacher type stuff.  In her robotics class she has six kids that are very accelerated and 21 that are not.  Last night she asked me if I knew anything she could give the accelerated six that would not require her to hold their hand, something they could work on independently.  (My wife knows only the programming she learned in a 5 day PLTW seminar on RobotC, i.e. zip.  She is a fast learner and is really into building stuff, be it robots or wood projects or mouse trap race cars.  She loves teaching these courses but due to the fact the school has seen it necessary to cram 27 to 30 kids in these courses she has no time to do anything but classroom management and teach a little.)  Whatever I come up with cannot require something be installed on her classroom laptops (she does not have admin privileges on them (stupid) and tech support is a two to three week response time (another stupid for a course requiring lots of laptops being used a lot), has to have its own tutorial and has to be somewhat interesting to 8th graders.  The install thing killed Kodu, Small Basic and GameMaker.  The fact her laptops are low end killed Project Spark.  The fact that’s Karel the Dog is not something I would give smart 8th graders and requires some initial instruction killed that idea.  So I am sitting there last night on the couch with the laptop thinking and going through the list of coding environments that I know.  Then it hit me.  Alfred Thompson.  No, he did not hit me, we are pretty much on opposite sides of the country, but what he has been working with, TouchDevelop, hit me.  It is web based so no install.  It has “Getting Started” on the Google search which leads to “first steps with turtle” tutorials.  It also leads to some fun stuff that can actually go on to something useful for the kids.  If the kids are independent enough and smart enough they should be able to go it on their own.

Of course all this wild digging last night got me thinking.  How easy is some of this “beginning programming” stuff to get started with?  How easy is it to find the tutorials, how easy is the IDE for a beginner and how much outside help (teacher or knowledgeable parent) is really required?  It would be great if someone in my wife’s situation could just say to a kid or parent “go here and everything will connect”.  As the high school CS teacher I actually get this request fairly frequently; “where can my child learn some programming on-line?”  Usually by elementary school parents.  So in the next few weeks I am going to do some reviews of beginner (ages 8 through 13ish) programming software.  I will be particularly looking at how standalone the software is and how easy it is to get started programming with the software.  Things like ease of installation (if required), quality of the tutorials and how good the website is at pointing beginners (kids) in getting the software up and running.  I also want to look at the fun factor or “how deeply is the kid going to get hooked on thinking and programming if they play with this?”

The software I can think of looking at are:


Project Spark

Small Basic







Hopefully I will get some suggestions from my readers as to other software to look at.  I will also probably remember software I have forgotten about as I go.

So You Got That Computer Science Teaching Job. Now What?

October 13, 2015

(I usually try to keep my posts a maximum of two Word pages.  Opps, I leaked.)

For many years I have been keeping a CS Ed course in the back of my mind.  A one semester thing that would at least get pre-service students thinking about diving into CS Ed.  I built an outline many years ago and every now and then I break it out and play with it.  The previous two posts and this one sort of help me organize and verbalize.  Someday I may actually convince the local university to hire me to teach it.

The following comments assume you are walking into a school that does not have a solid CS program.  Sort of like most schools in the US.  Do not assume I am an expert on this.  I have been teaching CS for 30 years but that does not imply I have been doing it right for 30 years.  In that 30 years I have had some really good ideas (least I thought they were) that went down in flames.  What I do suits my skills and interests.  What you do has to suit your skills and interests.  (One of the nice things about teaching CS is you can follow your own interests and get where the kids need to go curriculum-wise.)

Step number 1.

What do you have to work with?  Computers would be convenient but you can do a lot without them (see but if you are like me you like the “computer” part of Computer Science.  For a typical programming course not much is really needed in the way of a computer.  Schools complain about the expense of a CS program.  My school-owned hardware (all Windows PCs) is all older than 5 years.  Almost all are donated from businesses rotating their hardware.  I have not bought a lab computer in about 9 years.  Dig a little, the stuff is out there.  Find parents that work in real estate, banks, law offices, stock brokerages and so on.  Those companies usually have a 3 to 5 year rotation for their hardware.  I scored big when a local hospital did their rotation.  More computers, monitors, switches, and printers than I could use.

If you want to do a graphics course then there may be issues with dated equipment.  I wanted to have the kids dabble in Microsoft’s Project Spark but a minimum of i5 was required.  All but one of my students had an i5 or better.  The kids typically have better stuff than the school.  Rely on it.

For my Programming I we can use a lab but I have laptops to loan the kids.  I strongly recommend to the kids to use their own laptops if they own a Windows machine.  For Programming II I require them to provide their own laptop or check one out from me (rare).  I tell parents who want to buy their student a laptop nothing fancy but I want the kids working on the laptop they would take to college.

Step number 2.

Software is the easiest.  There is so much free programming and CS stuff out there the problem is making a decision what to use.  For a Programming I course there is Scratch, Alice, Small Basic, TouchDevelop and on and on.  Microsoft has a whole TouchDevelop Programming I game writing curriculum ready to go for free.  For Programming 2,3,4,… there is Python, Java, GameMaker, Corona, Visual Basic, C#, and more and more.  All free and almost all have free tutorials to get started with.

Which do you use?  Use what you can find the best assets for.  If you are an experienced programmer pick your favorite flavor.  After many years of tinkering I have narrowed down my personal favorites for teaching.  For Programming I I favor Scratch and Small Basic.  Scratch is good for beginners simply because they can do some fun things easily and there is little syntax to remember.  I like SB for a beginning line code language because all the syntax is given in the IntelliSense dropdowns.  It is also nice for fun turtle projects.  The kids can actually write some pretty good programs with SB but the code gets a bit ugly when the program gets big.  SB is for teaching, not writing commercial software.  Remember, for many kids this will be the one and only CS course they may take.  Focusing on a semester of coding may not be the best way to go.  Touch lots of CS topics.  Make it worthwhile.

For Programming II I have to go with Python.  Python has a great free book out there.  Having a book is nice when you just want to take a day off from the whiteboard and have the kids do their own digging.  That free book and the flexibility of the language make it a winner.  I teach a game making course that uses both GameMaker and Corona.  Simple and professional games can be made with both and they have free versions.  There is an excellent book out there for Corona.  GameMaker has some good tutorials available.

And there is Java.  Java is very popular.  I am not a good Java programmer so I will wait until I find a good textbook I like before I try teaching Java again.

That is one of the things you learn with time.  How much time do you have to learn a new language you think you should teach?  I have a list of things I want to learn for the kids: TouchDevelop, Project Spark, C# and Java are just a few.  Maybe next week.

Now the not so easy stuff.

Step number 3.

You will need kids.  One or two programming geeks will usually not do the trick.  The administration frowns on classes of one or two kids.  Something about “economically justifiable”.  You will need an introductory drug course.  Introduce something like “Game Writing with Scratch”.  The word “Game” is a huge attraction.  Or at least get the word around that the kids get to program a game in Programming I.  How good Programming I is will greatly affect how many kids are in Programming II, and eventually (if offered) an AP course or Programming 3,4,…  The kids will take a hard course if it is interesting.   “Build it and they will come” is not a good plan for building your CS program.  You need to chase kids down.  Remember, pottery is a much easier elective.  So getting kids is a combination of salesmanship, planning and word of mouth.

Step number 4.

Curriculum and syllabus.  For me this has always been the biggest obstacle.  What should I be teaching in order to really have a CS curriculum instead of just a bunch of programming courses?  The Computer Science Teachers Association (CSTA) has some guideline documents but for the classroom they can be a bit warm and fuzzy.  If you are teaching something like Math you can grab the average set of textbooks and get a pretty good outline of a curriculum.  Textbook companies spend a lot of money getting a 3 or 4 year high school math curriculum lined out.  In 30 years of teaching CS I have never seen a multi-year high school CS curriculum written by anybody but the teacher.  A few years ago just finding a CS book that was not pure programming was near impossible.  Things are starting to change.  The new APCSP is an effort to really teach CS.  It is still heavily into programming but it is a start.  UC Berkeley’s “The Beauty and Joy of Computing” is another good program.  Again it is primarily a programming course but it has started to focus on the problem solving aspects of CS.

This is where my skills and interests start to come into play.  I think a CS curriculum should include software and hardware problem solving, fundamentals of networking, and a very basic grasp of network administration. If you have the skills, teach them.  I see comments that computer techie skills are to CS as being a car mechanic is to an automotive engineer.  You have got to know how things work, car or computer, before you can really be good working with them.  Problem solving with a computer requires knowing how to solve problems with the computer. In simpler words, know how to fix your own stuff.

Some of my curriculum ideas come from the local university.  I ask CS instructors what they want the incoming freshmen to know.  The answer has been consistent throughout the years.  Problem solving skills, the ability to think and the very basics of programming.  They could care less if they know language X in great detail.  They say they can teach that but without the basics of problem solving the kids are lost and cannot catch up.

If you have to write your own curriculum and syllabi focus on problem solving, not syntax.  The kids need to learn how to learn syntax, not have syntax for language X memorized.

Step number 5.

Never be satisfied that you have it right.  CS evolves.  Yes, you could easily teach the same syllabus and curriculum for 10 years without damaging the kids.  Math, Science, English, History, etc. have been teaching the same basic curriculum for about 50 years fairly successfully.  CS is unique in this manner.  The fundamentals may not change all that much.  The basic concepts of problem solving, programming fundamentals, and programming design stay fairly unchanging at the high school level.  It is all the fun details that the good CS teacher has to keep an eye on; new languages, new game making software, new hardware, and new things to get kids interested in the CS field.  Mix up programming projects regularly.  Do not be afraid to go off track every now and then.  Have the kids work in something like Kodu for a few weeks.  Remember the goal is to teach CS, not to train professional programmers in language X.

As long as CS is an elective it will have to be kept interesting and fun.  Once it becomes required then it can become boring and tedious.  (Humor.)

So You Want to be a CS Teacher? Part 2.

October 8, 2015

(Why two parts?  The post was getting a bit long.  I do not read long posts so I figured no one else does either.)

To be a CS teacher you have to realize CS is not like teaching any other subject.  It simply evolves too rapidly for a high school teacher to be an expert.  You spend hours and hours cruising the internet looking for things you understand enough to teach.  You pick a couple of programming languages to learn half way decently.  One for Programming I kids (Small Basic, Scratch or the like) and one for the more advanced kids (Python, Java or something you have time for) and maybe one for fun like Corona or Game Maker.  You search the blogging world for people who teach at the level you do, have comparable assets and have good ideas they like to share.  Why are you spending so much time on the internet looking for ideas?  Because the choice of good high school level text books is real close to zip and you are usually the only CS teach in the school so there are no convenient brains to pick.

You must realize that being the CS teacher means you know everything, and I mean everything there is to know about computers and servers and cell phones and projectors and copiers and Smart boards and, in my case, the #$%&* school bells.  In a big school you may not need all this but in a small school you are it.  You had better be familiar with Chromebooks, Windows in all its versions, Apple stuff (iPads, iPhones, Macs, iTunes accounts, Apple @#$% Configurator), and making simple and not so simple repairs on laptops.  (Hey, that sounds like the IT departments job!  In many schools the CS teacher is by default the IT department.)

To become a CS teacher you have to spend a ridiculous number hours debugging some little program in a language you are learning so the kids will get a chance to see something new.  You also discover that teaching code is the easy part.  CS is not programming.  CS is program design and using a computer to solve problems.  CS is teaching kids to think.  Good luck with that.  Teaching CS also means you have to teach the kids how to troubleshoot computer hardware and software issues.  “That is what school tech support is for.”  (Giggle, chuckle, laughter, louder laughter, roll around on the floor laughing too hard.)

To be a CS teacher you have to realize there are going to be kids that are just smarter at this than you are.  Live with it.  You have to pick their brains.  You make them teach you and the rest of the class.  You figure out what that kid needs to know to go to Carnegie-Mellon (or MIT or CalTech or where ever) and you find somebody to help them because you sure do not have time to do it.  Remember, you teach for a living.  But later when that kid comes by with the job of designing VR software for a company you never heard of and is making more in a month than you make in a year you do get to take all the credit.

A CS teacher has to realize there are no jobs in CS teaching, at least compared to everything else the average high school offers.  Even the bigger schools usually only offer a couple of sections of CS.  So to be a CS teacher you have to teach something else.  No choice.  That lovely and ideal CS plus Education degree is not worth a whole lot as a standalone.  You will have to get a degree in math or science or English or basket weaving if you want to teach CS.

As a CS teacher you have to know you are in competition with every other elective in the school.  CS is almost never a required course.  CS is not easy for the kids.  It involves work and thinking which is not a real winner for an elective.  The average kid is going to take pottery instead.   The number of computer geeks in any school is very low.  Small numbers in an elective means the elective will go away.  Be sure you enjoy that other teaching field.  If you want to continue teaching CS you get imaginative.  You offer a game programming course, usually in a language you know nothing about until you dreamed up the course.  Suddenly you have more kids than computers.  It is all in the marketing.

So my advice if you want to be a CS teacher is to forget it.  Be an English teacher.  The burn out rate is so high on them there are always jobs available.  CS education has very few jobs available, is hard to ever feel “qualified” in, is very difficult to find any kind of pre-service or in-service education in, involves almost as much work as an English teacher (the reason they burn out), and at the moment is very unsecure.

There is the little detail that teaching CS can be more fun than anything else you might teach and may be the most immediately useful subject to a high school graduate but does that really count?

So You Want to be a CS Teacher? Part 1.

October 7, 2015

It is interesting to read various blogs on NYC’s proposal to have every student doing CS in 10 years.  Both Mark Guzdial and Mike Zamanski have comments worth reading on the subject.  As is pointed out the elephant in the room is the lack of CS teachers and CS Ed programs.  Qualified CS teachers, not two week wonders.  So how do you become a CS teacher?  Here is how I did it.

I was being interviewed for my first teaching job.  It was in Winifred MT.  One hundred kids K-12.  Out in the middle of nowhere.  They were interested in hiring married couples.  So my wife and I are getting the guided tour through the school.  The superintendent shows me the room I would be teaching in if I were hired.  Sitting along the wall were three Radio Shack TRS-80’s with the packing material still stacked next to them.  He asks me if I knew how to run “them things”.  Now in college I had had a math methods teacher who was into computers.  We had spent quite a bit of time with Apple IIe software and Apple Logo.  I had also take a FORTRAN course instead of the foreign language.  Since the wife and I needed jobs and me not being afraid of anything I said “Sure!”.  Ta Da!  I am a programming teacher!  Not really a CS teacher but close.  After 5 years of Winifred, TRS-80s and Apple IIes we moved back to the big city of Missoula.

The wife immediately gets hired to teach middle school.  Me, I get hired to tune skis and bicycles.  So I figure I will get my masters.  The VA was willing to pay and I got on as an adjunct instructor in the math department at the university.  (They were having a little problem with math adjuncts that had never taught or did not speak English.)  I got the masters done and was having fun being an adjunct and working on bikes.  I was still not paying tuition so I figured I would dabble in some CS classes and maybe get a minor.  I still wanted to get back into the high school so I figured a minor in CS Ed would be handy.  Imagine my surprise when U of M did not offer such!  So I wandered into the CS department chairman’s office and asked if he would offer one for me.  Imagine my surprise when he immediately agreed.  (Lots of surprises going on here.)  With three new classes (one designed by me) and previous course work I walked away with a CS Ed minor.  One of two given by U of M.

After ten years of adjuncting and bike mechanicing with a six month detour into the world of commercial software I had to get back to real teaching.  While at a friend’s wedding I was chatting with a guy I did not know.  He was the athletic director at Loyola, the local Catholic school.  Loyola HS wanted a math teacher who was interested in getting a CS program going.  There was an extreme shortage of CS “qualified” teachers for the job who were willing to accept private school pay (about one half public school pay).  Poof!  I am a full blown CS teacher.  Fifteen years later I am still trying to justify the full blown part.  I am still mostly in the “poof” stage.

So how do you become a CS teacher?  You do not wait for the local university to come up with a program and you do not do some online course work.  You do not spend a fortune getting a CS degree and an education degree.  (OK, so that is the best option but be real.)  What you do is you find a school that is interested and you find some students and you jump in feet first.  If the local university offers something, grab it.  If there is something online that looks worthwhile, do it.  But for heaven’s sake to not wait for magic to happen.

I was bore watching an update so I figure I would babel.

October 3, 2015

It is 3:00 Saturday and here I sit in front of my computer at school.  Powerschool came out with an update that may take as long as 4 hours.  I hope not.  The weather is crappy outside but it is still good enough to do a mountain bike ride.  Since I have been helping coach girl’s varsity soccer I have not been able to get in my usual 2 weekday rides in.  I am getting out of shape rapidly.  Those weekend rides are important.  I would have gone earlier today but I helped with the JV game.

We wrapped up the traffic light program last week.  As usual there were mixed results.  Two kids walked through it with ease.  One kid struggled but succeeded.  One kid went down in flames.  The flamer absolutely refuses to figure out the logic of the program before trying to type code.  He and I will work through most of the logic on the board then when I suggest he finish the logic on paper on his own he tries to coding the incomplete solution we discussed.  There seems to be a certain level of mental maturity required to program, he has not reached that level yet.  Good kid, not stupid, just not mentally mature.    The first two “get it” quickly, can figure the logic in their head on the fly and pretty much code a solution from their head.  Number three kid needs help but with very little hand holding gets there.  I will have to do more hand holding for number four.  He wants it so bad.

I am teaching sophomore Math II again this year for the first time in 4 years.  It is not going well.  These are the kids that struggle with math.  Good kids but just not mature or really sharp.  I can tell I have been teaching seniors and computer geeks too long.  My ability to handle people, never a real winner, has taken a dive since Iraq.  It is a constant struggle to interact with these kids in a way that suites their needs.  They are 15 years old, I cannot expect them to act mature or to be self-driven.  It does not help that these kids are totally ambivalent to math.  They do deserve to get the best and I will have to figure a way to get myself up to their needs.  It is a challenge and I do fairly well at challenges.  I will sit down with the other Math II teacher next week and get some of her methods.  She is much more structured than I am so maybe I will have to adapt to her methods.

Oracle is grinding away at updates as I type.  I have a friend that works for Oracle in Bozeman.  He is an upper level project manager.  He is counting the days to when he can retire.  He says the place is full of over driven alpha types doing 70 hour weeks.  Not fun.  I am planning to move into his house this summer with a bunch of friends so we can ride the Bozeman trails.  I am sure his wife will be excited by the opportunity to feed and entertain 5 or 6 visitors.  Hopefully he does not mention this plan to her until we show up on the porch.

Oracle is “Executing post-patch SQL”.  Whatever that is.  I love the little progress reports as this update bubbles along.  They have no real meaning to the watcher since it is going to do whatever is has to do and the watcher is not going to mess with it.  One of those over driven alpha types at Oracle should rewrite the progress reports as a poem or short story.  Be a lot more entertaining.

Oracle is done.  1.5 hours.  Not bad.  Now I have to do the Powerschool update.  PS does not usually take that long, it just crashes for stupid reasons that takes their tech support an hour and several levels to figure out.  Working on PS brings a certain anxiety.  If something goes wrong (and it has before) there are no attendance, grading, lunch counting or records.  It is all backed up but rebuilding the server takes a couple of days.  The result is panic in the streets.  I had the PS virtual computer go spastic on me last year.  Took almost a week to recover and repair the server.  There was panic in the streets.  Not good.  Like I said, a certain anxiety.

Next week we start with Python in the programming class.  I like Python.  It does so many things.  Turtles, Lego Mindstorms, animation, and so on.  Very versatile.  I require the kids to do the installation.  Not trivial.  Python 3.5 does not work with the editor we use (PyScripter) and PyScripter is 32 bit.  It takes some troubleshooting to get it working.  I also have an excellent book, “How to Think Like a Computer Scientist: Learning with Python 3” by Wentworth, et al.  If we get bored we can do something new with it.  I will tell the kids to use Python to get the Lego robot to go through a maze.  I do not give them the add-on module, how to program the robot or how to flash the Lego brick.  They are on their own.  Google is great.

Hey!  PowerSchool is up and working.  Only one minor moment of panic but the Retry button worked magic.  Time to head home.  Maybe dinner and a movie with the wife.