ProjectGopher: Difference between revisions
From charlesreid1
m (Admin moved page Gopher to ProjectGopher) |
|||
| (6 intermediate revisions by the same user not shown) | |||
| Line 14: | Line 14: | ||
* Math - discrete math, combinatorics, probability. | * Math - discrete math, combinatorics, probability. | ||
* Systems - operating system level, concurrency, threads, processing, memory. | * Systems - operating system level, concurrency, threads, processing, memory. | ||
Links: [[Template:AlgorithmsFlag]] | |||
=Week 1= | |||
Sorting: | |||
* [[Merge 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
| Computer Science notes on computer science topics on the wiki, for educational and learning purposes
Part of the 2017 CS Study Plan.
Python/Exceptions · Python/Assertions · Python/Decorators Python/Os (os module) · Python/Strings Python/Splat · Python/Iterators · Python/Generators Python/Comparators · Python/Lambdas
Builtin features of Java: Java/Exceptions · Java/Assertions · Java/Memory · Java/Interfaces Java/Generics · Java/Decorators · Java/Diamond Notation Java/Iterators · Java/Iterable · Iterators vs Iterable Java/Comparators · Java/Comparable · Comparators vs Comparable Java/Numeric · Java/TypeChecking · Java/Testing · Java/Timing · Java/Profiling Documentation: Javadocs · Java/Documentation Tools and functionality: Java/URLs · Java/CSV External libraries: Guava · Fastutil · Eclipse Collections OOP: OOP Checklist · Java/Abstract Class · Java/Encapsulation · Java/Generics
|
See also: