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!

Technical Skill Development

Learning Objectives

  • Define what a Relational Database Management System is
  • Use a GUI application to connect to a local database
  • Write and execute simple select statements using SELECT, FROM, and WHERE
  • Define the terms table, row and column in relation to a database
  • Look up metadata information about a database in the GUI application
  • Use functions like CONCAT and ABS to perform simple operations on selected data
  • Create aggregate information using GROUP BY to group rows together
  • Use aggregate functions like AVG, SUM, COUNT, MIN, MAX
  • Use the ORDER BY clause to order results from the database
  • Use the LIMIT clause to limit the number of rows returned by the database
  • Explain how Generics are used in Java's Collections classes/interfaces
  • Explain how to create your own Generic class
  • Explain how instance equality works in Java and the significance of the equals() and hashCode() methods
  • Demonstrate how to create an Anonymous class in Java
  • Use Comparable/Comparator to sort objects in a Java Collection
  • Complete: Software Installation (~1 hour)
  • Complete: PostgreSQL (~2 hours)
  • Complete: Intro to databases (~8 hours)
  • Complete: Ordering, limiting, and grouping (~8 hours)
  • Watch: SQL & Data Analytics for Beginners (~25 mins)
  • Watch: Java Generics (~25 mins)
  • Watch: Overriding equals() and hashCode() (~25 mins)
  • Watch: Anonymous classes (~25 mins)
  • Watch: Comparable/Comparator (~25 mins)
  • Take Notes on Individual Learning Progress (~15 mins)
  • Weekly algorithm problem via HackerRank (~1 hour)

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)

Week 14

During this light week, you will get introduced to HTTP and how the Internet works. This is an important foundation to creating applications that communicate over the internet. Think about your mobile banking or using email -- you will hopefully have a much better understanding of how these web applications communicate between your phone/browser and their servers.

You will also get a further look at Algorithms this week. You'll be introduced to a few Sorting Algorithms as well as some tips and tricks to consider when attempting coding challenges (both in Technical Interviews as well as the HackerRank problems you'll continue to face in this program).

Dedicate the first part of your week to solving the Pair Programming assignment with your partner so you have ample time to review the content presented this week as well as catch up on materials from the prior week you feel needs further review.

Although we won't have Technical Squads this week, you will have Technical Small Group coaching sessions and your trainers are available on Slack to support you and answer any questions (conceptual or technical).

Happy coding!

Technical Skill Development

Learning Objectives

  • Explain the purpose of IP Addresses, DNS, Ports, HTTP, TLS
  • Identify and explain the purpose of the main components of HTTP, including Methods, Resources, Headers, Request Body, Status Codes, Request / Response (Stateless)
  • Explain the steps of a typical HTTP request between a web browser and a server
  • Explain what a GET request is used for
  • Recognize that a 2xx Status Code indicates "success"
  • Make an HTTP GET request using Postman and inspect the result
  • Explain how Bubble Sort works
  • Explain how Merge Sort works
  • Explain how Quick Sort works
  • Complete: Data Security (~3 hours)
  • Complete: Networking and HTTP (~4 hours)
  • Watch: HTTP and the Web (~15 mins)
  • Complete: Postman (~1 hour)
  • Watch: Algorithms: Bubble Sort (~15 mins)
  • Watch: Algorithms: Merge Sort (~15 mins)
  • Watch: Algorithms: Quick Sort (~15 mins)
  • Complete: Pair Programming Assignment #2 (~8 hours)
  • Weekly algorithm problem via HackerRank (~1 hour)
  • Take Notes on Individual Learning Progress (~15 mins)

Professional Skill Development Learning Objectives

Intro to Interview

  • Learners will be able to identify job interview best practices
  • Learners will be able to differentiate between types of interviews and interviewers
  • Learners will be able to identify and evaluate strategies for successfully managing their personal presentation (e.g. dress code, nonverbal communication) in interviewing
  • Learners will be able to successfully employ trusted formats to answer common interview questions
  • Learners will be able to identify and respond to a behavioral interview questions

Week 15


Week 16


Week 17


Week 18


Week 19

Merit America Java Development Boot-Camp

Clone this wiki locally