
This course includes our updated coding exercises so you can practice your skills as you learn.
See a demo
Develop computational thinking and practical programming skills by learning algorithms and writing basic programs in Python or Java, while understanding how programs are built and structured.
Take breaks to let your brain rest and process problems. When stuck, pause, then return with fresh insight, and reinforce learning by coding, practicing, and asking questions.
Set up your programming workspace by installing Python and Java on a laptop or desktop, and choose a suitable editor or IDE (Idle, Notepad++, PyCharm, VSCode, BlueJ, Greenfoot).
Analyze the problem and requirements, decompose the solution, and abstract the essential details. Design, code, and test iteratively with flow charts, pseudocode, and system diagrams, then deploy and maintain.
Design software by breaking systems into subsystems through decomposition, using structured diagrams, flowcharts, and pseudocode to model input, output, processing, and storage.
Master standard programming methods—from swapping with a temporary store and counting to totaling, averages, maxima and minima, modularity, and linear search with break and bubble sort.
Explore how programming languages translate human instructions into machine code via compilation or interpretation. See how pseudocode guides planning and focus on Python and Java as core languages.
Begin with Python idle and print strings, use input, variables, and snake_case filenames. Build a hello world script that asks for name and age, converts to int, and uses if/else.
Learn to build and run a basic Java program: use a template, print output with System.out.println, read input via a scanner, handle strings and integers, and apply if-else logic.
Write maintainable code by commenting thoroughly and naming variables, sections, and files meaningfully. Break programs into modules to improve readability and future adaptability.
Explore arithmetic, modular, and floor division, plus increment and boolean operators, across languages like Python and Java, including symbols such as +, *, /, %, //, **, and ++/+=.
Explore how conditional statements guide program flow using if, else, and switch/case across languages, with Python's elif and examples demonstrating booleans, comparisons, and nesting.
Build a Python guess the number game that uses random to generate 1–100, accepts user input, converts to int, and loops with a flag and a counter until correct.
Build a Java guessing game that generates a random number from 1 to 100, reads user input with a Scanner, and tracks guesses with a while loop.
Master iteration by exploring for and while loops, learn precondition and postcondition looping, and see how counters, indentation, and language syntax implement repetition in Python, Java, and pseudocode.
Explore nested statements in programming by nesting conditionals and loops, and learn how outer and inner conditionals interact, how inner loops run, and how to trace nested constructs.
Enhance the guessing game in Python by adding range validation, input type checks, and robust error handling with min/max variables, string-to-integer conversion, and try/except.
Improve the Java guessing game by introducing min and max constants, adding range validation, and implementing a try-catch to handle non-integer input, with a loop to re-prompt.
Understand the difference between global and local variables, where to declare them in Python and Java, and how scope affects access and program memory.
Explore strings and nested loops in Python by building a reverse function and testing palindromes. Check for palindromes inside words and find the longest palindrome using loops and string slicing.
Explore how libraries extend programming languages, distinguishing built-in versus imported libraries across Python, Java, and pseudocode, and learn to import and call functions with dot notation.
Explore arrays in depth, from one-dimensional lists to two-dimensional tables, including fixed sizes, null entries, indexing, and traversal in pseudocode, Python lists, and Java arrays.
Explore how programs store persistent data in external files, including text, csv, and binary formats, why self-modifying code is avoided, and how file naming and extensions work.
If you or teenagers you know are studying Computer Science and want to master fundamental concepts and achieve top scores in the exams, this is the course for you! Designed specifically for international school students, home schoolers, and independent students studying IGCSE Computer Science, GCSE Computer Science, or High School Computer Science, this course will guide you through the fundamentals of algorithms and algorithmic design, as well as the concepts and skills of programming. By the end of this course you will not only be able to create computer programs but will understand how they are designed and built, and be able to apply fundamental concepts of problem solving using computer programs.
This course is intended to guide learners through a high-school level (IGCSE, IB Diploma, or similar) curriculum. It is intended to be purchased by adults over 18 years old, either for their own fundamental learning, or to be then given to a younger person to use. According to Udemy's regulations, "Those under 18 may use the services only if a parent or guardian opens their account, handles any enrollments, and manages their account usage." If you are under 18, I encourage you to take this course but to let your parent or legal guardian manage the enrollment and payment.
In this course, you will be able to:
Review the Computer Science syllabus in a logical and organized manner
Gain a deep understanding of each topic through clear explanations and illustrative images and videos
Reinforce your knowledge with interactive quizzes and exercises
Keep track of your learning with helpful study guides
Get instant feedback on your progress and identify areas you need to work on.
This course includes:
Video lessons covering the key topics of algorithms, algorithmic design, and computer programming
Quizzes and exercises to reinforce your understanding
Downloadable study guides
Access to an expert instructor for support and guidance
A supportive community of like-minded students to share your journey
This course is taught by a highly experienced Computer Science teacher who has spent many years teaching the subject in top-class international schools around the world, preparing students for success in many curricula and exams. He is a certified and highly qualified Computer Science teacher at the secondary level as well as at other levels.
This IGCSE Computer Science (O Level) masterclass covers all the content needed to write the IGCSE and GCSE Computer Science exams offered by Pearson Edexcel or Cambridge CIE or other exam boards like Oxford AQA. It also covers the basics of content required by the IB Diploma Computer Science course, AP Computer Science, or other High School or Secondary School Computer Science programs.