One of my colleagues, Matt Zipin (in fact, my high school computer science teacher), just sent me a link to an iPhone app that his current student, Ari Weinstein put together. It was one of those rare moments of seeing a piece of software and thinking, “This… this is exactly what I have been looking for! It’s almost like they had me in mind when they wrote it!”
Perhaps unsurprisingly, I had this reaction because, in fact, Ari has written an application that I suggested. Based on my work at St. Grottlesex as a Thirds’ basketball coach. I had been running practices using the timer and counter apps separately on my iPhone. Which was workable. But unwieldy. Enter.. Ari’s Basketball Timer app, which elegantly and cleanly combines these two tools into a single screen.
I think my favorite part of the app is something that you can’t see, that you can only experience: starting the Time out Timer stops the main clock, and starting the main clock stops the Time out Timer. How simple. How elegant. How easy it would have been to skip over.
Thank you Ari and Matt!
Seth Battis April 27th, 2011
Posted In: Computer Science
I actually really, really want to document some of our projects that we’re working on this year in a great deal more detail. But, for now, I am simply publishing my notes from a conversation that I just had with Apple Education about the legalities of having high school students develop for the app store.
So… I just got off the phone with Apple Education (they were following up on an iOS in Education event a few months ago that I had actually missed). But: I did get the straight dope on Apple Developer accounts and high schools:
- University accounts are just that: for higher education. Non-negotiable.
- There are really three levels of developer that are pertinent to high school:
- Free — they can download Xcode and use the iPhone simulator.
- Individual ($99) — Same as free, plus they can use their iPhones/iPads to debug the software live (with the right certificates — I’ve found that the easiest way to set up the certificates is directly through the Xcode Organizer). My recollection is that they can have up to something like 100 devices for “debugging.” At this level, they can post apps to the App Store.
- Enterprise ($299, IIRC) — Individual, plus the ability to manage a fleet of iOS devices (remote install and remote wipe), as well as distributing their software internally with no restrictions. I actually pressed him pretty hard on this, and he wasn’t 100% (“read the language in the agreement first”), but he thinks that it would be viable for the school to buy an Enterprise license and then say “Come by the computer lab and we’ll install our cool in-house app on your iPhone for free.” (Or for money — I don’t think they care.)
- Apple strongly discourages the school (which would, in reality, be a single individual) signing up for an Individual developer account as the primary distribution channel to the App store for student apps. The rationale being that if a particular app makes it big, the individual who has control of that account well, has control of that account. Apple deals with account holders, not the model that the school constructed. They suggested that if a group of students wanted to band together on an app, that they should sign up as a group for an Individual account through which to distribute that app — and that they should draw up their own contract on their end for how to manage that account.
- Students under 18 need to be signed up for the account by their parents. (Contract law — the kids are underage.)At the end of the day, it sounded like my approach this year is basically right on the nose: I have an Individual account in my name that I use to install apps on test iPhones (and I have registered all the student iPhones as debugging devices). The students signed up for free accounts at the beginning of the year. I think what we’ll do when we release this app is sign up for a new Individual account that the students will jointly share to post the app to the App Store (something like “[Jewish Day School] App Design ’10’-’11”).
Seth Battis February 15th, 2011
One of my responsibilities at Jewish Day School is to post a monthly column on the goings-on in our media studies department (and in education technology in general) to our online parent bulletin. This is one such column.
In today’s world, where “there is an app for that” — no matter what that may be — it is easy to lose sight of the fact that, in fact, when we are dealing with real problems that involve real people and real situations and real information, there often isn’t an app for that. Nor is there a systematic, rational approach for tackling the unknown. It’s easy to find an app that tracks the balance of your checking account… but very, very hard to find an app that can tell you why your portfolio is going up (or down).
The Media Studies department is offering a new course in computer application design and computer science in the coming academic year, to complement our existing offerings in video, photography, web and game design and new media. Seth Battis, who joined the department this year, will be teaching the course, which is designed to complement the robotics learning led by [colleague] and [Jewish Day School Academy of Science and Technology].
Computer science is the study of computation, using computers to process vast mountains of data into that nugget of usable, useful, valuable information. And, in the past decade, it has become the domain not just of computer geeks, but of professionals, scientists and researchers seeking to better understand the information they have and the challenges they are trying to tackle. Computational biology, statistical modeling of markets, physical simulations of wind energy are all being done by people with a foot in two worlds: the world of their chosen, beloved studies and the world of computation facilitates their studies.
Computer science has gone in and out of vogue many times over the last several decades — and with good reason. It can provide a unique perspective on creative problem-solving and ways for humans (us!) to understand vast and complicated data. But it can also be the drudgery of “pixel-stained technopeasants” sweating over line after line of arcane code.
The purpose of the Computer Application Design and Programming course is to, at the high school level, make these same skills and this same practice available to [Jewish Day School] students. Students will have the opportunity to practice their analytic and reasoning skills, while developing new practices in problem solving, using modern tools further their learning. The course will be taught using object-oriented programming practices, applicable in a broad array of modern computational environments — from the iPhone to the web to stand-alone computers to computing clusters.
Students and families interested in the Computer Application Design and Programming course are encouraged to contact their advisor or Mr. Battis or [my department chair] for more information.
Seth Battis May 3rd, 2010
I came across Rahul Mahtani and Yofred Moik’s conceptual design of a Google Mail Envelope a few days ago and was… instantly captivated. I’m not sure if it’s just the aesthetics of a design on the envelope in general, the way it hearkens back to an old school airmail envelope, or the conceptual neatness of the route between the two addresses. I just know that I love it and I want it.
So, I spent some time making a version of it.
Right now, my implementation is very much hacked together (I was teaching myself the Google Maps API as I went — it’s not hard, but it’s not familiar vocabulary, yet — I have a few other projects that will get me more expert soon, I hope). The things to know are:
More to come as way opens.
Seth Battis April 11th, 2010
Posted In: Computer Science
I’m in the throes of reworking my Introduction to Computer Science course for the coming fall. I was thoroughly dissatisfied with how I taught the course this year: I’m at the stage of teaching where I know how I want it to go, but can’t always make it happen. Of course, this may not be a stage, but could, depressingly, be the existence of a grown-up.
I have divided the course into three broad areas that I think are most important to cover: computer science (as a discipline: concepts like variable scope, Boolean logic, object-oriented design, and so on), programming in Java (concrete details like how a for loop works or how to declare a class) and design and implementation. Design and implementation is actually really the core of my fascination with this course: how do you teach problem solving? And how do you get students to apply those skills.
In doing this, I’m plowing through a lot of articles.
Of course, the challenge is now to boil down all these design concepts into something that is useful not in a first-year computer science or software engineering undergraduate course, but in a first-semester high school course. How much do my students really need to know about UML, CRC cards, flow charts, eXtreme Programming, incremental development, rapid prototyping, functional requirements and use cases? Not a whole damn lot. Mostly, I want them to learn to enjoy the process of rigorous problem solving as manifest in learning to program a computer.
But I’d certainly like them to not be starting down the garden path of bad habits based on ill-considered pedagogical frameworks.
Ah, for the days of Pascal as a first programming language!
Seth Battis June 26th, 2008
Having just struck upon the similarities between Pink’s six new senses and Gardner’s multiple intelligences, I continue to be fascinated by examples of folks employing these ideas in creative ways: enter Basildon Coder, recently highlighted on Slashdot for describing a Wodehouse-ian approach to code refactoring. As always, I look at this and start to ponder how to use it in the classroom with my students: one of the real challenges that my students face is not the development of new code (although that is challenging) but figuring out how to use a body of code written by someone else (me, their classmates, some godawful Windows GDI API, etc.). I have been struck by the difficulty my students have faced this year in grasping the 50,000 foot view of coding — perhaps a visual representation like this might be a first step. Sort of a Powers of 10 for programming.
Seth Battis March 23rd, 2008
No one. That’s who. Well, not as many of us as we might have thought. Since the real power of “thinking like a computer scientist” is leveraging abstraction as a means of managing and containing complexity, it makes sense that we are moving away from an era in which every computer scientist needs to have a soup-to-nuts understanding of computers. No single human being can full comprehend an entire computer system, and it’s not clear that we should be training computer scientists with this as a goal.
But this does raise some questions about how our students will handle the abstraction of concepts that they don’t fully (need) to understand.
Seth Battis March 3rd, 2008
Posted In: Computer Science