facebook
favorite button
super instructor icon
Trusted teacher
This teacher has a fast response time and rate, demonstrating a high quality of service to their students.
member since icon
Since April 2021
Instructor since April 2021
Python Programming (Suitable for GCSE and A-Level)
course price icon
From 16 £ /h
arrow icon
Python is one of the most versatile programming languages out there, used for game development, AI, web scraping, and so much more.

In this class, I will break down the language into simple building blocks that can be used time and time again in any program, whether designing 2D Minecraft or coding your own JARVIS!

The topics covered are listed below

Basics:
Literals, Operators, Keywords
Variables, Data Types, Branching
Iteration, Iterators, Functions
Control Flow, Scope, Closures
Importing, Random Numbers, Modules and Packages
OOP, Classes and Instances, Inheritance
Polymorphism, Exception Handling, Files

Data Structures and Algorithms:
Searching, Sorting, Immutability
Lists, Tuples, Linked Lists
Single Buffers (Pools), Double Buffers, Ring Buffers
Stacks, Queues, Priority Queues
Hash Tables (dictionaries), Hash Tables (custom), Vectors
Graphs, Trees, Binary Trees
Extra information
Bring your own laptop (microphone and speakers required, webcam optional), if you do not have python, I will cover installing it
Location
green drop pin icon
|
Use Ctrl + wheel to zoom!
zoom in iconzoom out icon
location type icon
At student's location :
  • Around Hemel Hempstead, United Kingdom
location type icon
Online from United Kingdom
About Me
About Me:
I'm currently pursuing a Master's degree in Computer Systems Engineering and I
understand how annoying it is not to achieve what you potentially could. Having done computer science for many years both for study and for work, I have a competent understanding of the subject matter and tend to run things more informally than a classroom.
I honestly believe that understanding computer science is a privilege and a pleasure. One of my top priorities is making sure my students have that privilege. My other priorities are about clearing the jargon - what appeals to me most when tutoring is seeing a mental block clear, and all the little puzzle pieces click into place.

My Teaching Style:
My style is more Q&A, where we work together to assess gaps, and build up our knowledge from there. I will break things down to their simplest form, and then build up the knowledge in layers.
My main focus is visible progress - I try to preach the mentality of 'one large problem is nothing but several smaller - and infinitely more manageable- problems'. That way, a slow lesson still has a visible output that a student can refer back to and show.

Education
Pursuing Integrated Master's in Computer Systems Engineering
Achieved 75% average across the first 3 years of my course
A-Levels in Maths, Computer Science, and Physics
Experience / Qualifications
I am used to working with students of a variety of ages and skills, having tutored for those between the ages of 6 and 16, as well as some professional presentation of projects to general public.
Employed as a Computer Science Tutor for ages 6 - 16
Tutored private GCSE physics lessons
Age
Children (7-12 years old)
Teenagers (13-17 years old)
Adults (18-64 years old)
Seniors (65+ years old)
Student level
Beginner
Intermediate
Advanced
Duration
60 minutes
The class is taught in
English
Availability of a typical week
(GMT -05:00)
New York
at teacher icon
Online via webcam
at home icon
At student's home
Mon
Tue
Wed
Thu
Fri
Sat
Sun
00-04
04-08
08-12
12-16
16-20
20-24
Computers are very powerful machines, that do incredible work. But how do they work? How can it tell the difference between a 1 and a 7? How can it tell the difference between reading a Word document and a PowerPoint?
If you understand programmatic theory, then you can write in any programming language.

This class is designed to unravel the mysteries surrounding these machines. Ranging from programming theory (what is a pointer?) to actual computational challenges (what is the correct data structure to use based on the Big O requirements?)

No specific language is covered in this course, it will be purely theoretical knowledge and 'pseudocode'.

The topics covered are listed below

Programmatic Theory:
Literals, Operators, Keywords
Variables, Data Types, Generics
Memory Usage, Pointers, Arrays
Branching, Iteration, Iterators
Functions, Control Flow, Scope,
Closures, Enumerations, OOP
Classes and Instances, Immutability, Inheritance
Polymorphism, Exception Handling, Composition
Asynchronous Programming, Multithreading, Multiprocessing

Internal Workings:
Binary, Hexadecimal, Number Systems
Extrinsic vs Intrinsic Data, Coupling, MVC Architecture
CPU, FED Cycle, Spatial Locality
Caching, Performance, Memory Types
Storing Complex Data (Text), Storing Complex Data (Sound), Storing Complex Data (Images)

Data Structures and Algorithms:
Performance, Big O, Measuring Performance
Searching, Sorting, Decomposition
Data Structures, Arrays, Linked Lists
Single Buffers (Pools), Double Buffers, Ring Buffers
Stacks, Queues, Priority Queues
Heaps, Hash Tables, Graphs
Trees, Binary Trees, Vectors
Read more
Any programming language - compiled or interpreted, statically typed or dynamic, boils down to the same common principles. These principles can then be applied to make any programming language - with any rules you desire. You can use '&' to represent addition and '>>!' to represent conditional loops. You can use 'beep' to represent branches and end each line with @.

This class aims to teach you how to create these principles to design a language, and then the different approaches on how to do it.
An end project will be to actually make your own programming language!

The topics covered are listed below:

Pretence:
Programming Language Types (grammar), Programming Language Types (formation), Programming Language Types (typing)
Stages (Lexing), Stages (Parsing), Stages (Interpreting)
Intermediate Forms (AST), Intermediate Forms (Bytecode), Transpiling
Optimisation (types), Optimisation (application to AST), Optimisation (application to Bytecode)

Building Ray (Classes):
Grammar Type, Formation Type, Typing Type
Data Types, Expressions (types), Expressions (precedence)
Statements (declarations), Statements (statements), Standard Library
Tokens, Tokenisation (characters), Tokenisation (literals)
Parsing (AST), Parsing (Visitors), Interpreting (Visitor)
Static Scope, Semantic Analysis, Resolvers (Visitor)

Building Ray (Nodes)
Parsing (Literals), Interpreting (Literals), Resolving (Literals)
Parsing (Groups), Interpreting (Groups), Resolving (Groups)
Parsing (Operators), Interpreting (Operators), Resolving (Operators)
Parsing (Variable declarations), Interpreting (Variable declarations), Resolving (Variable declarations)
Parsing (Variable getters), Interpreting (Variable getters), Resolving (Variable getters)
Parsing (Variable setters), Interpreting (Variable setters), Resolving (Variable setters)
Parsing (Branches), Interpreting (Branches), Resolving (Branches)
Parsing (Logic Gates), Interpreting (Logic Gates), Resolving (Logic Gates)
Parsing (Loops conditional), Interpreting (Loops conditional), Resolving (Loops conditional)
Parsing (Loops count), Interpreting (Loops count), Resolving (Loops count)
Parsing (Function declarations), Interpreting (Function declarations), Resolving (Function declarations)
Parsing (Function calls), Interpreting (Function calls), Resolving (Function calls)
Parsing (Scope Termination), Interpreting (Scope Termination), Resolving (Scope Termination)
Parsing (Class declarations), Interpreting (Class declarations), Resolving (Class declarations)
Parsing (Instances), Interpreting (Instances), Resolving (Instances)
Parsing (Methods), Interpreting (Methods), Resolving (Methods)
Parsing (Instance Lookup), Interpreting (Instance Lookup), Resolving (Instance Lookup)
Parsing (Constructors), Interpreting (Constructors), Resolving (Constructors)
Parsing (Inheritance), Interpreting (Inheritance), Resolving (Inheritance)
Optimisations (Visitor), Optimisations (Literal-Only Expressions), Optimisations (Variable Expressions)

Project: Build your own language! (Supervised)
Read more
Similar classes
arrow icon previousarrow icon next
verified badge
Pardeep
Description:

Embark on a transformative journey into the world of Full-Stack Development with our dynamic and inclusive course. Whether you're a budding developer, IT enthusiast, or professional looking to expand your skill set, this course is crafted to empower you with a comprehensive toolkit for creating robust and scalable applications.

What You'll Learn:

Microsoft Technologies:

Master C# programming language for versatile application development.
Dive into Asp.net and MVC for building scalable and maintainable web applications.
Database Management:

Explore MSSQL and PostgreSQL for effective database design and management.
Learn to model data, write complex queries, and ensure data security.
APIs and Web Services:

Understand the principles of API development.
Create and consume web services for seamless data exchange.
Front-End Development:

Develop responsive and engaging user interfaces with React js.
Enhance your skills in JavaScript, jQuery, AJAX, Bootstrap, HTML, and CSS.
Optional: React Native for Mobile Application Development:

Explore React Native for cross-platform mobile app development.
Build native-quality applications for iOS and Android.
Real-World Projects:

Full-Stack Web Application: Develop a complete web application integrating front-end and back-end technologies.
Mobile App Project (Optional): Create a mobile application using React Native.
Why Choose Our Course:

Hands-On Experience: Apply your skills through practical projects and coding exercises.
Expert Instructors: Learn from seasoned developers and industry professionals.
Portfolio Development: Build a robust portfolio showcasing your diverse development skills.
Career Guidance: Receive insights into career paths in Full-Stack Development.
Who Is This Course For:

Aspiring Developers
IT Professionals seeking to broaden their skills
Students and Enthusiasts passionate about full-stack development
Join us in this immersive journey to become a Full-Stack Development expert. Enroll now to gain the skills needed to create cutting-edge applications that meet the demands of the digital landscape!
message icon
Contact Max
repeat students icon
1st lesson is backed
by our
Good-fit Instructor Guarantee
Similar classes
arrow icon previousarrow icon next
verified badge
Pardeep
Description:

Embark on a transformative journey into the world of Full-Stack Development with our dynamic and inclusive course. Whether you're a budding developer, IT enthusiast, or professional looking to expand your skill set, this course is crafted to empower you with a comprehensive toolkit for creating robust and scalable applications.

What You'll Learn:

Microsoft Technologies:

Master C# programming language for versatile application development.
Dive into Asp.net and MVC for building scalable and maintainable web applications.
Database Management:

Explore MSSQL and PostgreSQL for effective database design and management.
Learn to model data, write complex queries, and ensure data security.
APIs and Web Services:

Understand the principles of API development.
Create and consume web services for seamless data exchange.
Front-End Development:

Develop responsive and engaging user interfaces with React js.
Enhance your skills in JavaScript, jQuery, AJAX, Bootstrap, HTML, and CSS.
Optional: React Native for Mobile Application Development:

Explore React Native for cross-platform mobile app development.
Build native-quality applications for iOS and Android.
Real-World Projects:

Full-Stack Web Application: Develop a complete web application integrating front-end and back-end technologies.
Mobile App Project (Optional): Create a mobile application using React Native.
Why Choose Our Course:

Hands-On Experience: Apply your skills through practical projects and coding exercises.
Expert Instructors: Learn from seasoned developers and industry professionals.
Portfolio Development: Build a robust portfolio showcasing your diverse development skills.
Career Guidance: Receive insights into career paths in Full-Stack Development.
Who Is This Course For:

Aspiring Developers
IT Professionals seeking to broaden their skills
Students and Enthusiasts passionate about full-stack development
Join us in this immersive journey to become a Full-Stack Development expert. Enroll now to gain the skills needed to create cutting-edge applications that meet the demands of the digital landscape!
Good-fit Instructor Guarantee
favorite button
message icon
Contact Max