Software Installation: Java, Visual Studio Code, and Git
We will use Java, and specifically Open JDK 17 (the most recent JDK with long term support), for programs in this class. We will develop programs using Visual Studio Code (plus some extensions), and we will use Git for version control and submission. All of this software is free.
Follow detailed installation directions here to install, setup, and get oriented to this software.
Some useful VS Code and Git documentation:
- Visual Studio Code documentation. The official intro to VS Code can be found here. You may find the following to be useful in getting to know VS Code.
- Git cheat sheet
Zybook
We use an enhanced online textbook called a zyBook that is (a) cheaper than a traditional textbook, (b) has more concise text, and (c) includes interactive examples, demos, and participation activities to check your understanding. A subscription is $58 and provides immediate access. Subscriptions will last until May 26, 2023. To purchase, follow the steps below.
1. Sign in or create an account at learn.zybooks.com
2. Enter zyBook code: DUKECOMPSCI201FainSpring2023
3. Subscribe
Java from Python Resources
201 is not an introductory programming course, and we will not spend much time re-teaching introductory programming concepts like basic data types, variables, conditionals, loops, input/output, functions, imports, and running programs – you are expected to be familiar with this material (if you are not, Compsci 101 is the course for you). However, you may have studied these topics in a different programming language than Java, most likely Python if you took introductory programming at Duke. Translating what you know to a new language can be challenging at first but is very rewarding in the long run, and we have resources to help.
If you are coming to Java programming for the first time from Python, you might find the free online Java4Python extended introduction to Java programming to be extremely helpful in getting oriented. We also have a very brief primer on differences between the two languages. The first 7 chapters of the zyBook also review these introductory materials. Practice will help as well, so have patience. By the end of the semester you will be at least as comfortable in Java as Python.
Alternative Java, Data Structures, and Algorithms References
The Java API documentation should be your primary reference for core Java packages such as util. Search here for information about, for example, the methods available to ArrayList, LinkedList, HashSet, HashMap, etc.
For online references and learning supplements on the Java programming language, you might consider: Learning the Java Language Trail of the Java Tutorials. Java is an extremely common language and there are many other resources available on popular sites such as YouTube, Udacity, etc., which you are welcome to use to learn.
Some of you might prefer a more traditional physical textbook that you can keep and use as a reference. This is not required, and we will not directly follow this book, but for those interested we recommend Algorithms by Sedgewick and Wayne as an excellent reference text.
Old Midterm Exams and Solutions
You can find several year’s worth of midterm exams and solutions here to use to study.