Sunday, May 21, 2023

Using ChatGPT for data analysis and visualization



I've been a bit obsessed with ChatGPT ever since it launched in late 2022.

I got even more excited when my friend Ben Jones posted a video of how ChatGPT's "Code Interpreter" plugin could do data analysis and visualization.

I signed up for ChatGPT's paid Plus version in the hopes of getting access to the Code Interpreter plugin myself. That hasn't happened yet. But then Noteable launched their own plugin, which every ChatGPT Plus user has access to, and it seemed to have much of the same functionality as the Code Interpreter.

I've been playing with the Noteable plugin pretty non-stop ever since. Most of my musings have been over on Twitter/X and Threads (I'm increasingly annoyed at Twitter's new leadership, and hope to leave it eventually, but for now I'm posting in both places). But I've also started making some YouTube videos walking through how the tool works.

For those who have abandoned Twitter or missed my tweets, I thought I'd collect my various ChatGPT/Noteable videos and threads here. I've embedded the first tweet in each thread. You can click on "Read the full conversation on Twitter" to have the complete thread for each open in a separate window.

As I do more Twitter threads and videos on ChatGPT and Noteable, I'll add them here.

VIDEOS:










TWITTER THREADS:













Tuesday, December 3, 2019

Tableau Training in Vancouver this February



My next two-day public Tableau training workshop will be held on Tuesday, Feb. 18th and Wednesday, Feb. 19th at SFU Harbour Centre. You can buy tickets here or by clicking the button below:



Here are some testimonials from people who've attended my earlier training sessions.

If you can't make this workshop but would like to be alerted when the next one is scheduled, just add your name here.

If you have several people at your organization who need training in Tableau, I'm also available for onsite training.

Friday, November 29, 2019

Video: "How to Teach Data Viz to Skeptics" by Chad Skelton

I had the pleasure of speaking at VisInPractice, part of the IEEE VIS 2019 conference in Vancouver this fall on the topic of how to teach data visualization to students who aren't that interested in data visualization.

The video of my talk is below. You can check out all the great VisInPractice talks here.


VIS in Practice 2019: How to Teach Data Viz to Skeptics from VGTCommunity on Vimeo.

Thursday, March 14, 2019

Online Tableau Training this April



My next online Tableau training workshop will be held this April over three Thursdays: April 11, 18 and 25. You can buy tickets here or by clicking the button below:



Here are some testimonials from people who've attended my earlier training sessions.

If you can't make this workshop but would like to be alerted when the next one is scheduled, just add your name here.

If you have several people at your organization who need training in Tableau, I'm also available for onsite training.

Thursday, January 10, 2019

Five ways to get your students to participate more in class

U.S. Department of Agriculture / Flickr
TL;DR:

Over the years I've stumbled across a number of techniques for improving student participation in my classes that have worked really well. Here are the five key ones (you can click on each one to be taken to a more detailed description):
  1. Explain why participation is important.
  2. Make sure students are prepared for weekly discussions.
  3. Have students self-report their participation marks.
  4. Get students to discuss a question in small groups first.
  5. Call on students at random.

Full post:

About five years ago, I was asked to take over a new course at KPU, the university where I teach: Introduction to Journalism.

I was worried.

Not because I didn't know the subject matter. I'd been a working journalist for more than 15 years.

And not because I didn't know how to teach. At that point, I'd already been teaching for several years.

The problem was that the Intro course had been designed by its previous instructor as a discussion course. Each week, students came to class and — facilitated by the instructor — discussed issues like journalism ethics and the business model for news.

I had no idea how to teach such a course.

In my many years of teaching, both at the university and my own private workshops, I always taught people how to do things. Whether it was how to build an interactive chart, or how to do a court search, my classes were always very hands-on and practical.

Class participation was always a part of my other classes, but it wasn't the point of the class.

I worried about how I would get my students engaged enough in discussions about journalism to fill up a three-hour class each week.

Unfortunately, the first couple of times I taught the class, many of my worst fears were realized.

I'd throw a discussion question out to the class — "So, when is it OK to use anonymous sources in a news story?" — and be met with stony silence. Sometimes, the one or two keeners in class would share their thoughts, but getting the rest of the students to take part was like pulling teeth.

I'd occasionally pull the classic instructor trick of calling on a student who wasn't participating to share their thoughts. But doing that always seemed slightly mean — putting a student on the spot who wasn't prepared — and, regardless, it rarely elicited more than a shrug and a poorly thought out answer.

I started to dread the days that I taught the Intro course. I suspect my students did too.

But then things started to change.

Almost by accident — an article here, a podcast there — I picked up a few ideas for how to improve student participation and gave them a test-run in my class. After some initial success, I got brave enough to experiment with some ideas of my own.

Over time, the participation levels in my Intro class started to increase, gradually at first and then quite dramatically.

What had once been three hours of painful, awkward silence became a spirited weekly discussion with students who were engaged and interested in the topic.

Intro to Journalism is now one of my favourite classes to teach, one I look forward to every week.

In the hopes it might be of some assistance to other instructors out there, below I share the five things I think made the biggest difference in improving participation in my class.

While my experience is at the university level, I think most of these techniques could be easily applied to high-school classes and (with some modification) even lower grades.

One big caveat: I'm a data guy so I feel it's important to note that I haven't subjected any of these techniques to rigorous analysis like a randomized controlled trial. My evidence in support of all of them is purely anecdotal and based entirely on a single course. Your results may vary.

But getting students to participate more is such a common challenge in teaching that I thought these ideas were worth sharing.

So, without further ado, here are my five tips for getting your students to participate more in class.


1. Explain why participation is important.

If participation is a key part of your course (and especially if it's a component in a student's final grade), I think it helps to explain to your students why.

Part of that explanation, of course, is personal: Participation is an important part of their own learning, to help them understand the course material better.

But I also impress on students that we're all in this together: We're going to be together in this room for three hours every week and a lot of that time is going to be taken up by class discussion. If people don't participate, those three hours are going to go by really slowly. In contrast, if everyone participates and does their part, the hours will fly by and we'll all have fun. I find students really respond to that sense of common purpose.


2. Make sure students are prepared for weekly discussions.

A common problem in teaching is the "curse of knowledge": Teachers are such experts in their field that they have trouble remembering how daunting a topic can be to complete beginners.

I was often guilty of this when it came to class discussions. Some topics are so commonly discussed among working journalists — the use of anonymous sources, newspaper paywalls — that I expected students to already have opinions about them, or to be able to come up with an opinion on the spot.

But, of course, a first-year student taking an introductory journalism course has, in most cases, never thought about these topics at all.

If you want to have a meaningful class discussion about a topic, you need to make sure students have had some time to learn about the topic and reflect on it before class begins.

The typical way to deal with this challenge is with weekly readings: Have students read an article or two on the topic before class so they're ready to discuss it.

The problem, of course, is that many students won't do the assigned readings or, even if they do, will skim them in a way that doesn't prepare them to think deeply about the discussion topic.

I use a couple of strategies to address that.

First, each week, along with the assigned readings, I give students a single question about the readings. For example, I'll have them read an article or two about paying sources for stories and then pose the question: "Under what conditions is it OK for a news organization to pay money to a source for a story?"

Each week, students have to email me a very brief "weekly report" in which they answer — in at least two sentences — that week's question. I don't make the reports worth a lot of marks, but it's worth enough that students won't blow them off.

The other technique I use are quizzes. Each week, I give students a brief, three-question multiple-choice quiz on that week's readings. The quizzes are designed to be super easy for students who've done the readings (i.e. "What is this reading about?") and super hard for those who haven't.

Together, the report and the quiz make it hard to do well in the class without doing the readings. And it ensures students are adequately prepared to participate fully in class discussions.

I often still spring some new questions on students in class — or get them to respond to a video or audio clip that they're seeing in class for the first time. But at least students are well prepared for that one, main question every week.


3. Have students self-report their participation marks.

This idea I stole from the instructor who taught the Intro class before me, and it's a great one.

Instead of the instructor being responsible for keeping track of each student's participation marks, students report their own participation each week on a sheet of paper (here's an example).


I tell students they're expected to speak at least twice each class. They then give themselves a checkmark for each time they speak (up to a maximum of two).

This idea was meant to solve one problem: In a large class, it's really hard to know every student's name at the start of the course.

But I think it also solves another problem: It makes participation marks simple and transparent.

Participation marks that are assigned by the instructor can often be a bit ambiguous. Are students being marked on how much they participated in class? On the quality of their in-class contributions?

Worst of all, I think that very ambiguity can discourage some students from participating. Many students don't participate because they don't think they have anything valuable to say. If an instructor is going to ultimately decide whether your participation is "good" or "bad", it's too easy to convince yourself that you don't have anything "good" to say and not participate at all.

And, from the instructor's perspective, even if some students have "better" things to say in class than others, you want all students to participate, not just the keeners.

A self-reported checkmark system removes that ambiguity. Attend every class and speak twice each class? You're going to get 100% for participation. Simple.

To avoid abuse, I put some basic parameters on what qualifies for a checkmark: It needs to be a contribution of at least a couple of sentences (ie. "I agree with what she said" doesn't count). I also remind students that there is nothing more obvious in class than someone who says nothing, so if they cheat and give themselves checkmarks when they don't deserve them, I'll notice.

Finally, I recommend putting out the checkmark sheet at the end of class. If you bring it out at the break, some students will give themselves two checkmarks and then skip the second half of class.


4. Get students to discuss a question in small groups first. 

It took awhile before I tried this one, but I've found it makes a big difference.

Before we discuss a topic, or question, as a whole class, I have students discuss the question in smaller groups first.

Using this simple "team maker" tool, I break the class into four or five groups and then give them 5 to 10 minutes to discuss the topic in their small groups. Then I open it up to a discussion of the whole class.

This isn't typical "group work". Students aren't asked to present on behalf of their group or anything like that. The small-group discussions are simply meant as a warm up for the main event. But it works wonders.

Shy students may think what they have to say isn't very interesting and so are reluctant to say it in front of 30 or more of their fellow classmates. But put them in a group of just five or six fellow students, and it's not nearly so intimidating to share their thoughts.

And when that small group finds what they have to say interesting, it gives them the confidence to share their thoughts with the whole class later.

The key, I think, is not to overdo it with the small group discussions. Five minutes is often plenty to get the ball rolling. It's also important to stress to students that just saying something in their small group doesn't count for a participation checkmark. They need to share it with the whole class for it to count.


5. Call on students at random.

This idea came from a interview with education expert Doug Lemov on the EconTalk podcast. At about the 18:00 mark, Lemov talks about using "cold calling" in an elementary-school class. Instead of asking a question and waiting for students to raises their hand, Lemov encourages teachers to just call on any student at random.

The genius of cold-calling, according to Lemov, is that it forces all students, even those not called upon, to think about their answer. It's also a lot faster, because you don't have to wait for students to raise their hand before calling on them or — even worse – have no students raise their hand and then basically plead with your class for someone to answer the question.

What's interesting about cold-calling is that it's a technique that's already used by most instructors, but poorly: Either out of desperation, when no one raises their hand. Or (somewhat) cruelly, to put a student who never participates on the spot.

The key to making it work, I think, is consistency: To use it all the time, for every question.

I jokingly tell my students that, instead of picking on the one or two students who never raise their hand, I instead pick on everybody.

I'm also a bit more systematic in my approach.

Partly because it takes me awhile to learn my students' names and partly because I don't trust myself to be completely fair in calling on students, each class I randomize the class list. (I randomly sort an Excel spreadsheet but this online list randomizer works just as well.)

Then — for every question — I start by calling on the three students whose names are at the top of the randomized list. Then, for the next question, I call on the next three. And so on. The first time I do this, I show students how I randomize the list on screen. Every time after that, it's secret, so students never know when they might be called on.

While I start each class discussion by calling on students at random, after the first three students have been called on, any student can raise their hand and talk. And, in my experience, many do.

I think that's because, fearing they might be called on, most students have prepared a response in their head. So, then, when they're not called on, they figure they might as well share their thought anyways and get their participation checkmark.

Those are my five suggestions for how to get students to participate more.

If you've got a trick to share, please add it in the comments. Note: To avoid spam comments, all comments on this site are moderated, so it may take awhile for your comment to show up.


Tuesday, July 24, 2018

My next Online Tableau Training workshop is this September



My next online Tableau training workshop will be held this September over three Thursdays: Sept. 13, 20 and 27. You can buy tickets here or by clicking the button below:



Here are some testimonials from people who've attended my earlier training sessions.

If you can't make this workshop but would like to be alerted when the next one is scheduled, just add your name here.

If you have several people at your organization who need training in Tableau, I'm also available for onsite training.

Thursday, June 7, 2018

How much evidence do we need for a data visualization "rule"?

In a separate post, I laid out some of my arguments for why I think most line charts should start at zero. I posted some of my initial thoughts on that topic on Twitter, which generated some really thoughtful replies.

One of them, from Steve Haroz, noted that he knew of know evidence that people read non-zero-baseline bar charts any differently than non-zero-baseline line charts. And, furthermore, that we should be careful in talking about data visualization "rules" when our evidence for them is weak or nonexistent.

This led to a quite spirited discussion about whether data-visualization "guidelines" or "rules of thumb" that don't have any empirical research to back them up can still be valuable, or if we should stick primarily to those things that we have solid evidence for.

Speaking personally, I didn't fully appreciate the gaps in data visualization research until I watched Robert Kosara's excellent talk at the University of Washington, "How Do We Know That?"

The talk is based on Kosara's paper, Empire of Sand, which I now assign to my students at the University of Florida.

As Kosara points out, many of the things we think we know about data visualization have little empirical evidence to back them up. And other well-accepted "rules" may actually be wrong (for example, "chartjunk" may not be so bad after all).

Some rules are based on nothing more than the strong opinions of influential early writers in the field (like Edward Tufte and Jacques Bertin) and have not actually been subject to peer-reviewed research.

So where does that leave us as data visualization practitioners and teachers?

It would seem obvious that we shouldn't teach "rules" that we know to be wrong. But what about the many areas for which there is little or no empirical evidence at all? Can theory replace research in some cases? Is a common practice worth teaching our students even if we don't know it to be true?

Below, I've tried to collect some of my own thoughts on the matter as well as those of others who took part in the Twitter discussion.

First, though, a big caveat about my own tweets: While I teach at a university and have (strong) opinions on how to teach data visualization, I'm an "instructor" not a "professor". I don't have a PhD and I'm not engaged in academic research myself.

Let's get to the tweets!



















I was curious about the project Enrico mentioned but Chen didn't appear to be on Twitter, so I sent him an email.

Chen sent me a very nice email back directing me to the Visualization Guidelines Repository.

The repository is still a work in progress, but an example on "chartjunk" suggests it could eventually be similar to what Ben Jones was suggesting: Links to where guidelines come from and studies that support or refute them.


There is also a related project, VisGuides, which is a platform to discuss visualization guidelines. (VisGuides was presented at Eurovis this week.)

Chen told me the two projects were setup by four visualization scientists: Alexandra Diehl, Alfie Abdul-Rahman, Menna El-Assady and Benjamin Bach.

It will be interesting to see how the Repository and VisGuides develops.

But I wonder if there isn't also a space for something more like the University of Chicago economists survey, but for data visualization: A place where people can see at a glance what leading practitioners in the field think about different guidelines.

I think this would provide useful information about which guidelines are universally accepted (i.e. "95% of practitioners think bar charts should start at zero") and which are more contested (i.e. "30% of practitioners think line charts should usually start at zero").

With sufficient buy-in, it could also provide a one-stop shop for people to check in with their favourite thinkers in the field when struggling with a chart decision. ("I want to make a pie chart with eight slices. What would Alberto Cairo think about that?" "Would Cole Nussbaumer Knaflic approve of me truncating this axis?")

If you've got thoughts on this topic, please post a comment below or hit me up on Twitter. Because of spam comments, my comments are moderated so don't be alarmed if yours doesn't show up right away. It will within a few hours.