Skip to content

Module 2 Weekly Assignments

Hayden Gilbert edited this page Aug 19, 2022 · 6 revisions

Module-2 Weekly Assignments


Week 11

So far, you have stored data in memory in variables/arrays as well as various Collections (aka Data Structures) like ArrayLists and HashMaps. We have also seen the ability to persist this data to a file so it can be saved and loaded between program restarts.

Databases are another place we can persist data outside of our programs so that the data will still be there between program restarts. Databases offer quite a bit more power in terms of performance and expressing relationships between data to both store and retrieve that data. Databases offer a complementary language to storing and retrieving data called the Structured Query Language (SQL).

SQL allows you to manipulate the data while retrieving it in order to reduce the amount of data manipulation you have to do in Java. Sure you could get a list of sales data from your database and then use a Java loop to calculate the sum, but with SQL, you can get the sum at the same time you're retrieving the data which saves you time once you get the data in your Java application.

Handling data in our applications is great, but there is an endless amount of analysis that can be done on that data and it would be quite expensive to have to utilize a Java developer to visualize that data each time. As a result, there is another category of software called Data Analytics software that is primarily used by Data Scientists.

Finally, during Module 1, you learned a number of programming skills that probably have you looking at software you see in the world a bit differently (e.g. Yelp, Uber, or DoorDash) and thinking "how can I create this myself using Java"? Well, you are encouraged to think about databases the same way... how would you create PostgreSQL? We're going to touch upon some more advanced Java topics this week (and throughout the remainder of this program) that provide the building blocks and insights of how databases work under the hood.

For your first Tech Squad this week, you are required to complete the following (including the tutorial and quiz):

  • PostgreSQL
  • Intro to databases

For your second Tech Squad this week, you are required to complete the following (including the tutorial and quiz):

  • Ordering, limiting, and grouping

Be sure you have installed PostgreSQL and Postman as well as accepted the invitations to BootcampOS and GitLab so you're ready to tackle all of Module 2.

Happy querying!


Week 12

Querying data from a table in a database is very useful; however, did you know that your database can have more than one table? And that the data between those tables can be related to one another? Can you create a query for data that spans more than one table? Yes, yes you can!

You'll be learning about this as well as how to insert data into tables, update that data, and even delete data using SQL -- it's a powerful language!

You will also be introduced to Data Structures and Algorithms, specifically dynamic arrays (hint: you've used these before) and Linked Lists which is a different type of collection structure as compared with arrays. While you likely will not have to implement your own Linked List in the "real world", it is important to understand the node structure and the algorithms associated with this structure because it will give you a better understanding of how they work and if they will be the right structure for your solution. It is also important to understand the difference between an array-based vs a node-based structure as this is a common interview question: what is the difference between a LinkedList and an ArrayList in Java and when would you choose to use each?

For your first Tech Squad this week, you are required to complete the following (including the tutorial and quiz):

  • SQL Joins

For your second Tech Squad this week, you are required to complete the following (including the tutorial and quiz):

  • Insert, update, and delete

Happy querying!

Technical Skill Development

Learning Objectives

  • Define primary and foreign keys and explain how they are used in a relational database
  • Define common database relationships, like one-to-many, many-to-many, and one-to-one
  • Create statements that use the JOIN clause to select data from more than one table
  • Describe the use of INNER JOIN, OUTER JOIN, RIGHT JOIN, and LEFT JOIN
  • Use subqueries to select information from more than one table
  • Use an INSERT statement to add a row to a database
  • Use an UPDATE statement to modify a row in a database
  • Use a DELETE statement to delete rows from a database
  • Use transactions to group statements into atomic operations
  • Test WHERE clauses in UPDATE and DELETE before running them on a database
  • Define constraints on data using features of the database to verify the integrity of the data and referential integrity
  • Explain what a Data Structure is
  • Explain what Big-O notation is, how it is computed, and how it is used
  • Demonstrate how to create a Dynamic Array
  • Demonstrate how to create a LinkedList 16. List the differences between an ArrayList and a LinkedList
  • Complete: SQL Joins (~8 hours)
  • Complete: Insert, update, and delete (~8 hours)
  • Watch: Data Structures and Algorithms for Beginners (~2 hours)
  • Read: Difference between ArrayList and LinkedList (~25 mins)
  • Watch: Do you need to learn Data Structures and Algorithms? (~25 mins)
  • Weekly algorithm problem via HackerRank (~1 hour)
  • Take Notes on Individual Learning Progress (~15 mins)

Professional Skill Development

Learning Objectives

Topic: Cover Letters

  • Compose and maintain a cover letter that lands an interview throughout career
  • Identify the differences between a poorly constructed and high-quality cover letters

Week 13

So far you've been learning to use a database with pure SQL. This week, you're going to learn how to design your own databases as well as how to access a database from a Java application.

You will also be working with your partner on your first Pair Programming assignment for this module focused on databases. For your first Tech Squad this week, you are required to complete the following (including the tutorial):

  • Database design

For your second Tech Squad this week, you are required to complete the following (including the tutorial and quiz):

  • DAO pattern

Technical Skill Development

Learning Objectives

  • Define normalization in context of a relational database
  • Use CREATE statements to define the tables of a new database
  • Use constraint statements to ensure data integrity of a database
  • Describe how users and user permissions can be used to limit access to a database and its tables and actions
  • Define Data Access Object and explain why it is good for decoupling code
  • Write a DAO for accessing data in a file
  • Explain CRUD in terms of DAO
  • Identify functionality that belongs in a DAO (and which doesn't)
  • Inject DAO code into a controller
  • Define and explain the use of Dependency Injection
  • Understand the implications of the Singleton pattern when used with DI
  • Explain how the Tree data structure is built using nodes
  • List 3 tree traversals
  • Describe the difference between Linear search and Binary Search
  • Complete: Database design (~6 hours)
  • Watch: How to design your first database (~25 mins)
  • Complete: DAO access and DAO (~8 hours)
  • Complete: DAO testing (~2 hours)
  • Watch: Data Structures: Trees (~25 mins)
  • Complete: Pair Programming Assignment #1 (~8 hours)
  • Watch: Linear Search (~25 mins)
  • Watch: Binary Search (~25 mins)
  • Watch: Algorithms: Binary Search (~25 mins)
  • Watch: Imposter Syndrome (~25 mins)
  • Take Notes on Individual Learning Progress (~15 mins)

Merit America Java Development Boot-Camp

Clone this wiki locally