CS: Difference between revisions
From charlesreid1
No edit summary |
No edit summary |
||
| Line 10: | Line 10: | ||
* Mathematics and numerical computing | * Mathematics and numerical computing | ||
* Machine learning | * Machine learning | ||
=Topics= | =Topics= | ||
| Line 74: | Line 67: | ||
* Root Finding | * Root Finding | ||
=Flags= | |||
{{CSFlag}} | |||
{{DataStructuresFlag}} | |||
[[CS/OldPage]] | |||
=Footer= | =Footer= | ||
Revision as of 03:53, 19 June 2017
Computer Science: the science of problem-solving with computers (computational devices, computational methods)
Study Notes
See CS study plan repo for more detailed notes: https://charlesreid1.com:3000/cs/study-plan
We're focusing on a few different topics:
- Ramping up level of fluency of Java and Python, developing working knowledge of/familiarity with 5-10 languages (git.charlesreid1.com)
- Core software engineering/computer science theory
- Mathematics and numerical computing
- Machine learning
Topics
Computer Science
Link: https://charlesreid1.com:3000/cs/study-plan/src/master/TODOSoftwareEngineering.md
CS list of topics:
- Arrays
- Python - list type - Arrays/Python
- Java - Arrays class, ArrayList class - Arrays/Java
- Lists
- ArrayLists - array-based, continguous allocation of memory
- LinkedLists - link-based system of organizing memory allocated on the fly
- Java - singly, circularly, doubly linked lists - Linked Lists/Java
- Python - linked list implementation in Python Linked Lists/Python
- C - Skiena covers a linked list implementation in C... Linked Lists/C
- StacksQueues
- Python - implementing array-based stack/queue/deque data type - StacksQueues/Python
- Java - using built-in stack/queue ADTs, implementing array-based stack/queue/deque type - StacksQueues/Java
- C - Skiena covers the use of a C linked list to implement a stack/queue in C... StacksQueues/C
- Priority Queues are special queues where the items are maintained in a shorted order.
- Skiena Chapter 3 gave a more advanced and succinct introduction to data structures: see Advanced Data Structures
- Dictionaries, a.k.a. Maps
- Python - dictionaries are built-in types in Python. JSON-like structures, key-value pairs.
- Java - using built-in Map type from Java Collections library allows mapping arbitrary types to other types
- C - Skiena covers the use of C to create a dictionary as well, by using a linked list to implement the interface of a dictionary.
- Binary Trees
- C - again, Skiena covers a C implementation of a binary tree using a linked list type of structure.
- Abstract Data Types - general classes of data structures
Numerics
Link: https://charlesreid1.com:3000/cs/study-plan/src/master/TODONumerics.md
Following the content of Numerical Recipes - algorithmic analysis, &c.
Numerics topics corresponding to particular chapters:
- Linear algebra
- Interpolation and Extrapolation
- Integration and Evaluation of Functions
- Root Finding
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:
| Data Structures Part of Computer Science Notes
This is the staging ground for computer science notes as part of the 2017 CS Study Plan.
Classes of data structures: Abstract Data Types Array-based and Link-based memory management: ArrayLists and Linked Lists Algorithmic Analysis of Data Structures: Algorithmic Analysis of Data Structures Advanced data structures: Advanced Data Structures
|
| Arrays Part of Computer Science Notes
Series on Data Structures Python: Arrays/Python · Arrays/Python/Sizeof · Arrays/Python/AppendCost · Arrays/Python/CaesarCipher · Arrays/Python/CompactArrays · Arrays/Python/DynamicArray Java: Arrays/Java · Arrays/Java/CaesarCipher · Arrays/Java/FisherYates · Arrays/Java/PythonList · Arrays/Java/Repeatedly_Remove Categories: Category:Python Arrays
|
| Stacks and Queues Part of Computer Science Notes
Series on Data Structures
Stacks and Queues: Python StacksQueues/Python · StacksQueues/Python/ArrayStack · StacksQueues/Python/ArrayQueue · StacksQueues/Python/ArrayDeque StacksQueues/Python/LinkedStack
Stacks and Queues: Java StacksQueues/Java · StacksQueues/Java/ArrayStack · StacksQueues/Java/ArrayQueue · StacksQueues/Java/ArrayQueueFS · StacksQueues/Java/ArrayDeque StacksQueues/Java/LinkedStack · StacksQueues/Java/LinkedQueue · StacksQueues/Java/LinkedDeque
Applications Postfix_Expressions#Stacks · StacksQueues/Subsets · StacksQueues/Subsets/Java
|
| Priority Queues and Heaps Part of Computer Science Notes
Series on Data Structures
Java: Priority Queues/Java · Priority Queues/ADT · Priority Queues/Sorted · Priority Queues/Unsorted Performance: Priority Queues/Timing and Performance Applications: Maximum Oriented Priority Queue · Priority Queues/Stack
Priority Queues/Heap · Priority Queues/Java · Priority Queues/Comparators
|
| Linked List Part of Computer Science Notes
Series on Data Structures Java: Linked Lists/Java · Linked Lists/Java/Single · Linked Lists/Java/Double · Linked Lists/Java/Circular Performance: Linked Lists/Java/Timing · Linked Lists/Java/Reverse Python: Linked Lists/Python · Linked Lists/Python/Single
|
| Trees Part of Computer Science Notes
Series on Data Structures Abstract data type: Trees/ADT Concrete implementations: Trees/LinkedTree · Trees/ArrayTree · SimpleTree
Tree Traversal Preorder traversal: Trees/Preorder Postorder traversal: Trees/Postorder In-Order traversal: Binary Trees/Inorder Breadth-First Search: BFS Breadth-First Traversal: BFT Depth-First Search: DFS Depth-First Traversal: DFT OOP Principles for Traversal: Tree Traversal/OOP · Tree Traversal/Traversal Method Template Tree operations: Trees/Operations Performance · Trees/Removal
Tree Applications Finding Minimum in Log N Time: Tree/LogN Min Search
Abstract data type: Binary Trees/ADT Concrete implementations: Binary Trees/LinkedBinTree · Binary Trees/ArrayBinTree Binary Trees/Cheat Sheet · Binary Trees/OOP · Binary Trees/Implementation Notes
|
| Search Trees Part of Computer Science Notes
Series on Data Structures
Binary Search Trees · Balanced Search Trees Trees/OOP · Search Trees/OOP · Tree Traversal/OOP · Binary Trees/Inorder
(Note that heaps are also value-sorting trees with minimums at the top. See Template:PriorityQueuesFlag and Priority Queues.)
|
| Maps and Dictionaries Part of Computer Science Notes
Series on Data Structures
Maps/Dictionaries Maps · Maps/ADT · Maps in Java · Maps/OOP · Maps/Operations and Performance Map implementations: Maps/AbstractMap · Maps/UnsortedArrayMap · Maps/SortedArrayMap Dictionary implementations: Dictionaries/LinkedDict · Dictionaries/ArrayDict
Hashes Hash Maps/OOP · Hash Maps/Operations and Performance Hash Maps/Dynamic Resizing · Hash Maps/Collision Handling with Chaining Hash functions: Hash Functions · Hash Functions/Cyclic Permutation Hash map implementations: Hash Maps/AbstractHashMap · Hash Maps/ChainedHashMap
Skip Lists · Java/ConcurrentSkipList · Java implementations: SkipList
Sets Sets · Sets/ADT · Sets in Java · Sets/OOP · Multisets
|