Week #01 | |

Pedro Ribeiro - DCC/FCUP |

**Big O Notation:**- I understand the basic meaning of
**Big O Notation** - I know how to estimate the complexity of simple programs and how to use it to estimate if my program will not obtain time limit exceeded when submitted

- I understand the basic meaning of
**Fundamental Data Structures:**- I know the concept of
**stacks**,**queues**and**deques**and how to use them on my programming language - I know the concept of sets (
**set**and**multiset**) and how to use them on my programming language - I know the concept of maps/dictionaries (
**map**and**multimap**) and how to use them on my programming language - I know the concept of priority queues (
**priority_queue**) and how to use them on my programming language - I understand the concept of
**ordered data structures**and how to traverse them using**iterators** - I know how to use a
**custom comparator**for more more complex data than simple primitive types - I know that there are
**non ordered**data structures for the fundamental data structures (ex:*unordered_set*and*unordered_map*)

- I know the concept of

**Big O Notation**- How fast is fast? Order of magnitude analysis [Bruce Merry] (brief introduction to big-oh notation)
- Big O notation [Wikipedia]
- Slides from my Algorithms class [Pedro Ribeiro]
- Doing the math with big o: cheat sheet [Pedro Ribeiro]
- Chapter 2 of Competitive Programmer's Handbook book

**Programming Language References**- C++ Reference: cppreference.com | cplusplus.com
- Java Reference: Oracle - Java 11 API

**Fundamental Data Structures:**- The C++ Standard Template Library (STL) [GeeksforGeeks] (includes examples in C++ for all data structures discussed in this class)
- Java Collection Tutorial (version 2) [GeeksforGeeks] (includes examples in Java for all data structures discussed in this class)
- Sections 2.1 and 2.2 of the Competitive Programming book
- Chapter 4 of Competitive Programmer's Handbook book

Pedro Ribeiro - DCC/FCUP |
**Último update:**