Monday, September 11, 2023

Reimagining CS Pathways: High School and Beyond

This looks like a great opportunity to make a difference in CS education.

We are seeking community involvement in a new project called Reimagining CS Pathways: High School and Beyond, led by CSTA, CSEdResearch.org, ACM, Code.org, College Board, CSforAll, and the ECEP Alliance. Please consider applying to join us. We particularly need diverse voices from post-secondary as well as industry representation.

This project will convene representatives from K-12 ed, higher ed, and industry three times across this school year to develop community definitions of (1) what CS content is essential for all high school graduates and (2) pathways for continued CS learning. We aim to:

  • Make recommendations for revisions to CSTA K-12 Standards and AP CS courses

  • Clarify alignment of and develop model pathways for CS courses, including content that fulfills a high school graduation requirement, introductory post-secondary CS courses, and AP CS courses

We have a limited number of spaces for participants in a series of in-person convenings (Nov. 13-14, 2023, Jan. 25-26, 2024, and Mar. 19-20, 2024) and a series of virtual focus groups (offered at multiple days/times). Additionally, we welcome reviewers to asynchronously provide feedback on reports.

Please apply to join us. We expect the application will take 5-10 minutes. Our priority deadline is Sept. 15. The steering committee will select participants to create a balanced group, and CSTA will follow up with more details for those selected near the end of September.

Please note that there is no compensation for participation, though CSTA will cover travel expenses to the three convenings. This project is supported by the National Science Foundation under Award No. 2311746. For questions or more information, contact Bryan Twarek at bt@csteachers.org.

Thank you!

Bryan Twarek, CSTA, PI

Monica McGill, Co-PI

Friday, August 11, 2023

Do You Remember Struggling to Learn?

Dave Largent, a CS professor at Ball State University, had an important reminder on his blog -Dave's not here, or is he?: Teachers need to struggle to learn (davidlargent.blogspot.com) Our students often (usually?) struggle to learn new things. I think this is especially true in computer science. We as teachers with lots of content knowledge sometimes struggle to be empathetic. We forget our own struggles.

One if the things Dave struggled with on his trip through Europe was different languages and customs. It’s a reminder to me that many of our students come from different cultures, customs, and languages. It’s a good reminder that examples in American culture and English can add to the struggle. Being aware of where our students come from is important.

I often shared my own story of my first computer class. Greatly did I struggle in that first class. The first couple of projects were only completed with a lot of help from peers and TAs. Things came easier eventually and with a solid and broad base (I have been programming for 51 years now) most new topics are easier. But not always. Having those struggles is character building. And helps develop empathy.

I think that having new experiences that involve struggle to learn is a valuable experience for teachers (anyone really). It also helps us model life long learning for extra value. I encourage everyone to seek out learning experiences that do not come easy.

And above all, remember that our students struggle and we need to be patient with them and support them. Have a great school year!

Wednesday, July 12, 2023

Thoughts on CSTA Conferences Past and Present

I am attending the 2023 CSTA Conference online. I’m not writing blog posts about it the way I normally do. Lots of reasons for that but I will post some learnings from it later. I am downloading lots of presentation slides as notetaking.

But I wanted to take a few minutes to ramble about what has been going through my mind as I watch. One question I get a lot is: Why are your as a retired person still attending CSTA conferences and events. It’s a fair question. It's not as if I have a classroom in the fall to apply what I learn.

The truth is that the computer science education community has been a big part of my life for a long time It started online in listservs even before I was blogging and a while before there was a CSTA. It’s a part of my life that has spanned jobs – teaching and otherwise. I’d like to think I still have things to contribute. And personal value to gain. The conference bag on the right, from the CS & IT symposium in 2005, was not my first conference BTW. But I found it today and thought I’d add it.

The community started small. By the second or third conference it seemed like everyone knew everyone. That was good in some ways but for CS to grow the teacher community had to grow. Now I go to conferences and there are many people I don’t know. And others from the  past have retired and chosen not to be active anymore. I don’t blame them BTW. We all make the choices for how to spend our time and energy.

The growth has been good. Many on the current CSTA board have been members for only a few short years. They bring energy and ideas and innovation that is necessary for the future of the organization. They still listen to us old timers though. I am on the conference committee for next summer’s CSTA conference. I am excited about that work. So many new things in our field. So many new and diverse voices that we need to hear from.

Speaking of next year, the call for proposals for the 2024 CSTA conference is now open. I encourage anyone with interesting ideas to submit a proposal. The CSTA audience is the best and most responsive audience ever. It’s going to be in-person next year. Start hitting your school/district up for funding to attend. It can be life and career changing.

Tuesday, June 06, 2023

Conversations on AI in Education

Pat Yongpradit from Code.Org tweeted an image of what they are seeing in conversations about AI and Education. (The link on the image below goes to that tweet)

Now I am not having the detailed conversations with policy makers that Pat is but these boxes pretty much match what I am seeing in my social media these days. That bottom right hand box is where I’d like to see myself and others but it feels like people in power are more on the left hand column.

The usual tech bros are touting the AI can replace teachers line. We’re a long way from that and I am not sure we’ll ever be at a point where that is a good thing.

Lots of teachers are afraid of cheating. That’s not an unreasonable fear. There are pundits, some of whom are teachers, saying “just change the way you teach and all will be well,” I see a shortage of detailed information about just how to teach differently to avoid AI cheating. I think some of those people are fooling themselves if they think they have all the answers. Students are very good at finding new ways to cheat no matter what the assignments are.

The right hand column is where I think we need to be but there are more questions than answers there. Frankly, I think the technology is still to new and experience with it is to little to answer these questions with any strong level of confidence. We really need teachers to experiment with these tools in actual classrooms. That takes some freedom that doesn’t exist in as many places as we would like. Government and administrators in too much of the US are more interested in constraining what teachers do in the classroom than giving teachers freedom to develop new ways to teach.

The question is, are schools going to still look the way they did 100 years ago, as they do today, or are we going to see real change that uses technology to the fullest?

Monday, June 05, 2023

Let’s Try it and Find Out

Facebook memories reminded me of a frequent conversation I had with students. They would ask me what would happen if they tried something and I would answer “I don’t know. Let’s try it and see.” Students often expect teachers to know everything. Well, if they believe their teacher is a real content knowledge expert. Of course there is more to be known than can ever be known. This is especially true in a subject like computer science.

Too many students expect teachers to find answers to questions they have. That’s not the best way for them to learn. Trying things for themselves is a lot better. That’s why I loved to suggest that students try things for themselves. Encouraging students to try things for themselves and to experiment helps them grow more independent as learners. It also helps them develop their creativity.

This is similar to another exchange I used to have with students. I might say “One of us should look that up. You’re the student so I think it should be you.” Again, students who look things up for themselves remember information better,

Thursday, May 25, 2023

Coding With AIs Prompts Are Important

Last night, when I could not sleep, I got up and wrote some code. I added some features and data checking to my Wordle solver helper program. When I finished I felt good about my work and myself. I think that made it easier to get to sleep and I slept well.

It got me thinking this morning. When I was in university and still learning how to code I would occasionally get frustrated and feel less confident. So I would write some simple program to help me feel like I could actually code. I must have written code to display the multiplication table from 1 times 1 to 12 times 12 at least once a semester. It worked for me.

Now that is a trivial program but it involves nested loops (for me anyway) and I am not sure I would assign it to students today. It’s really a meaningless program in today’s world when everyone has a calculator app on the phone they don’t leave the house without.

I did wonder how an AI would write the code. So I opened the chat option in Bing and asked it “Write some C# code to display multiplication tables in a list box” It gave me some code that displayed this:






Not what I wanted at all. The problem is ambiguity! So I tried again with “Write some C# code to display the multiplication table from 1 times one to 12 times 12” and got this:

Not what I wanted either. So I specified at grid format “Write some C# code to display the multiplication table from 1 times one to 12 times 12 in a grid format”

This reply required a dataGridView object and the program did not work. Looks like I need to set up the dataGridView object in ways the AI did not explain. Now there is a problem worth thinking about. I asked Bing what settings I needed for the dataGridView and it gave me several. Program still did not work. At this point I gave up on the dataGridView option. It sort of feels like overkill anyway.

So I tried another prompt “Write some C# code to display the multiplication table from 1 times one to 12 times 12 in a grid format in a list box”

Finally I got what I wanted even though I am not thrilled with the formatting.

I’ve got a number of takeaways from this. Yes, students could use  these AI tools to get code for typical school assignments. On the  other hand, I think it would be fairly easy to tell when they do. The use of features that are not typically covered in class lectures or demos would be one clue.

It’s not always easy to provide the right prompts to the AI. Sometimes it takes some iteration. I think though, that teacher have to reduce ambiguity in assignment descriptions in many cases. Arguably some amount of ambiguity is helpful to allow for creativity. It can be a fine line,

As noted, I didn’t like to formatting so I did modify the code to get closer to what I wanted. I think programmers are going to be needed in a lot of cases to finish off what AIs generate. Both providing the right prompt and finishing off will be important skills for some time to come. Finishing off is going to require some serious skills in many cases BTW. Programming is not dead yet.

Saturday, March 18, 2023

Finding Words With All The Letters Programming project

Does anyone else lay in bed in the morning thinking about coding projects or is it just me? I’ve been playing around with a Wordle solver helper for a while now. It helps me find words based on what I know after each guess. One of the things I like to do is see how many possibilities there are based on different hints. Yesterday I had most of the letters but not in the right place. So this morning I was wondering about words that had the same letters but in different orders. Seemed like something I needed to write some code about.  

A key method is to compare all the letters in one string with the letters in a second string. At least the way I was thinking of handling it. It struck me that that is a great assignment for students. I don’t have any students handy so I asked ChatGPT to write that function. This is the prompt I gave it:

Write a C# function that accepts two strings and returns true if all of the letters in the first string are included, in any order, in the second string. Return false if any of the letters in the first string are not included in the second string.

That is a lot like what I would assign a student. ChatGPT gave me some very nice code. It wasn’t exactly like what I was writing in my head. It used foreach and ToCharArray which is probably the best and easiest way to do this. I was coding before either of those became common so my mind goes to for and while loops and the string SubString method. This was a good reminder for me.

I left the rest of the program, which wasn’t a lot of code, to myself.

Once written I had some fun with it. For example, the letters in Alfred also makeups the word flared. The letters in face are also used in café. Some groups of letters do not make up any words of course, This seems like it could be a fun project to give students. It was fun enough for me.