Intro

“Java is the foundation for virtually every type of networked application and is the global standard for developing and delivering embedded applications, games, Web content, and enterprise software… Java enables you to efficiently develop and deploy exciting applications and services” - Oracle

WPILib officially supports Java, C++, and LabView to program FRC robots. We use Java because it is more accessible to beginner programmers than C++, taught by our AP Computer Science class, and isn’t a visual based language like LabView.

Here are the slides for our 2019 “Intro to Java” Workshop for our rookie members.

MIT Course

In the past, we’ve loosely followed MIT Course 6.092 to teach Java to rookie members.

MIT Course 6.092, “Introduction to Programming in Java”, offered online for free on MIT OpenCourseware is a great way to learn Java. The online course includes lecture notes and appropriate assignments. We recommend going through all lectures (1 - 7). The later lectures (4 - 7), overlap with our OOP section, so you may go through those in conjunction.

MIT OCW Introduction to Programming in Java

You will learn about data types, conditionals, loops, arrays, OOP principles, good practices, and more. Some of the topics won’t be as relevant in FRC programming, but they’re good to know anyways.

If you have already gone through APCS at Lowell, this course may serve as a refresher.

Supplemental Information

These resources and tutorials may supplement your learning of Java for your own learning pleasure.

  • Codecademy is a more interactive way of learning. One drawback however is that you learn mostly syntax and don’t get to apply it or see the big picture.
  • Home and Learn is similar to the MIT course and adds in strings, java forms, working with databases, and more.

If you want to earn college credit, City College of San Francisco offers three levels of programming courses - the latter two with Java specialization. I recommend jumping straight to CS 111C if you’re already comfortable with APCS.

  1. CS 110A Intro to Programming
  2. CS 111B Programming Fundamentals: Java
  3. CS 111C Data Structures & Algo: Java

It is good to know that Java isn’t perfect, and no programming language really is. Java isn’t well suited for low level code; abstracts how the language and VM works; and enforces object orientation; to name a few. There’s a Wikipedia article on the Criticism of Java.

Tags: programming
Edit me