This idea, in a slightly different form, did well in the first News Challenge. Here is is again retooled a bit. The more I think about it, the more we should all be uncomfortable with the government being the sole source of data journalism.  

newschallenge:

1. What do you propose to do? [20 words]

To develop a wireless network of sensors to feed a data backend and visualizations for DIY data gathering.

2. How will your project make data more useful? [50 words]

The vast majority of data journalism is based on data collected by the government. What…

(Source: newschallenge2)

Numeracy

Reading the paper this morning, I was interested to read two stories. The first was about the University of Nebraska Board of Regents approving at 3.75 percent tuition increase. The second was about those same regents moving forward with cutting the number of credit hours to graduate. The two stories were separate, and in print were in different sections.

Why am I interested in this? Because of the logic bomb contained within them that you’ll find if you just do the math.

In the tuition increase story, you learn that the increase will add $94 to $116 to a students bill every semester.

In the degree requirements story, you learn that cutting degree requirements is “aimed at saving students and their families money.” In fact, cutting the required number of credit hours from 125 to 120 will save students $1,000 to $1,500 in tuition and fees in total.

Wait a second, those are two different time periods. One looks at per semester, the other looks at total cost. What happens when we put them on the same scale?

If a student takes the traditional 8 semesters to graduate, that means the tuition increase will add $752 to $928 to the student’s total bill.

In other words, because of these two things combined, the real savings to students is $248 to $572.

Which raises a question not being asked: Why raise tuition if you’re trying to cut costs? Or, on the flip side, why cut credit hours to save money if you aren’t going to save any?

Help me plan a hacker space/drone lab

I’ve got an opportunity to build a hacker/maker space + drone lab in a journalism college. I’ve been asked to come up with requirements for the room. Square footage, furniture, gear, storage, you name it. 

Does your university have a hacker space? What does it look like? Are there pictures of it online? Got a URL? 

Here’s what I’m thinking, broadly. Not going to get all this, but you don’t get if you don’t ask:

  • Countertop space for working on drones or Arduino projects.
  • Locking storage for the same.
  • Couches? Long desks and chairs (like this)? Something different (like this)? Combinations? Need seating space for hacker/software projects.
  • Projector for screen sharing or demos.
  • Internet enabled TV on the wall.
  • Whiteboards. Whiteboards everywhere!
  • If possible, high ceilings and a netted cage for indoor multi-copter testing (example)

Here’s a Storify of tweets I got asking this question on Twitter.

What am I missing? What would you include?

If you were teaching a course in data visualization…

… what would you include? I’m developing a course in data viz over the summer and am in the brainstorming phase now. Here’s what I’ve got. What would you do?

Course Description

A written narrative is not always the best way to convey information. Sometimes, you have to see the data in order to see the meaning in it. With more data available than any other time in our history, being able to visualize data is becoming a vital communication skill. This course will cover a wide array of subjects related to gathering, analyzing, processing and visualizing data. Students will learn how to gather, clean and analyze data that already exists and will work with gathering their own data with cutting edge equipment. The class will also work on a real-world project.

Topic ideas

Visual communication theory
Types of data visualizations — when to use, how to read, how they can mislead
Basic data science — data types and structures
Basic data management — importing, cleaning
Basic data analysis — grouping, counting, sorting, summing
Data vis 1 — using Excel charts
Data vis 2 — using Google Fusion Tables
Data vis 3 — using the web as a canvas for data vis (basic HTML/CSS)
Data vis 4 — using a JavaScript data vis library TBA (Raphael? Flot? Both? Neither?)
Gathering your own data with UAVs and remote sensors
Visualizing data in real-time or near real time
How the basic of telling a story — a headline/title, a lead, context, content — apply to data visualizations
Basic math (via @RobinJP)
What not to visualize (via @knowtheory)

My Sensors for News app made it to the second round. In all 51 of more than 1,000 apps made it to the second round. Excited to have a chance to push this forward.

newschallenge:

We just finished selecting the 51 proposals that will go to the next round of the Knight News Challenge on networks. (You can see 50 of them listed below; one was a closed entry we don’t have permission from the applicant to share.)

(Source: newschallenge1)

Maybe I like the sermon so much because I’m in the choir, but if you care about journalism education, read this. Highlights:

“Journalism schools are realizing that the old tracks don’t really work for students the way the journalism landscape works now,” Hernandez says.

And:

And if there’s one point on which those interviewed for this story agree, it’s that mastery of data and computational journalism is the most valuable tool students can take with them into the job market.

“If there’s one area that’s super complicated and requires having a good deal of training, it is database work,” says the San Francisco Chronicle’s Cooper. “If I see someone with that on their résumé, I’m going to weigh that highly.”

Noted: My sensor networks News Challenge app has a better chance of getting into Harvard than winning the grant. But, as famed philosopher and poet William Adama once said, sometimes you’ve got to roll the hard six.

newschallenge:

2011 News Challenge entries on Tumblr

Over the weekend, we stopped accepting entries in the Knight News Challenge on networks.

The challenge closes with more than 1,000 applications - a number higher than we expected. About two-thirds of those were submitted in the last 48 hours of the…

(Source: newschallenge1)

Toward a solution to the more tech in J-school problem

First, lets state some general conditions and agree to them:

  1. There is a generally agreed upon need for tomorrow’s journalists — no matter what area of the craft they intend to go into — to have more technological skill and experience than their past counterparts.
  2. There is not a generally agreed upon way to accomplish this increase in technological skill within a j-school curriculum.
  3. There is not a generally agreed upon list of tech skills that journalism students should/must have before graduating to become a journalist today.
  4. There is a … tension … in newsrooms and faculties over the balance between focusing on reporting/storytelling/fundamental skills and on new technologies for storytelling. Whether you believe this tension is well founded or a not-mutually-exclusive waste of time, it exists and must be acknowledged.
  5. There are a finite number of classes a student can take in any major and the list of skills and tech that have come up at various discussions and conferences vastly outstrips this class hour limit.

I’ve been thinking about this a lot lately. It started with me thinking about what is the technological/computer science answer to Doing More With Less. Ah yes, Doing More With Less, the trite bullshit line publishers trot out after axing half the staff. It is bullshit, but there’s also a legit question there. How could you do more with less, because guess what? There’s less. A lot less. Ignoring that is angrily yelling at clouds. Pointless.

In academia, the do more with less argument isn’t necessarily about less. It’s about an absolute limit. There are only so many credit hours a student can take in their major. In that limit you have to teach, you know, Journalism. Reporting, writing, editing, design, photography, videography, “the basics.” You don’t hear from people anymore arguing that these classes shouldn’t include more tech. For example, traditional print reporting classes are using digital recorders and cameras on smart phones and video cameras and live tweeting to cover stories. J-schools, by and large, have made that adjustment, from what I hear from my colleagues around the country. The classroom reporting classes are trying to mimic the professional experience, and that has meant more tech.

The question, then, is how do you get some of these other emerging ideas into the curriculum? Where does programming fit in? Or mobile design? What about completely out-there ideas that should be getting a test run in a university setting before going out into the broader industry? Like drones? Or sensor networks? Or machine learning? Or algorithm-written stories? How do you fit those into a curriculum many believe is busy enough teaching “the basics”? How do you deal with a not-insignificant number of people who don’t believe any of this should be in the curriculum at all?

My thinking lately?

Don’t. 

Just don’t. Forget the curriculum. Forget classes. Do something outside of class. Create an opportunity that doesn’t have credit hours attached that has value and fire away.

What do I mean by this?

If you’ve been paying attention around these parts lately, you’ll know that I’ve started a Drone Journalism Lab and have just entered the Knight News Challenge with an idea of building sensor networks for news. I get asked regularly, are you going to teach a class in drones or sensors?

Nope.

Couple of reasons for that. First and foremost, I want to be clear that both are just tools. A smartphone is a really great tool for storytelling that opens all kinds of ethical questions about their use. Would you teach a class in smartphones? No, you wouldn’t. That’d be silly. So using a drone to report a story is … slightly more complicated … but similar to using a smartphone to report a story. It’s a tool to tell a story. It’s not a completely new form of story. Might drones end up in other classes? Yep. Count on it. Sensors? Yep, count on it. Are they their own classes? I don’t think so. I can make an argument for them being their own class, but for now I’m saying no.

So what are they? 

Every campus has student media where students take what they learned in class and apply it to doing more journalism. They get more experience. In sports, they’re called repetitions or reps. The more reps you get, the better you get, the more you can do. Students need reps.  But J-school isn’t the only place for this. Other disciplines have students who work in labs as lab techs or research assistants. They get paid, they get experience, they get reps. 

So what if we did this for journalism too?

I called it the Drone Journalism Lab for a reason. It’s going to be a lab. Where students work. And through grants and undergraduate research programs, they’ll get paid to do so.  They’ll get hands on experience with a very interesting technology, get to take part in the research and they’ll get to put it on their resumes. And given the number of news organizations that have asked me about it, they’ll have no trouble finding a job if this all goes according to plan. Number of classes required? Zero.

The Knight News Challenge app? A good portion of the funds requested is to pay students to work on the project. Again, hands on, in the lab, taking part, without course credit on the line. No need for a curriculum committee meeting. No need to fret about what basic skill is going to get short shrift because we’re talking about sensors.

I’ve talked about starting a hacker space here in the college where students could hang out and build stuff. A kind of proto-incubator stage space where students build things they can then take and build a business around. At the time I was thinking about web stuff or Kinect hacks or things like that. But now I’m thinking it could be a whole universe of things. And again, not things in the curriculum.

I have no idea if this is a solution or not, but it seems to solve a lot of problems. It creates some problems — space, funding, resources to name a few, plus how do you measure this for faculty time commitments? I’m sure it causes more problems than that. I just haven’t thought of them yet.

But if you believe J-school needs more tech, and you accept the reality that universities aren’t going to allow us to double the number of credit hours required to get a degree, then these kinds of outside-the-curriculum ideas are part of the future.

I’ve been bouncing around ideas lately about physical computing, real-time data visualization and what is the technological answer to the bulls*** management line of “doing more with less.” And, out of that idea soup, came this:

newschallenge:

1. What do you propose to do? [20 words]

Develop a network of sensors distributed around a city to report data into a real-time visualization.

(Source: newschallenge1)

Using Python to access tweets from the command line

Here at the Harvard of the Plains, I teach a class in digital product development I like to call Programming as an Act of Journalism. Lots of people ask me about it and I’m always a bit cagey about it because, to be frank, I’m still kind of making it up as I go. My course goals could actually fill an entire degree, so I spend a lot of time pushing and pulling against my wants and needs for the class. But the basic outline is I take College of Journalism students who know nothing about code and product development and we build a prototype of a product they invent in 16 weeks. And the first eight weeks of hands-on classes are spent doing intro to programming type work. 

I’ve started developing lessons I call Small Wins for the class so they can see stuff working on the screen. Here’s the first: a lesson in using Python to access the Twitter API. It’s the follow up class to basic Python (variables, strings, integers, functions and lists). The goal is to talk about using libraries, introduce programmatic thinking and data structure and, well, see some stuff happen in front of their eyes.

In the class, I have students install a virtual machine and put Ubuntu Linux on that. Why? Lots of reasons, but the main ones are that I want to expose students to a new environment while at the same time keeping it compartmentalized so they don’t fear “messing up their computer” by working in the terminal. So this walkthrough assumes you’re using Ubuntu.

1. Install pip, a package management library for Python.

$ sudo apt-get install python-pip python-dev build-essential 

2. Install python-twitter, a Python wrapper around the Twitter API that makes accessing the API breathtakingly simple (really!).

$ sudo pip install python-twitter

Start Python

$ python

Create an instance of the Twitter API class, which creates an object with several methods that we’re going to be using. Think of it like buying a Swiss Army knife. You get the knife and a whole bunch of tools that go with it. You just have to unfold them to use them.

>>> import twitter

>>> api = twitter.Api()

5. Pick a Twitter user to gather their tweets. For this example, we’ll use Stephen Colbert (@StephenAtHome). Then we’ll use one of our tools in the Twitter API class — GetUserTimeline, which does what you think it does.

>>> statuses = api.GetUserTimeline('StephenAtHome')

6. Congrats. You now have Stephen Colbert’s latest tweets. Stand in appreciation of what all the python-twitter library has done for you. It created an http request, sent that request to the properly formatted API URL, ingested the response, converted the structured JSON file it returned into a Python dictionary and returned it to you as an object for you to use. What’s that? You’re not excited? You want to see them? Okay, fine.

>>> for tweet in statuses:

...     print tweet

Yikes. What is that? It’s all the data that comes with each tweet. Take a look at it all. Background colors, times, dates, all kinds of stuff. Well, that won’t do. Maybe we just want to see the text of the tweet. If you look at the output, you’ll see a pattern in the output. You’ll see things like “protected”: false and “screen_name”: “StephenAtHome”. Those are called key/value pairs. The key is the name of the attribute — like an ID or the text of the tweet — and the value is what it sounds like it is.

7. In our case, we want to see the text of the tweet. To do that, you have to address the key. In Python, we do that with dot notation. What does that mean? It means you can pick the key in an object and display it by adding a dot after your object and then the key name. So like this: nameofobject DOT name of key

>>> for tweet in statuses:

...     print tweet.text

Exercise:

— Looking at the keys, what would you have to do to see if each tweet was favorited?

8. Okay, one users tweets are nice, but what if I want to see tweets about a subject, not a person? For that, we’ll use a different function in the python-twitter library, GetSearch:

>>> tweets = api.GetSearch("politifact", per_page=100, page=1)

Exercise:

— Using what you’ve learned, how would you print out the text of the tweets gathered in step 8?

Thoughts, suggestions, criticisms? The comment box awaits you. Want to go further with this? Here’s the python-twitter code and documentation