This course will build on the skills you learn in Java Programming: Solving Problems with Software. You will continue to expand your programming skill set to read and manipulate data with more complex structure. You will also write programs with more complex structure. By the end of this course, you will be able to: 1. Read and write data from/to files; 2. Solve problems involving data files; 3. Perform quantitative analyses of data (e.g., finding maximums, minimums, averages); 4. Store and manipulate data in an array or ArrayList; 5. Combine multiple classes to solve larger problems; 6. Use iterables and collections (including maps) in Java.