Skip to content

kris-classes/restart

Repository files navigation

restart - Semester 2 - 2022

Previous Courses

Admin

  • Contact @krp or @mechatroNick for Zoom & Discord links.
  • Class runs from 10AM-3PM Mon-Fri. August 29th - November 18th 2022.

Student Expectations: ~5 hours of lectures and ~3 hours of homework per day.

Supplementary Videos

Core Topics

  • Python Programming
  • Career
  • Cloud Foundations
  • Linux
  • Networking
  • Databases
  • AWS
  • Exam Preparation

Extra resources

Note: Github Student Pack requires you to have a student email @myunitec.ac.nz

YouTube Channel Recommendations

Week 1

Core Topics

  • Programming & Tool basics

Day 1

  • Setting up & browsing GitHub
  • Setting up & using Discord
  • Markdown & Markdown Tutorial

Day 2

  • Installing VSCode
  • Installing Python
  • Python primitive data types: int, float, str
  • Output with print()
  • Input with input()
  • Getting type of variable with type(var)

Day 3

  • Interpreted vs Compiled Programming Languages
  • Python REPL / Shell
  • AREPL VSCode Extension
  • Some string functions: .upper(), .lower(), .capitalize(), .split(), etc
  • Lists: Creating, accessing elements, .append(), .pop(), .extend(), .sort() (in-place) vs sorted(my_list) (copy)
  • Reading code (basics): aws-cli - Comments, multi-line comments & docstrings, import, class (as a concept)
  • Functions (def and return), function parameters/arguments
  • "Scope" (variable names can be reused in different functions)
  • Loop basics: while, break and common gotchas
  • Refactoring (rewriting your code to simplify things)
  • @krp/python-examples
  • Supplementary: The Coding Train - What was coding like 40 years ago?

Day 4

Day 5

Week 2

Day 1

  • AWS Console Basics & EC2 instance types
    • Regions, Availability Zones, Data Centers, Latency
    • Different pricing models for EC2: on-demand, spot, reserve
  • AWS Pricing Calculator
  • More Looping & in keyword
  • Stack & Queue concepts

Day 2

  • More Git
  • More Looping, Lists, Dictionaries, Iterators (concept)
  • CSV files
  • Project group exercises

Day 3

  • Sets - union &, intersection |
  • More functions - no variable, default value, *arg, **kwargs
  • Hardware: CPU, RAM/Memory, Storage, GPUs, Cores, Threads
  • CPU-Z (Windows)
  • Supplementary: UserBenchmark.com)

Day 4

Day 5

  • Symmetric vs Asymmetric Key Cryptography (basics)
  • More Linux
  • Building programs from source code
  • Permissions
  • Supplemental: History of Unix

Week 3

Day 1

  • Shells (configuring, aliases, differences, some history, different shells)
  • Creating our own with Python's os module.
  • Directory & File permissions.
  • Hashbang: #!
  • PATH
  • strace

Day 2

  • DistroWatch, GNU, FSF
  • More on OS internals (protected mode, drivers, monolithic vs microkernel, kernelspace/userspace (ring0/ring3 on Linux)
  • stdin, stdout, stderr & file redirection
  • Piping, env & environment variables
  • sl, cowsay, jq, grep, wc, tr, sort
  • Interacting with APIs using curl
  • Modern Unix Utilities
  • Bash scripting basics & automating installation
  • sudo amazon-linux-extras install epel
  • Supplementary: Some other utils/tools/libs mentioned by learners: gtop, sherlock, gping, tldr, chalk, fig, zsh-autosuggestions, Scott Hanselman - Microsoft Terminal, neofetch, pi-hole, hoppscotch, jsonhero-web, shellcheck, click, beets, n8n, bubbletea, fork-cleaner, spicetify-cli, social-analyzer

Day 3

  • Art of Command Line
  • Job Control: Ctrl-Z, jobs, bg, fg, &, kill, head, `tail
  • Logging & /var/log/secure (SSH log on Amazon Linux)
  • try/except & error handling basics in Python
  • Managing Users Basics: adduser, passwd, chown, chgrp
  • Python: classes: (methods, self) yield, generators
  • w, curl ifconfig.me
  • Basics of HTTPs, CAs, Chain of Trust
  • Endianness (concept)

Day 4

  • Programming Paradigms
  • Concurrency Basics
  • Regular Expressions
  • Navigating StackOverflow & StackExchange platform
  • Group exercise: Complete overview of Linux filesystem & important files across it

Day 5

Week 4

Day 1

Day 2

  • Python's http.server and pydoc modules
  • Interfaces & interacting with APIs
  • User Agents, robots.txt, Host: header
  • Using Python decorators with fastapi
  • Public vs Private IP addresses, Loopback Interface/Localhost, Port Scanning

Day 3

  • TCP, UDP
  • RFC's
  • Wireless Networking & WiFi

Day 4

Day 5

  • Revision & More on Python Classes

Week 5

No class on Monday - Public Holiday

Day 1

  • Hashing Basics
  • VirusTotal
  • Brute-forcing & probabilities
  • CRUD applications

Day 2

Day 3

  • Binary, Hexadecimal
  • ASCII
  • Hex editors & other instances where you encounter hex
  • TryHackMe.com

Day 4

  • Blockchain technical details
  • Reading other programming languages (Rust/Go)

Week 6

Day 1

Day 2

  • More EC2, some VPC
  • IaaS, PaaS, SaaS, etc
  • More networking labs

Day 3

  • More EC2

Day 4

  • More Cryptography Basics
  • IAM Basics
  • EBS (Elastic Block Store) & File system basics

Day 5

  • RDS
  • SQL Basics

Week 7

Day 1

  • More RDS
  • Docker
  • Single-Page Application Basics
  • Base64 Encoding
  • Cookie vs JWT Basics

Day 2

Day 3

  • More Docker

Day 4

Day 5

  • Revision

Week 8

Day 1

Day 2

Day 3

  • Unit Testing with pytest
  • Basics of Algorithms & Data Structures
  • Working with SQLite databases with Python's sqlite3 module.

Day 4

Day 5

  • Certification Pathways
  • Exam Vouchers
  • Frontend & NodeJS

Week 9

No Monday Class - Labour Day

Day 1

  • Assignment Help
  • System Design
  • Troubleshooting/Debugging the Deployment Script Lab Challenge

Day 2

  • CloudFront & CDNs
  • CAP Theorem basics
  • Agile
  • Application & Network Load Balancers
  • Load Balancer Lab

Day 3

  • Scott Hanselman talk
  • Domain name registration
  • Elastic Load Balancing (ELB) & Load Balancer types
  • Auto-Scaling Groups & Lab
  • netcat (nc) basics
  • Cost Estimation with the Pricing Calculator

Day 4

Supplementary

Week 10

Day 1

  • Lambda
  • More SNS
  • More S3

Day 2

Day 3

Day 4

  • ChatOps Basics (coding a simple Discord bot that uses boto3 and DynamoDB)
  • DynamoDB Basics
  • Preventing RSI / back pain / etc in tech jobs

Day 5

Week 11

Day 1

  • CloudFront
  • CloudTrail & Athena

Day 2

  • Revision: Docker, Databases, Subnetting, Shell scripting, hashlib

Day 3

  • VPC, Subnets, Gateways
  • FastAPI revision
  • fetch()

Day 4

  • Hashing & Checksums Revision
  • Hex, File formats
  • Unicode / utf-8
  • Remote Procedure Call
  • Machine Learning Basics (with Huggingface's Transformers library)

Day 5

  • Subnetting Revision
  • Socket programming
  • Concurrency (using Threads) with Python

Week 12

Day 1

  • Revision

Day 2

  • Test practice & assignment Help

Day 3

  • More test practice & assignment help

Day 4

  • Test
  • Assignment deadline

Day 5

  • Presentations
  • Congratulations!
Domain Topic Items Note Lab Covered
Cloud Concepts AWS Cloud value proposition Benefits Most important: o Security, o Reliability, o High Availability, o Elasticity, o Agility, o Pay-as-you go pricing, o Scalability, o Global Reach, o Economy of scale, covered
Focus shift Shifting technical resources to revenue-generating activities as opposed to managing infrastructure covered
AWS Economics What is total cost of ownership OpEx, CapEx, Operational Cost, Software Licencing of selft maintain infrastructure covered
How the cloud can help lowering cost Right sizing and scale (Elasticity + Pay as you go), many automation available (Agility) See billing break down covered
Design principle for Architecture Design principles o Fail proof, o Decoupling, o Make use of elasticity, o Think parallel
Security and Compliance Shared responsiblity model Shared responsibility model o Customer responsibility (configuration, software security), o AWS responsibility (hardware availability, accepted failure rate...) covered
Security & Compliance concepts o Industry compliance (HIPPA, SOCs, PCIs), basically security standards, o Encryption (at rest, in transit), o Least privilege access and Identity Access Management See an IAM policy covered
Identity Access Management User & Identity management o Access keys & password, o MFA, o IAM Service (Group/User/Role/Policies) Login to root account, Tour of IAM covered
Security Support Network Security o For later when finished Networking part
Technologgy Deploy & Operate Methods o AWS Console, o APIs, o SDKs, o Cloudformation (create/delete/modify but not operate) o CDK/Pulumi/Terraform Login to AWS console covered
Deployment model o Cloud native, o Hybrid, o On-premises Show an architecture design with Hybrid Connectivity
Connectivity options o VPN, o Direct Connect, o Public internet Show an architecture design with Hybrid Connectivity
Global infrastructure Concepts o Regions, o AZs, o Edge Location covered
Why use regions o Disaster recovery/business continuity, o Low latency for end user o Data compliance covered
Edge Location benefits o Quick for download from CDN (CloudFront), o Quick for S3 Upload Accelerator, o AWS Global Accelerator (speed up connection) covered
Core Services Compute family 1 o VM based compute EC2, o Container based compute ECS/EKS, o Serverless Lambda, o Load Balancer (L7 for HTTP, L4 for ENI), o Health Check Alarm, o Autoscaling group and how autoscaling works Lambda function lab, EC2 lab, ASG lab tour covered
Compute family 2 o Types of EC2 o Types of EC2 billing (Reserve, On-demand, Spot) Visit pricing calculator covered
Storage family 1 o S3 o Glacier o Snowball o Storage Gateway S3 Bucket host objects, S3 Bucket versioning, S3 Static website hosting, S3 Bucket policy, S3 Life cycle policy covered
Storage family 2 o EBS, o EFS EC2 attach EBS, encrypt un-encrypted EBS drive covered
Networking 1 o VPC, subnets, o Internet Gateway, o Security Group, NACL, o NAT gateway, Bastion Host o Revisit Load Balancer Create VPC with NAT gateway, Bastion Host lab covered
Networking 2 o CloudFront o Route53 o API Gateway S3 Static website hosting + CloudFront CDN covered
Database o RDS o Aurora o DynamoDB o RedShift (OLTP vs. OLTA) Aurora RDS Lab + Bastion Host to connect, DynamoDB Lab covered
Integration o SQS o SNS o StepFunctions Go see some working example of StepFunctions, play with SQS and SNS covered
Management 1 o CloudWatch Logs (Lambda example), o CloudTrail, o CloudWatch Event/Eventbridge, o System Manager, o Parameter Store, o Config, o Secrets Manager See CloudWatch Logs, CloudTrail, and different services covered
Management 2 o Concept of IaC (Infrastructure as Code) o Cloudformation o Pulumi/Terraform Pulumi/Terraform introduction covered
Support Resource o AWS Trusted Advisor o Support tier o Professional services Go see the AWS Console
Billing Bills o Billing console o Billing alarm o Free quota o Services limits o Pricing calculator Go see some bills + DynamoDB vs. RDS cost study covered
Organization o Organization Units, o Ways to structure OU, o Consolidated billing Go see the AWS Console covered

Demonstration topics

By whom Ideas Links Difficulty Time estimated to prepare Tools Notes
Kawana Create and Manage a Nonrelational Database https://go.aws/3UGYd2M Internmediate 1-2 hours AWS DynamoDB Don't use Cloud9, just get Sandbox environment keys
Raemon Extract video metadata https://go.aws/3NNtw9L Easy 1 hour max AWS Rekognition Do this in AWS Console, add more context if you can
Prerana Analyze text context and sentiment https://go.aws/3DTiuLG Easy 1 hour max AWS Comprehend Do this in AWS Console, add more context if you can
Will Translate between languages https://go.aws/3teZrq1 Very easy 1 hour max AWS Translate Do this in AWS Console, add more context if you can
Tia Demonstrate SNS Fanout to SQS architecture https://go.aws/3DUR5Zw Intermediate 1-2 hours AWS SNS,SQS Do this in AWS Console, add more context if you can
Luke Use SQS in real application https://go.aws/3TkTzpY Intermediate 2-3 hours AWS SQS Additionally, you need to get Sandbox keys, and use boto3 to consume SQS queue messages
Ryan Demonstrate building application with Lambda https://go.aws/3DOKznj Intermediate 1-2 hours AWS Lambda Do this in AWS Console, demonstrate any kind of code that you write yourself
Anuj Use Textract to scan text out of images https://go.aws/3tcN3qz Very easy 1 hour max AWS Textract Do this in AWS Console, add more context if you can
Stacey Detect and analyze faces https://go.aws/3WPVnKK Very easy 1 hour max AWS Rekognition Do this in AWS Console, add more context if you can
Kura Filter messages using SNS Topic https://go.aws/3WLihml Intermediate 1-2 hours AWS SNS Do this in AWS Console, add more context if you can
Benke Add audio transcript https://go.aws/3Upb89G Very easy 1 hour max AWS Transcribe Do this in AWS Console, add more context if you can
Marcelle Protect your S3 data https://go.aws/3Tkm8Uo Intermediate 1-2 hours AWS S3 Do this in AWS Console, add more context if you can
Gracie Using Docker volume https://bit.ly/3DUUkAa Intermediate 1-2 hours Docker
Benke Getting started with Kubernetes https://bit.ly/3A0xo1z Harder 2-4 hours Kubernetes
Brandon S3 Data Integrity with Checksum https://go.aws/3TH7C9G Intermediate 1-2 hours AWS S3
Sisi Create and Query a NoSQL Table with Amazon DynamoDB [https://go.aws/3X0NC4E ] Very Easy 1 hours Amazon DynamoDB
Xavier SageMaker demonstration https://go.aws/3UANlDZ Intermediate 1-2 hours AWS SageMaker
Jayam Getting started with Athena https://go.aws/3Oax463 Intermediate 1-2 hours Amazon Athena
Victoria Getting started with Elastic Transcoder https://bit.ly/3hwtdnB Easy 1 hour max AWS Elastic Transcoder
Quentin Comprehend demonstration V3ry-easy 1 hour max AWS Comprehend
Levi Filter Messages Published to Topics with Amazon SNS and Amazon SQS https://go.aws/3ga9euO Intermedaite 1-2 hours AWS SNS, SQS
Ben W Navigating AWS RDS https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Welcome.html Easy 1 hour AWS RDS

Technical presentations:

  • Your name: Topic/Service goes here
  • Another name: Another topic/service goes here

Concepts book - to be covered

Others

  • VMs vs. Containerization
  • Globally Unique IDs
  • Process vs. Thread
  • Software deployment strategies
  • Design secure APIs
  • DB Caching

Weeks 12-16

  • Internships & Projects