Ads
Free course

Free Computer Science Course - Harvard CS50x 2026 Curriculum

Harvard's comprehensive introduction to computer science covers computational thinking, algorithms, data structures, and software engineering. Starting with Scratch and C, the course progresses through memory management, Python, SQL, and web development with Flask, concluding...

13 lessons 24h 38min total Free

Course overview

This computer science course presents the complete Harvard CS50x 2026 curriculum, a rigorous introduction to the intellectual enterprises of the field. The sequence builds from foundational computational thinking using Scratch through low-level programming in C, where learners manage memory, pointers, and data structures. It then transitions to higher-level abstraction with Python, relational databases using SQL, and web development with HTML, CSS, JavaScript, and the Flask framework. The course culminates with a dedicated lecture on modern artificial intelligence, covering large language models and machine learning, ensuring a holistic understanding of both classical and contemporary computer science principles.

Who this course is for

This course is designed for absolute beginners and those with non-technical backgrounds seeking a robust entry into computer science. It suits students who want to understand programming from first principles, professionals aiming to transition into software development, and self-taught coders looking to formalize their knowledge of algorithms and memory management. If you are curious about how computers process information, eager to solve problems methodically, and ready to engage with both C and Python, this sequence provides the structured intellectual challenge needed to build lasting computational thinking skills.

How to study this sequence

Follow the lectures sequentially, as each builds directly on the previous one. Begin with Scratch to grasp fundamental logic, then move through C to understand memory and data structures at a low level. Transition to Python to see higher-level abstractions before tackling SQL for data persistence. Complete the web development lectures on HTML, CSS, JavaScript, and Flask to see how back-end and front-end systems connect. The artificial intelligence lecture fits naturally after understanding core programming, providing a modern context. Write code alongside each lecture to solidify concepts before moving forward.

What you should be able to do

By completing this sequence, you will gain a practical understanding of computational thinking and the ability to write programs in C and Python. You will be able to design and implement algorithms, manage memory effectively, query relational databases with SQL, and build dynamic web applications using Flask. You will understand how the internet works at the protocol level and possess a foundational grasp of artificial intelligence concepts, preparing you for advanced study in specialized areas like systems programming, data science, or full-stack development.

~/about-course

What you learn in this Computer Science course

This course organizes 13 Computer Science lessons in a practical order, starting with the base and moving toward examples you can repeat in your own projects.

The main practice points are Understand fundamental concepts in computer science and computational thinking, Learn programming fundamentals through hands-on coding projects, Develop algorithmic problem-solving skills applicable across domains and Explore multiple programming languages and paradigms. Use this page to review the course proposal, check the key topics, and open the lessons in the recommended order.

What you will practice

  • Understand fundamental concepts in computer science and computational thinking
  • Learn programming fundamentals through hands-on coding projects
  • Develop algorithmic problem-solving skills applicable across domains
  • Explore multiple programming languages and paradigms
  • Build real-world applications and understand software development practices
  • Understand how computers represent numbers using binary and other numeral systems

Concepts covered

Computational Thinking Algorithms Data Structures Programming Paradigms Problem-Solving Methodology Software Engineering Principles Binary representation ASCII and Unicode encoding

Course lessons

13 tutoriais organizados em sequência.

~/course-summary

Course summary

This Computer Science course brings together 13 lessons in a guided sequence. It starts with "CS50x 2026 – Introduction" and moves step by step, so each lesson supports the next one and helps turn the topic into practice.

During the course, the practical focus is on Understand fundamental concepts in computer science and computational thinking, Learn programming fundamentals through hands-on coding projects, Develop algorithmic problem-solving skills applicable across domains and Explore multiple programming languages and paradigms. These points help you watch with a goal instead of treating the lesson as a loose introduction.

The course also introduces important ideas such as Computational Thinking, Algorithms, Data Structures, Programming Paradigms and Problem-Solving Methodology, which makes it easier to understand later tutorials and decide when each resource is useful.

~/study-plan

How to get more from this course

Who this Computer Science course is for

This course is useful for anyone who wants a direct introduction to Computer Science before moving into longer studies. It works especially well when you want to understand the subject through organized lessons instead of scattered searches.

What you can do after finishing

By the end, you should be able to review the main idea of the course and practice Understand fundamental concepts in computer science and computational thinking, Learn programming fundamentals through hands-on coding projects, Develop algorithmic problem-solving skills applicable across domains and Explore multiple programming languages and paradigms with more confidence.

Recommended study order

Watch the 13 lessons in the order shown on this page. Pause after each lesson to repeat the examples and only move on when the previous step makes sense.

What to study next

After finishing the course, explore the Computer Science topic to find related tutorials and keep studying with more context.

~/course-faq

Course questions

Is this Computer Science course for beginners?

Yes. The course is presented as an entry point for Computer Science and can be used before moving into more advanced tutorials.

How many lessons are in this course?

This course currently has 13 lessons and about 24h 38min in total.

What should I do after finishing the course?

The best next step is to explore the Computer Science topic and choose a related tutorial that matches what you want to practice.

Is this course free?

Yes. This is a free course organized by CursoB so you can study Computer Science in a structured sequence.

Do I need previous experience to follow the course?

You do not need advanced experience. The course starts from the main ideas of Computer Science and moves through the lessons step by step.

Should I watch the lessons in order?

Yes. The recommended path is to watch the 13 lessons in the order shown, because each lesson helps prepare the next one.

Can I use this course for practical projects?

Yes. Use the course as a practical reference to train Understand fundamental concepts in computer science and computational thinking, Learn programming fundamentals through hands-on coding projects, Develop algorithmic problem-solving skills applicable across domains and Explore multiple programming languages and paradigms and adapt the examples to your own projects.

Does this course include a certificate?

CursoB stopped issuing certificates for its own courses in May 2026. CursoB no longer offers completion certificates. Courses and tutorials remain free to study. If content is hosted on another platform, any certificate depends exclusively on the original author or platform rules.

Are the lessons updated?

CursoB periodically reviews the Computer Science catalog and may add, remove, or reorder lessons when better content is found.

Where can I find more content on this subject?

Explore the Computer Science topic to find related tutorials and complementary courses.

~/lesson-notes

What each course lesson covers

Use these notes to understand the sequence before opening each lesson.

  1. 01 CS50x 2026 – Introduction In this lesson, you practice Understand fundamental concepts in computer science and computational thinking, Learn programming fundamentals through hands-on coding projects and Develop algorithmic problem-solving skills applicable across domains.
  2. 02 CS50x 2026 – Lecture 0 – Scratch In this lesson, you practice Understand how computers represent numbers using binary and other numeral systems, Learn character encoding schemes like ASCII and Unicode for text representation and Apply algorithmic thinking to decompose problems into logical steps.
  3. 03 CS50x 2026 – Lecture 1 – C In this lesson, you practice Understand C syntax and how to write basic programs that compile and run, Apply data types and variables to store and manipulate different kinds of information and Implement conditionals and loops to control program flow and repeat operations.
  4. 04 CS50x 2026 – Lecture 2 – Arrays In this lesson, you practice Master debugging techniques and use debug50 to identify and fix code errors, Understand the C compilation process and interpret compiler messages and Declare and use variables with appropriate data types for different programming tasks.
  5. 05 CS50x 2026 – Lecture 3 – Algorithms In this lesson, you practice Understand the fundamental concepts of algorithms and their role in computer science, Implement and analyze linear and binary search techniques and Calculate and interpret Big O running time complexity for different algorithms.
  6. 06 CS50x 2026 – Lecture 4 – Memory In this lesson, you practice Understand how memory addresses and hexadecimal notation work in computer systems, Use pointers to access and manipulate memory directly in C programs and Manage strings as character arrays and perform pointer arithmetic.
  7. 07 CS50x 2026 – Lecture 5 – Data Structures In this lesson, you practice Understand the principles and applications of stacks and queues, Implement and manipulate arrays with dynamic resizing techniques and Build and traverse linked lists using pointers and dynamic memory.
  8. 08 CS50x 2026 – Lecture 6 – Python In this lesson, you practice Understand Python syntax and core programming concepts, Work with data types, lists, and dictionaries effectively and Write and organize code using functions and control flow.
  9. 09 CS50x 2026 – Lecture 7 – SQL In this lesson, you practice Understand the architecture and advantages of relational databases over flat-file storage, Design database schemas with appropriate data types, constraints, and key relationships and Write SQL queries to retrieve, filter, join, and aggregate data from multiple tables.
  10. 10 CS50x 2026 – Artificial Intelligence In this lesson, you practice Understand how generative AI systems create new content from learned patterns, Master prompt engineering techniques to optimize interactions with language models and Apply classical machine learning algorithms like decision trees to real problems.
  11. 11 CS50x 2026 – Lecture 8 – HTML, CSS, JavaScript In this lesson, you practice Understand TCP/IP, DNS, DHCP, and HTTP protocols that power web communication, Build semantic HTML structures and forms for web applications and Apply CSS styling and responsive design with Bootstrap framework.
  12. 12 CS50x 2026 – Lecture 9 – Flask In this lesson, you practice Build web applications using Flask routing and request handling, Design and render dynamic HTML templates with Jinja and Process user input through forms with GET and POST methods.
  13. 13 CS50x 2026 – Lecture 10 – The End In this lesson, you practice Understand computational thinking as a universal problem-solving framework, Recognize how programming languages and tools serve as vehicles for computational ideas and Connect foundational CS50 concepts across data structures, algorithms, and applications.