facebook
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
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)
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

Reviews (0)

No reviews yet. Take a class with this teacher and help improve her or his profile by posting a first review!

Good-fit Instructor Guarantee


If you are not satisfied after your first lesson, Apprentus will find you another instructor or will refund your first lesson.

Online reputation

  • Instructor since April 2021
  • Phone number verified
  • Google connected