Materials used for the Programming Tutor sessions (2023-2024)
- For loop
- Nested for loop
- Half nested for loop
- While loop
- Do while loop
- Recursion
- Structs
- String manipulation
- Arrays
- Pointers
- Memory allocation
- Datatypes
- Checking Git Version
- Configuring User Information
- Creating a New Git Repository
- Checking the Repository Status
- Staging and Committing Changes
- Viewing Commit History
- Getting Help
- Branching and Merging
- Remote Repositories
- GitHub Flow
- GitHub-Specific Features and Commands
- .gitignore
- Git Security SSH
- GitHub Add SSH
- Set Notations
- Properties
- Set Equality
- Set Operations
- Boolean Algebra
- Set Algebra
- Function Basics
- Composition of Injections
- Composition of Surjection
- Composition of Bijection
- Cardinality of Sets
- Permutation Basics
- Binary Relations
- Equivalence Relations
- Equivalence Classes
- Quotient Groups
- Group Basics
- Multiplicative Group
- Additive Group
- Associativity of Sequential Composition of Functions
- Subgroups
- Lagrange’s Theorem
- Equivalence Classes
- Order of an Element in Lagrange’s Theorem
- Euclidean Algorithm
- Euclidean Algorithm Basics
- gcd(a,b)as a Linear Combination of a and b
- Problems for Integers Modulom
- Multiplicative Group of Integers Modulo m
- Rivest–Shamir–Adleman (RSA) Cryptography
- Matrix Basics
- Matrix Addition and Multiplication Properties
- Determinant of a Square Matrix
- Solving Linear System of Equations
- Gaussian Elimination
- Linear Maps
- Eigenvalues and Eigenvectors
- Counting Basics
- Multiplication Principle
- Addition Principle
- Lists
- Concatenation
- Cons
- Accessing List Elements
- List Comparison
- Using Ranges with Lists
- Steps and Ranges
- Laziness and infinite lists
- cycle
- repeat
- replicate
- List Comprehension
- sum
- elem
- Nested List Comprehension
- Tuples
- zip
- Types
- List Types
- Tuple Types
- Function Types
- Curried Functions
- Polymorphic Types
- Overloaded Types
- Classes
- Conditional Expressions
- Pattern Matching
- head and tail
- Lambda Expressions
- Factorial
- Product
- Quicksort
- General Pattern for Recursion
- map
- filter
- foldr
- Sum of Squares of Positive Integers in a List
- The Largest Number Under 100,000 Divisible by 3829
- Type Declaration
- Data Declarations
- Recursive Types
- Binary Tree
- Queue
- Smart Queue
- Flipping
- foldl
- Reverse Polish Notation
- Matrices
- all
- uniform
- Adding Matrices
- getChar
- putChar
- return
- Sequencing Actions
- getLine
- putStr
- putStrLine
- strlen