Algorithms

  • CodingBat Recursion Exercises
    http://codingbat.com/java/Recursion-1

    Basic and advanced recursion programming exercises in Java to help you " think recursively ".

  • Computer Algorithms @ Khan Academy
    https://www.khanacademy.org/computing/computer-science/algorithms

    Self-paced course that introduces basic algorithms, binary search, sorting algorithms, asymptotic notation, recursion, and graphs. Includes many programming exercises. NOTE: exercises are in JavaScript.

  • Genetic Algorithms (geeksforgeeks)
    https://www.geeksforgeeks.org/genetic-algorithms/

    Tutorial explaining how genetic algorithms work. Includes a relatively simple and well-documented example coded in C++ and Python.

  • Genetic Algorithms Tutorial
    https://www.tutorialspoint.com/genetic_algorithms/index.htm

    A multi-part tutorial from TutorialsPoint explaining how genetic algorithms work. Covers all facets from population selection, fitness functions, parent selection, crossover, mutation, and more.

  • Introduction to Genetic Algorithms
    https://towardsdatascience.com/introduction-to-genetic-algorithms-including-example-code-e396e98d8bf3

    Helpful tutorial by Vijini Mallawaarachchi that explains how genetic algorithms work. Includes a generic example coded in Java.

  • Jenkov: Java Collections Tutorial
    http://tutorials.jenkov.com/java-collections/index.html

    Tutorial on Java's bulit-in data structures, including the ArrayList, HashMap, and SortedMap classes covered in the CS218 Java Programming and CS216 Data Structures courses

  • Red/Black Tree Visualization
    https://www.cs.usfca.edu/~galles/visualization/RedBlack.html

    Animated tutorial from the University of San Francisco demonstrating how red-black trees work. Allows you to insert, delete, and find nodes in a red-black tree.

  • Sorting @ VisuAlgo
    https://visualgo.net/en/sorting

    Tutorials and examples of several sorting algorithms. Uses both visualizations and synchronized code snippets to help you better understand how the algorithms work.

  • Sorting: Bubble Sort Algorithm (mycodeschool)
    https://www.youtube.com/watch?v=Jdtq5uKz-w4

    Video tutorial explaining in detail how the bubble sort algorithm works. Builds up the pseudocode for the algorithm, as well as discusses the time complexity of the algorithm in Big-O notation.

  • Sorting: Quicksort Algorithm (Joe James)
    https://www.youtube.com/watch?v=Fiot5yuwPAg

    Video tutorial by Joe James that walks you through how the basic quicksort algorithm works, as well as the Java implementation of quicksort. Also discusses the pros and cons of choosing a certain array items as pivot values.