Dear Advanced APCS students,
In order to provide an excellent learning environment for you in this coming school year, I would like you to help me answer the following questions, be as specific and detailed as possible, so that I can do a better job in terms of fulfilling your needs. Thank you for your time.
Just interested; to learn.
What do you expect to learn from this course? If you know nothing about the curriculum, just brainstorm by yourself and tell me something that you want to learn.
Fully understand Big-O notation. Basic algorithms and data structures, and when/why to choose one over another.
What did you do over the summer that is related to computing (summer camp, internship, self-learning, taking an online course, teaching other people)? Please tell me what you learned through this experience. Be as specific as possible.
Mainly translating Stanford’s Developing iOS 10 Apps with Swift; read The Swift Programming Language (Beta). Wrote an app to post the translated subtitle to online video platform, practiced using recursion, HTTP request, async background queue, and Continuous Integration.
Wrote a raffle app in Kotlin (Google’s new programming language for Android, basically Java), refreshed memory of Swing, learned a little about JavaFX.
Read part of the K&R (The C Programming Language).
Watched a short series of basic tutorials about HTML & CSS.
Watched How GitHub uses GitHub series. Learned several git commands.
- [x] Linked List: Holding a pointer to the previous/next Element. Easier to add/remove, harder to find index.
- [x] Recursion: Using itself in the definition of itself. Throws StackOverFlowException.
- [ ] Big-O notation
- [x] Stack: First (push) In, Last (pop) Out. How I deal with recursive methods.
- [x] Queue: FIFO.
- [x] Priority Queue: Queue, elements ordered by priority.
- [x] Hash Table: AKA Dictionary<K: AnyHashable, V: AnyObject>, mapping Key to Value.
- [ ] Heap
- [x] Tree: Nodes. May traverse in Pre/In/Post order (if should visit root first).
- [x] Binary Search Tree: Each node has max 2 child, with left < this < right, and each child is BST
- [x] Graph: (Un)directed edges connecting vertices.
- [ ] Depth first search
- [ ] Breadth first search
- [ ] Quicksort (and basically all other sorting algorithms)
Big-O notation sounds/is quite confusing, it took me a long time to understand why merge sort is