To paraphrase Chef Gusteau (Ratatouille, 2007): “Anyone can code”. All that you need is determination, and an open mind. Programming usually has a steep learning curve, so do not become discouraged if some of the assignments take a while to complete. After the completion of these assignments, you will be more than ready to tackle programming the robot, and be prepared to continue learning about programming.
These are assignments mirroring those in a college intro to programming course. Be prepared to spend time going through the material and doing the work.
Feel free to move through the course at your own pace, and to ask James any questions.
Also, a C++ textbook is also included for those who are interested in learning C++, and about some computer science concepts such as ADTs and Search / Sorting algorithms. This is the book being used to teach my Computer Science 2 class.
I HIGHLY recommend that everybody reads at least Chapter 1 of this book as it introduces you to good design practices.
To do a lab, clone this repo and create a new branch for your work, and then place each project within that lab folder.
- Install Java and JDK
- Install VS Code
- https://code.visualstudio.com/download (Select user installer, and your PC is PROBABLY 64-bit)
- FRC Instructions for Getting Started with VS Code: https://wpilib.screenstepslive.com/s/currentCS/m/79833/l/932382-installing-vs-code
- Install Git and Github
- Git Tutorial
A PDF copy of a useful textbook is provided in this repository. Before attempting a lab, read through the chapters specified in the lab list. It is recommended to take basic notes for future referral and study.
To complete these labs, clone the LearningJava repository and create a branch with your name. Place your code in the appropriate lab directory. At some point I will add in a program to each lab which will test your creations. Until then, I will check them myself. Send me a message on slack when you need something checked. Copy/Paste your project the folder for each lab, or create/open it there. Ignore the "Completion" Sections.
- Lab 1 - Fundamentals (Chapter 1, 2, and 5)
- Lab 2 - Decision Structures (Chapter 3)
- Lab 3 - Loops and Files (Chapter 4)
- Lab 4 - First look at Classes (Chapter 6)
- Lab 5 - Arrays (Chapter 7)
- Lab 6 - Classes Revisited (Chapter 8)
- Read Chapter 9. No Lab
- Lab 7 - Inheritance (Chapter 10)
- Lab 8 - Exceptions and Advanced File I/O (Chapter 11)
- Lab 9 - GUI (Chapter 12)
Also, try reading Chapters 16 and 17. Assignments may be added for them later
- Java Tutorial: https://www.tutorialspoint.com/java/
- Using Java in VS: https://code.visualstudio.com/docs/languages/java
- Learn Programming in 10 Years (Peter Norvig, Director of Research at Google)http://norvig.com/21-days.html
- Good Java Resource https://www.amazon.com/Effective-Java-Joshua-Bloch/dp/0134685997/ref=sr_1_1?ie=UTF8&qid=1540571053&sr=8-1&keywords=Effective+Java
- Very Advanced Book (but extremely informative if you are interested in CS) https://www.amazon.com/Elements-Computing-Systems-Building-Principles/dp/0262640686