<commit_before>## JS - Course

#### Values, Types, and Operators
- Values **(l1)**
- Numbers **(l1)**
- Strings **(l1)**
- Unary operators **(l1)**
- Boolean values **(l1)**
- Undefined values **(l1)**
- Automatic type conversion **(l1)**

#### Functions
- Defining a function **(l4)**
- Parameters and scopes **(l5)**
- Nested scope **(l4)**
- Functions as values (Anon) **(l4)**
- Declaration notation **(l4)**
- Closure **(l5)**
- Recursion **(l4)**

#### Data Structures: Objects and Arrays
- Data sets **(l5)**
- Properties **(l5)**
- Methods **(l6)**
- Objects **(l5)**
- Mutability **(l6)**
- Computing correlation **(l6)**
- Objects as maps **(l6)**
- The final analysis **(l6)**
- Further array-ology **(l6)**
- Strings and their properties **(l6)**
- The arguments object **(l4)**
- The Math object **(l6)**
- The global object **(l5)**

#### Higher-Order Functions
- Abstraction
- Abstracting array traversal
- Higher order functions
- Passing along arguments
- Filtering an array
- Transforming with map
- Summarizing with reduce
- Composability
- The cost
- Binding

#### Bugs and Error Handling
- Programmer mistakes
- Strict mode
- Testing
- Debugging
- Error propagation
- Exceptions
- Cleaning up after exceptions
- Selective catching
- Assertions

#### Regular Expressions
- Creating a regular expression
- Testing for matches
- Matching, Repeating, Grouping 
- The date type
- Word and string boundaries
- The replace method
- Dynamically creating RegExp objects
- The search method
- The lastIndex property

#### Modules
- Why modules help **(l3) **
- Using functions as namespaces **(l5)**
- Objects as interfaces **(l3)**
- Detaching from the global scope **(l5)**
- Evaluating data as code **(l3)**
- Require **(l3)**
- Slow loading modules **(l3)**
- Interface design **(l3)**

#### Handling Events
- Event handlers **(l5)**
- Events and DOM nodes **(l5)**
- Event objects **(l6)**
- Propagation **(l6)**
- Default actions **(l6)**
- Key events **(l6)**
- Mouse clicks **(l6)**
- Load event **(l6)**
- Debouncing **(l6)**

#### Node.js
- Background **(l1)**
- Asynchronicity **(l1)**
- The node command **(l1)**
- Modules **(l3)**
- Installing with NPM **(l3)**
- The file system module **(l1)**
- The HTTP module **(l4)**
- Streams
- A simple file server **(l1)**
- Error handling

#### Browser
- APIs
- Storing data clientside


## Algo - Course
- <commit_msg>Update global course<commit_after>## JS - Course

#### Values, Types, and Operators
- Values **(l1)**
- Numbers **(l1)**
- Strings **(l1)**
- Unary operators **(l1)**
- Boolean values **(l1)**
- Undefined values **(l1)**
- Automatic type conversion **(l1)**

#### Functions
- Defining a function **(l4)**
- Parameters and scopes **(l5)**
- Nested scope **(l4)**
- Functions as values (Anon) **(l4)**
- Declaration notation **(l4)**
- Closure **(l5)**
- Recursion **(l4)**

#### Data Structures: Objects and Arrays
- Data sets **(l5)**
- Properties **(l5)**
- Methods 
- Objects **(l5)**
- Mutability 
- Computing correlation 
- Objects as maps 
- The final analysis 
- Further array-ology 
- Strings and their properties 
- The arguments object **(l4)**
- The Math object 
- The global object **(l5)**

#### Higher-Order Functions
- Abstraction
- Abstracting array traversal
- Higher order functions
- Passing along arguments
- Filtering an array
- Transforming with map
- Summarizing with reduce
- Composability
- The cost
- Binding

#### Bugs and Error Handling
- Programmer mistakes
- Strict mode
- Testing
- Debugging
- Error propagation
- Exceptions
- Cleaning up after exceptions
- Selective catching
- Assertions

#### Regular Expressions
- Creating a regular expression
- Testing for matches
- Matching, Repeating, Grouping 
- The date type
- Word and string boundaries
- The replace method
- Dynamically creating RegExp objects
- The search method
- The lastIndex property

#### Modules
- Why modules help **(l3) **
- Using functions as namespaces **(l5)**
- Objects as interfaces **(l3)**
- Detaching from the global scope **(l5)**
- Evaluating data as code **(l3)**
- Require **(l3)**
- Slow loading modules **(l3)**
- Interface design **(l3)**

#### Handling Events
- Event handlers **(l5)**
- Events and DOM nodes **(l5)**
- Event objects **(l6)**
- Propagation **(l6)**
- Default actions **(l6)**
- Key events **(l6)**
- Mouse clicks **(l6)**
- Load event **(l6)**
- Debouncing **(l6)**

#### Node.js
- Background **(l1)**
- Asynchronicity **(l1)**
- The node command **(l1)**
- Modules **(l3)**
- Installing with NPM **(l3)**
- The file system module **(l1)**
- The HTTP module **(l4)**
- Streams
- A simple file server **(l1)**
- Error handling

#### Browser
- APIs
- Storing data clientside

## Algo - Course
- Basic mathematic concept
  - sum **(l1)**
  - limit **(l1)**
  - equivalence **(l1)**
  - factorial **(l1)**
  - logarithm **(l1)**
- Complexity **(l1)**
  - Fundamental instructions **(l1)**
  - Majoration **(l2)**
  - Recursive complexity **(l2)**
  - Logarithm complexity **(l2)**
{'fraction_non_alphanumeric': 0.18691214728837302, 'fraction_numerical': 0.021212727636581948, 'mean_word_length': 3.8952007835455436, 'pattern_counts': {'":': 0, '<': 3, '<?xml version=': 0, '>': 3, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '160028', 'n_tokens_mistral': 1585, 'n_tokens_neox': 1515, 'n_words': 572}