jGRASP
I use jGRASP for grade 10 and the beginning of Grade 11. This forces the learner to code from first principles. I have noticed that universities use jGRASP, NotePad++, and even Notepad for their first-year students (thus following the same path of “first principals”). I use Gogga (“it.jar” as per the Funworks textbooks to teach a lot of the advanced principles to my grade 10 eg loops, nested loops, class methods, instantiation, object methods, constructors, parameters, etc). Gogga is easy to implement with jGRASP. The learners really enjoy Gogga especially when I point out that the method of coding is exactly the same as for coding a drone – except that our drone is on the computer screen and not in the air.
jGRASP also avoids the concepts of Projects and Packages which is nice. Projects and packages make little sense when you are learning to code (code 101) with one-class programs with only a main method.
NetBeans makes projects, packages and renaming (refactoring) of classes too difficult for grade 10 learners to grasp.
Alternative: You can also use BlueJay for grade 10s as well. It teaches them to code in blocks better than the others do.
NetBeans
NetBeans begins to make sense with multi-class programs – a UI class, a manager class and one or two objects classes from which to instantiate objects. Then having a project and a package makes better organizational sense.
I encourage my learners to have only one project for the year “grade12-2021” for example. That way they can easily copy all their work onto a flash drive and take it home to their personal laptop computer. I just teach them how to change from one main method to another using the “Properties, Run” setting on the project.
In order to match the textbooks and other “teacher” resources, I have remained with jdk8 SE (which ships with NetBeans 8 as standard). We continue to use NetBeans 8 for the balance of grade 11 and grade 12. I also encourage students to install jdk8 SE on their laptops so that we are all on the same version. You can download jdk8 SE from the Oracle website or get a copy from me.
This also makes JFRame form easier to teach because it matches the textbook exactly (I also use the textbook “Java Made Easy” by Georgina Ramsamy which has a great JFrame GUI approach to Java.
SQL
One of your biggest challenges is which database to use for their PATS i.e. Ms Access**, MYSQL or MariaDB. Personally, I have opted to use SQLite because you can embed your database directly into your Java program ie no running SQL virtual server needed. Our ADvTech computers here in the computer lab will not support virtual servers running in the background for security reasons. Therefore for their grade 12 PATS they cannot connect to the server even using ucanaccess (as recommended by other computer teachers). SQLite avoids this problem.
** Ms Access is fine for teaching SQL queries, even database design, but I cannot use it for the PAT work where the SQL database must work together with the Java code.