Use our coupon code KTSUMMER20 by May 16 to get 20% off a summer course!

Algorithms and Problem Solving in Java

[CORE 5a]

Full Course

$1538 USD
Before any discounts or coupons
for 18 hours and additional live student help hours

Class Description:

[CORE 5a] teaches students computer science through Java at an early university level. Students learn through hour-long lectures and weekly graded homework. Most students will find it necessary to to attend our student help hours for help. After about a year students will be well-prepared for the AP Computer Science exam.

Prerequisites:

[CORE 4b] or permission of instructor

Related Classes

Syllabus

Functions

Students begin by reviewing the concept of functions, which are essentially labeled pieces of code that enable a programmer to reduce redundancy in their programs. Students will review the various components of a function, including input/output types. Finally, after completing several challenging practice problems, students work on a demo involving animated graphing.

Loops 1

In this lesson, students first review their understanding of for and while loops. Afterwards, students complete practice exercises that are more challenging than the loop-based problems they have encountered in previous classes. Students finish the lesson by completing the animated graphing demo from Lesson 1.

Loops 2

This lesson serves as a continuation of the previous lesson. Students learn about general loop applications and work on even more challenging exercises. To finish off the lesson, students implement a dice rolling demo.

Arrays 1

In this lesson, students learn about arrays, which are data structures that store elements of the same type in a single contiguous memory block. Then we'll cover how to apply concepts from previous lessons (for-loops, functions, etc.) in conjunction with arrays to solve challenging problems. Finally, students work on a creative demo involving flower genomics.

2D Arrays

In this class, students learn about 2-dimensional arrays, which store data in a grid formation with rows and columns. Students also review important skills such as creating 2-dimensional arrays as well as looping through 2-dimensional arrays and some basic algorithms. To test their understanding, students implement the classic game Connect4, which appropriately stores game chips in a grid structure.

Loops and Arrays Review

This lesson is dedicated to review of concepts from the previous five lessons. The instructor will answer all questions that students bring to class so that students will be adequately prepared for the quiz in Lesson 7. To finish the lesson, students complete practice problems as well as a Game of Life demo.

Quiz 1 - Loops and Arrays

In this lesson, students will take a quiz that tests their knowledge of concepts from the first five lessons of the semester.

Recursion - Fern

In this lesson students learn about recursion, a technique where a function calls itself to solve smaller instances of the same problem. Students learn about critical components of recursive functions, such as base and recursive cases. To finish the lesson, students implement a tree-like fractal pattern that changes angle, length and hue as the ferns of the tree expand outwards.

Recursion 2 - Parameterization

In this lesson, students deepen their understanding of recursion with more complex examples. Students also learn how to recurse through an array without a loop by simply passing the current index into a recursive function as a parameter. Finally, students begin implementing the Tower of Hanoi puzzle.

Recursion 3 - Towers of Hanoi

This lesson focuses on the applications of recursion. Students begin by finishing their implementations of the Tower of Hanoi puzzle. Then (time permitting) they learn merge sort- their first sorting algorithm! This approach divides an entire array into smaller subarrays, recursively sorts them, and then merges the sorted subarrays to reproduce the sorted original array. Students finish the lesson by writing code for the Koch fractal.

Recursion Review and Flood Fill

This lesson serves as a recursion review before the second quiz. Students practice with concepts they have learned in the previous three lessons. If there is time after review, students will learn about floodfill, an algorithm that recursively explores cells in a grid until a termination condition is met. Students will also examine some popular applications that utilize floodfill, such as Minesweeper and Microsoft Paint.

Quiz 2 - Recursion (no Floodfill)

In this lesson, students take a quiz on concepts in recursion that they have learned over the previous four weeks. Note that the quiz does not cover floodfill.

String and Char

Classes

ArrayList and References

Collections

Review

Quiz 3 - Classes, References, and Collections