Reading List for CSCI 1302
Read and take thorough notes on the following:
-
1302 Reference Variable Refresher
Read the section titled "Reference Types Overview". For now, you can skip everything after Example 3 (unless you're curious!). This short reading addresses some misconceptions we've seen from students about prerequisite knowledge that we've seen in past semesters. Please read it carefully and ask any related questions on Piazza.
You should complete one of the setup instructions provided below before you begin:
Complete the setup instructions below for Odin:
Read and take thorough notes on the following:
Note: You are encouraged to try the commands mentioned in the reading using a local terminal in your terminal emulator (set up in the previous step). Some of the file and directory structures assumed by the reading are specific to the institution hosting the reading, however, the general commands will still work. You are always encouraged to experiment.
-
Unix Tutorial One, Two, Three, and Four
- In Tutorial Two, the instructions for 2.1 have you copy a file called science.txt. This file is not available under the path provided by the tutorial. To partially mitigate this, we encourage you to download the file into your home directory, then copy it from there:
$ cd $ wget http://www.ee.surrey.ac.uk/Teaching/Unix/science.txt $ cd ~/unixstuff $ cp ~/science.txt .
We recommend following along with the tutorials on odin instead of your local machine. If you haven't already completed the Odin setup tutorial, you should do so before continuing.
Note: This reading teaches you how to write/modify source code and then compile and run it in a Unix environment. To be successful in 1302, you need to master the concepts described in this reading as all future projects/exercises depend on it.
Read and take thorough notes on the following:
- Emacs Tutorial
- Emacs Reference Card
- We recommend you print the Emacs reference card
- CSCI 1302 Package Tutorial
- The 1302 Package Tutorial explains how to compile code in a UNIX environment.
Read and take thorough notes on the following:
Read, watch, and take thorough notes on the following:
Read and take thorough notes on the following:
- Javadoc and API Documentation Tutorial
- 1302 Code Style Guidelines
- Make sure you complete the setup for checkstyle and create the proper configuration file for emacs (or vi).
Read and take thorough notes on the following:
- CONSIDER CHANGING THIS - change to instead be an interface example with the Java List interface. Have them write a program that uses the interface and then allow them to plug in different interface implementations (ArrayList, LinkedList) seamlessly. The application could be a shopping list, for example. Would help the students see the driver program side early which might help them with project 2 (listadt).
Read and take thorough notes on the following:
Read and take thorough notes on the following:
Note to self: Exercise 09 uses UML. Consider moving that reading up here. Read and take thorough notes on the following:
- 1302 Variable Refresher
- This short reading addresses some misconceptions we've seen from students throughout the semester. Please read it carefully and ask any related questions on Piazza.
- Pro Git Ch. 1.1--1.4 and 1.7
Read and take thorough notes on the following:
Read and take thorough notes on the following:
Read and take thorough notes on the following:
We highly recommend reading the following closely for a second time:
Read and take thorough notes on the following:
- The Object Class
- The extremely short and infinitely beneficial 1302 Scripts Tutorial
- Common reaction to this reading: "Whoa!"
Read and take thorough notes on the following:
- 1302 Generic Classes Tutorial
- The Java™ Tutorials: Why Use Generics?
- The Java™ Tutorials: Generic Types
- The Java™ Tutorials: Raw Types
Read and take thorough notes on the following:
Please Note: A branch's history does not begin at its branching point. The commit history of a branch includes the latest commit in the branch as well as all commits that can be reached by tracing backward through the commit history (even through branching points). When tracing a branch's history using the graphical log output (--graph), you should not stop at the point where the branch name was created (or any other branching points).
Read and take thorough notes on the following:
- 1302 Generic Methods Tutorial
- The Java™ Tutorials: Generic Methods
- The Java™ Tutorials: Bounded Type Parameters
- The Java™ Tutorials: Generic Methods and Bounded Type Parameters
- The Java™ Tutorials: Generics, Inheritance, and Subtypes
Read and take thorough notes on the following:
- The Java™ Tutorials: Lambda Expressions: Ideal Use Case for Lambda Expressions (through the end of the "Approach 5" sub-section)
- Package java.util.function Description (familiarize yourself with the classes and interfaces)
- @FunctionalInterface API Documentation (read this entire page; it's roughly one paragraph)
Read and take thorough notes on the following:
- The Java™ Tutorials: Lambda Expressions
- This reading is a continuation of last week's reading on lambda expressions. Make sure you go through each of the nine approaches carefully, type out the code for each method, call the methods to test them, take notes, and write down questions.
- The tutorial provides a link to all of the code used in the examples. If the code you type out isn't working properly, you can use this as a reference.
Read and take thorough notes on the following:
- CSCI 1302 Generic Types Tutorial
- This is a brief exercise that should clarify some of the questions brought up in last week's exercises on generics.
- Project 3 Description
- GenList API Documentation
Read and take thorough notes on the following:
- Method References
- Project 3 Description
- GenList API Documentation
- Yes, we want you to read through this again.
- Lambda Expressions
- We want you all to read this tutorial one more time (at least). Understanding lambda expressions is vital to working with JavaFX Graphical User Interfaces.
JavaFX is a set of graphics and media packages that enables developers to design, create, test, debug, and deploy rich client applications that operate consistently across diverse platforms.
Please fully engage with the following readings related to JavaFX:
- CSCI 1302 JavaFX Starter Tutorial
- This is critical to run GUI applications on Odin. This is also critical for the next project so each individual needs to complete it.
- javafx.application.Application API Documentation
- Carefully read the introduction and compile/run the example code on Odin.
Fully engage with the following, including each class's class-level documentation (which often includes great examples) and each class's inheritance hierarchy (which often provides classes with a lot of useful inherited members):
- javafx.scene.image.ImageView API Documentation
- Execute the sample code on Odin.
- You will need to wget the flower image found here.
- javafx.scene.layout.HBox API Documentation
- Make sure you understand all sample code as it will be useful in the class exercises and projects.
- javafx.scene.layout.VBox API Documentation
- Make sure you understand all sample code as it will be useful in the class exercises and projects.
- javafx.scene.control.TextField API Documentation
Read and take thorough notes on the following:
Read and take thorough notes on the following:
- CSCI 1302 Thread Tutorial
- Project 4 Description
- Pay close attention to the entire project description, especially the part about threads and the Google Gson library for parsing JSON.
Read and take thorough notes on the following:
- CSCI 1302 Maven Tutorial
- CSCI 1302 Streams and Chaining Tutorial
- The bulk of this material should not be new to you as you've already implemented and used the majority of the Stream methods (map, filter, reduce, etc) in your GenList project. When we use Java Streams we are using similar methods where the implementation is already provided.
- For example, these two code snippets result in the same value:
- List integers = ... // list containing {1, 2, 3} created.
- Integer reduced = integers.stream().reduce(23, (a, b) -> a + b);
- GenList glIntegers = ... // genlist containing {1, 2, 3} created.
- Integer glReduced = glIntegers.reduce(23, (a, b) -> a + b);
- Optional Further Reading: Sitepoint Java 8 Streams Introduction
Read and take thorough notes on the following:
Read and take thorough notes on the following:
Read and take thorough notes on the following:
- CSCI 1302: Setting up your Own GitHub Account
- This requires you to apply for a free student account which can take some time to be approved. Please plan ahead to have this done for later exercises.
- Laurie A. Williams and Robert R. Kessler. 2000. All I Really Need to Know About Pair Programming I Learned in Kindergarten. Commun. ACM 43, 5 (May 2000), 108-114.
- Gregory Goth. 2016. Pair Programming is still Vibrant. Commun. ACM: ACM News (April 14, 2016).
- Optional (includes audio version): James Somers. 2018. The Friendship that made Google Huge. New Yorker. Conde Nast. (December 10, 2018).
Read and take thorough notes on the following:
Fully engage with the following again (in particular, pay attention to the tricky example involving a logarithm as well as the section on space complexity):
Read and take thorough notes on the following:
Copyright © Michael E. Cotterell and the University of Georgia. This work is licensed under a Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International License to students and the public. The content and opinions expressed on this Web page do not necessarily reflect the views of nor are they endorsed by the University of Georgia or the University System of Georgia.