From charlesreid1

No edit summary
 
(5 intermediate revisions by the same user not shown)
Line 15: Line 15:
* Systems - operating system level, concurrency, threads, processing, memory.
* Systems - operating system level, concurrency, threads, processing, memory.


Links: [[Template:AlgorithmsFlag]]


=Week 1=
=Week 1=
Line 21: Line 22:
* [[Merge Sort]]
* [[Merge Sort]]
* [[Quick Sort]]
* [[Quick Sort]]
=Week 2=
==Week 2A==
Code:
* Write simple code with correct syntax.
** Java
** Python
Strategy:
* Walk through the algorithm (coding it) on paper.
* Then code it on the computer. Note any errors and problems.
Arrays:
* Implement Fisher-Yates shuffle
* Implement any shuffle
* Find the nearest integer to X in the array (binary search + variations)
* Implement any sort algorithm (merge sort)
* Implement another sort algorithm (quick sort)
* The merge sort you used is recursive. Can you do it non-recursively?
Language-specific array basics:
* Java arrays class
* Creating arrays
* Accessing arrays (first, last, range)
* Basic info about arrays:
** Length
** Slice
** Reverse
** Sort (built-in)
Algorithm analysis:
* Review costs of each operation
==Week 2B==
Code:
* Write simple code with correct syntax.
** Java
** Python
Strategy:
* Walk through the algorithm (coding it) on paper.
* Then code it on the computer. Note any errors and problems.
Lists:
- definitions
- abstract data type: methods
- abstract data type: more ornate/fancy methods
Language-specific list basics:
- Java built-in list types, and built-in methods
- Python list basics
Language-specific implementations:
- singular linked list
- circular linked list
- doubly linked list
- array list
- (have the basic list of methods for each of these types ready to go - how do they relate to the ADT above?)
Algorithms for each implementation of the types of lists above:
- get, set
- clear, clone
- equals
- addfront, addback
- removefront, removeback
=Flags=
{{CSFlag}}

Latest revision as of 06:00, 12 February 2019

Project Gopher

Organizing notes in preparation for 2019 technical interview.

Full list of topics: https://git.charlesreid1.com/cs/study-plan/src/branch/master/SoftwareEngineering.md

Top level topics:

  • Algorithm complexity
  • Sorting - know how to sort, know at least 2 O(n log n) sort methods (merge sort and quicksort)
  • Hashtables - the most useful data structure known to humankind.
  • Trees - this is basic stuff, BFS/DFS, so learn it.
  • Graphs - twice as important as you think they are.
  • Other Data Structures - fill up your brain with other data structures.
  • Math - discrete math, combinatorics, probability.
  • Systems - operating system level, concurrency, threads, processing, memory.

Links: Template:AlgorithmsFlag

Week 1

Sorting:

Week 2

Week 2A

Code:

  • Write simple code with correct syntax.
    • Java
    • Python

Strategy:

  • Walk through the algorithm (coding it) on paper.
  • Then code it on the computer. Note any errors and problems.

Arrays:

  • Implement Fisher-Yates shuffle
  • Implement any shuffle
  • Find the nearest integer to X in the array (binary search + variations)
  • Implement any sort algorithm (merge sort)
  • Implement another sort algorithm (quick sort)
  • The merge sort you used is recursive. Can you do it non-recursively?

Language-specific array basics:

  • Java arrays class
  • Creating arrays
  • Accessing arrays (first, last, range)
  • Basic info about arrays:
    • Length
    • Slice
    • Reverse
    • Sort (built-in)

Algorithm analysis:

  • Review costs of each operation


Week 2B

Code:

  • Write simple code with correct syntax.
    • Java
    • Python

Strategy:

  • Walk through the algorithm (coding it) on paper.
  • Then code it on the computer. Note any errors and problems.

Lists: - definitions - abstract data type: methods - abstract data type: more ornate/fancy methods

Language-specific list basics: - Java built-in list types, and built-in methods - Python list basics

Language-specific implementations: - singular linked list - circular linked list - doubly linked list - array list - (have the basic list of methods for each of these types ready to go - how do they relate to the ADT above?)

Algorithms for each implementation of the types of lists above: - get, set - clear, clone - equals - addfront, addback - removefront, removeback



Flags





See also: