Engaging Java Tools for Beginners

Engaging Java Tools for Beginners

As I’ve looked for new ways to engage today’s students, I don’t feel we can underestimate the types of technology students’ interface with on a regular basis. You may have read me say this before, but the first program being “Hello World” may have been fascinating to us when learning to program many years ago, but I don’t think a simple “Hello World” program will catch a students’ attention today. Today’s programming students are consistently interfacing with much more sophisticated programs through social media or playing games with programs like Game Pigeon - what my teenaged daughter is currently playing with a friend on her iPhone.

When I was teaching, the first week of school was drop-add week. Engaging my students during the first week of school was critical to keeping them. More importantly, I wanted to foster a love for computer science and show my students what they could accomplish with this powerful tool. The challenge? Doing this with students who hadn’t written a single line of program code.

Here are a few techniques I used over the years:

  • In AP Computer Science A (#APCSA), I used the GridWorld case study (long retired now). It was graphical and allowed me to slowly introduce concepts, while students were making real, visual things happening.
  • In my non-AP course, I would sometimes start with Greenfoot (https://www.greenfoot.org/door), which allowed students to have an experience similar to GridWorld. It was an early introduction to objects, method calling, and later loops, and conditionals.
  • Other times, I would use Lightbot (https://www.silvergames.com/en/light-bot) , which got students thinking through algorithms and learning about calling methods, parameter passing, loops, and conditionals.
  • I also loved using Alice (https://www.alice.org/get-alice/alice-3/) with beginning students. Through Alice, I was able to introduce an entire host of object-oriented concepts with students. Once these students moved on to Java, I would refer back to Alice and help them make connections.

Recently, I wrote a program as part of a case study for a very basic rewards app. Love them or hate them, most people have a rewards app that they use to earn points and deals. These are in restaurants, grocery stores, and all sorts of places. The idea of this project is to give students a starter app and have them do two things:

  1. upgrade it to the latest in #Java; and
  2. improve the app

The improving part could mean adding new functionality or students can explore other areas of computer science like data science to deal with a large customer base, machine learning to look for patterns in the data to offer more customized deals, or protect customer privacy by increasing app security. My app isn’t very secure to begin with by design. (Contact me if you want to know more about this case study project and the pilot we are coordinating.)

?After writing the case study as a text-based program, I realized how unrealistic it was compared to all the other rewards apps that are installed on my phone. I wanted to make it a bit more realistic by incorporating graphics and clickable elements like buttons. I started to re-write the program with #JavaFX. JavaFX can be cumbersome to get started with, but with IntelliJ (https://www.jetbrains.com/idea/) and a the FXML Manager plug-in (https://plugins.jetbrains.com/plugin/14854-fxmlmanager) for the scene builder you can update the controller file from the scene builder FXML easily. Then add your program code into the controller file for each action to interface with the user. Using the scene builder reminded me a lot of using Visual Basic many years ago. It felt intuitive and easy to introduce to students.

What tools are you using to incorporate graphics with your students?

Ruben Gamboa

Computer Scientist, Educator, Amateur Astronomer

4 个月

RIght on, Crystal. When I started learning how to program, we used punch cards, but never mind that. We quickly moved on to interactive programs that used a console, with a UI of the form "here are 5 choices, which do you want to do (1-5)?" The point is that all the programs I *used* on the computer had yhe same console-based UI, so I felt like my hello-world program really was the kind of program that I normally used. Today's students don't have that. I think it's crucial that beginning students learn to program in the context of programs like the ones they use, so graphics, sound, images, text, videos -- they don't have to write from scratch, but the result needs to look like a "real" program. My favorite is from the bootstrapworld.org curriculum, where the students updated a variable y and got to see a rocket take off in their screen!

要查看或添加评论,请登录

Crystal Sheldon的更多文章

  • Local-Variable Types and AP CSA

    Local-Variable Types and AP CSA

    When I first heard of using var, I didn't quite understand why we would want to use it. After all, one of Java's…

  • Local-Variable Type

    Local-Variable Type

    When I first heard of using var, I didn't quite understand why we would want to use it. After all, one of Java's…

  • Conditionals Series: Switch Expressions and the AP CSA Free Response Questions

    Conditionals Series: Switch Expressions and the AP CSA Free Response Questions

    Looking for a refresher on Switch Statements and Switch Expressions? Check out my article here. If you are an #APCSA…

  • Conditionals Series: Switch Expressions - Determining a Value

    Conditionals Series: Switch Expressions - Determining a Value

    Before we look at #SwitchExpressions, lets take a few moments to explore #SwitchStatements and the difference between…

  • Conditionals Series: Switch Statements

    Conditionals Series: Switch Statements

    What are switch statements used for? Switch statements are often used when you have a menu of options to choose from…

  • Conditionals Series: Ternary Conditional Operator and the APCSA Free Response Questions

    Conditionals Series: Ternary Conditional Operator and the APCSA Free Response Questions

    Ternary Conditional Operator and the AP CSA FRQs Ternary Conditional Operators are OUTSIDE the #APCSA Java Subset…

  • Conditionals Series: Ternary Conditional Operator - Beyond if Statements

    Conditionals Series: Ternary Conditional Operator - Beyond if Statements

    What is the Ternary Conditional Operator? The #ternaryConditionalOperator results in a value based on whether a…

  • AI and Programming Education

    AI and Programming Education

    I first experienced #ChatGPT, when I was the course lead for AP Computer Science Principles (#APCSP) at the College…

    5 条评论
  • Let's Play with Java in the Java Playground

    Let's Play with Java in the Java Playground

    Sometimes you just want a tool that you can try a little code out in and see what it does. As you tweak and change it…

    6 条评论
  • Engaging Starts to Intro to Java

    Engaging Starts to Intro to Java

    Today’s students have been carrying around a computer in their pocket, probably since they were in elementary school……

社区洞察

其他会员也浏览了