

Our Courses

Introduction to Programming with Python and Java
This Specialization starts out by teaching basic concepts in Python and ramps up to more complex subjects such as object-oriented programming and data structures in Java. By the time learners complete this series of four courses, they will be able to write fully-functional programs in both Python and Java, two of the most well-known and frequently used programming languages in the world today. Introduction to Programming with Python and Java is for students and professionals who have minimal or no prior programming exposure.
-
Course by
-
Self Paced
-
English

Computational Thinking for K-12 Educators: Nested If Statements and Compound Conditionals
How could you program a complex "choose your own adventure" game? How can your soccer game determine goals, balls out of bounds, and corner kicks? You'll learn to do both of these in this course! This class teaches the concepts of nested if/else statements and compound Boolean conditional expressions. For each concept, we'll start by helping you connect real-world experiences you are already familiar with to the programming concept you are about to learn.
-
Course by
-
Self Paced
-
12 hours
-
English

Computational Thinking for K-12 Educators: Variables and Nested Loops
How can students learn about abstraction by creating a movie scene? Or make an interactive map using lists? You'll learn (and do it yourself) in this course! This class teaches the concepts of abstraction (methods and parameters) and lists. For each concept, we'll start by helping you connect real-world experiences you are already familiar with to the programming concept you are about to learn. Next, through a cognitively scaffolded process we'll engage you in developing your fluency with problem solving with abstraction and lists in a way that keeps frustration at a minimum.
-
Course by
-
Self Paced
-
16 hours
-
English

Computational Thinking for K-12 Educators: Sequences and Loops
How do we give instructions to a computer? Isn't programming hard? Not really! Whether it's giving someone directions to a nearby store or writing out some dance moves we frequently exhibit aspects of computational thinking in our everyday lives! This class teaches the first key concepts of programming -- sequences of instructions and basic counted repetition of instructions. For each concept, we'll start by helping you connect real-world experiences you are already familiar with to the programming concept you are about to learn.
-
Course by
-
Self Paced
-
11 hours
-
English

Computational Thinking for K-12 Educators: Conditional Loops and If Statements
Want to make a game that ends when you "catch" an object by clicking on it? Or maybe you get points based on how close you came? You'll do that in this class! This class teaches the concepts of conditional loops and if/else statements. For each concept, we'll start by helping you connect real-world experiences you are already familiar with to the programming concept you are about to learn.
-
Course by
-
Self Paced
-
12 hours
-
English

Computational Thinking with JavaScript 4: Create & Deploy
This is the fourth and final course in the Computational Thinking with JavaScript specialisation. It is an added-value unit and entirely builds on what you will have learned in the first three units and enables you to synthesise and develop that knowledge. The course supports you to develop your own larger application, using a combination of the technologies you have seen already, including HTML, JavaScript and various libraries, while also encouraging you to reach out to incorporate new libraries.
-
Course by
-
Self Paced
-
21 hours
-
English

Data Analysis and Representation, Selection and Iteration
This course is the second course in the specialization exploring both computational thinking and beginning C programming. Rather than trying to define computational thinking, we’ll just say it’s a problem-solving process that includes lots of different components. Most people have a better understanding of what beginning C programming means! This course assumes you have the prerequisite knowledge from the previous course in the specialization. You should make sure you have that knowledge, either by taking that previous course or from personal experience, before tackling this course.
-
Course by
-
Self Paced
-
11 hours
-
English

Problem Solving, Python Programming, and Video Games
This course is an introduction to computer science and programming in Python. Upon successful completion of this course, you will be able to: 1. Take a new computational problem and solve it, using several problem solving techniques including abstraction and problem decomposition. 2. Follow a design creation process that includes: descriptions, test plans, and algorithms. 3.
-
Course by
-
Self Paced
-
80 hours
-
English

Computational Thinking for K-12 Educators Capstone
In this capstone project course, you will learn to support your students in successfully completing the Advanced Placement Principles Create Task -- however this task can be useful for any course as a culminating, student-designed final programming project. You will learn to interpret and practice applying to real sample student work the Create Task rubric and have the option to modify it for your own setting.
-
Course by
-
Self Paced
-
11 hours
-
English

Simulation, Algorithm Analysis, and Pointers
This course is the fourth and final course in the specialization exploring both computational thinking and beginning C programming. Rather than trying to define computational thinking, we’ll just say it’s a problem-solving process that includes lots of different components. Most people have a better understanding of what beginning C programming means! This course assumes you have the prerequisite knowledge from the previous three courses in the specialization.
-
Course by
-
Self Paced
-
11 hours
-
English

Open Design
What is design? How is it a deeply human endeavor? How can we design better products, services, and experiences in our communities? If you’re interested in helping create a more equitable and accessible world, this Center for Computational Thinking module on Open Design is for you. In this introductory module to Open Design, you’ll learn how you can center equity in your design processes. You’ll learn how the iterative four mindsets of Open Design — understand, create, evaluate, and share — will guide you to meaningfully impact your community.
-
Course by
-
Self Paced
-
5 hours
-
English

Programming with Scratch
Learning coding is not only about understanding the programming language being used, but also developing important computational thinking skills, which are useful for problem solving across many disciplinary areas. In this course, students will learn basic programming skills by creating interactive storybooks, animations, and games with Scratch, which is a block-based visual programming language for anyone new to coding.
-
Course by
-
Self Paced
-
26 hours
-
English

Computational Thinking with JavaScript 2: Model & Analyse
This is the second course in a sequence of four courses that develops essential 21st century computational thinking (CT) skills using the popular JavaScript programming language. At the end of this second course you will: know a framework for CT to help you model the real world using abstract data structures; have developing CT skills so that you can perform comon data analytics tasks; be able to read and write programs in JavaScript that involve processing, analysing and visualizing data, using a specialised library; and post your creations on the web to share your code with others. This co
-
Course by
-
Self Paced
-
20 hours
-
English

Programming for Data Science
Learn how to apply fundamental programming concepts, computational thinking and data analysis techniques to solve real-world data science problems.
-
Course by
-
English

Computational Thinking with Beginning C Programming
This specialization is designed to let you explore computational thinking and beginning C programming topics, applying those concepts to develop solutions to a variety of practical problems.The first course assumes no programming experience, and throughout the 4 courses in the specialization you'll learn about both computational thinking and C programming. The material in the courses in the specialization is equivalent to our computational thinking course at UCCS.
-
Course by
-
Self Paced
-
English

Abstraction, Problem Decomposition, and Functions
This course is the third course in the specialization exploring both computational thinking and beginning C programming. Rather than trying to define computational thinking, we’ll just say it’s a problem-solving process that includes lots of different components. Most people have a better understanding of what beginning C programming means! This course assumes you have the prerequisite knowledge from the previous two courses in the specialization. You should make sure you have that knowledge, either by taking those previous courses or from personal experience, before tackling this course.
-
Course by
-
Self Paced
-
17 hours
-
English

Computational Thinking & Block Programming in K-12 Education
In the 21st century, computational thinking is a skill critical for all the world's citizens. Computing and technology is impacting all our lives and everyone needs to know how to formulate problems and express their solutions such that a computer can carry it out. In this Specialization you will both learn several block-based languages, but using novel approaches designed to make learning programming easier. Covers most CSTA Algorithms & Programming Standards for Algorithms, Variables, Control, and Modularity: Levels 1-3A.
-
Course by
-
Self Paced
-
English

Computational Thinking with JavaScript
This Specialization is intended for those with minimal under-the-hood experience of working with computing who want to take the first steps towards a deep understanding of principles and practice of how to solve problems with software technology. Learners will use JavaScript within a web-based framework to generate graphics and analyse data, bringing these together in interactive web applications. Learners will acquire specific self-directed learning skills, enabling them to tackle new problem domains and technologies throughout their work and life.
-
Course by
-
Self Paced
-
English

Computational Thinking with JavaScript 3:Organise & Interact
This third course in the Computational Thinking with JavaScript specialization applies your developing JavaScript skills learned in the first two courses to the world of the web. You will learn how HTML and JavaScript together support the web pages with which we are so familiar, and develop skills so that you can create your own. As well as text presentation, at the heart of HTML, you will learn how to develop interactive, animated graphics, using JavaScript to dynamically add, remove and adjust the HTML objects on the screen.
-
Course by
-
Self Paced
-
29 hours
-
English

Computational Thinking for K-12 Educators: Abstraction, Methods, and Lists
How do gamers cause things to happen when they hit buttons on their controller? How does the computer keep track of gamer's scores? This class teaches the concepts of nested loops, events, and variables. For each concept, we'll start by helping you connect real-world experiences you are already familiar with to the programming concept you are about to learn. Next, through a cognitively scaffolded process we'll engage you in developing your fluency with problem solving with nested loops, events, and variables in a way that keeps frustration at a minimum.
-
Course by
-
Self Paced
-
9 hours
-
English

人群与网络
本课程是北京大学开设的一门在线跨学科选修课程,主要面向信息技术、社会学和经济学等专业的本科生。课程内容涉及用计算思维的方法讨论社会学和经济学的一些经典问题。学习运用计算思维分析社会学、经济学问题的方法,加深对某些生活现象的理解,体会计算与社会科学的互动。 Learn to analyze and reason about problems in social sciences with computational thinking, appreciate interactions between computing and social sciences, as well as gain deeper understanding of some common phenomena in life and society
-
Course by
-
Self Paced
-
Chinese

Teaching Computational Thinking
This course is for educators who are passionate about the future of their 7-12+ year old students and want to learn more about teaching computer science in an engaging and meaningful way.
-
Course by
-
Self Paced
-
15
-
English

Data Structures Fundamentals
Learn about data structures that are used in computational thinking – both basic and advanced.
-
Course by
-
Self Paced
-
English

Introduction to Computational Thinking and Data Science
6.00.2x is an introduction to using computation to understand real-world phenomena.
-
Course by
-
English

Problem Solving Using Computational Thinking
Have you ever heard that computers "think"? Believe it or not, computers really do not think. Instead, they do exactly what we tell them to do. Programming is, "telling the computer what to do and how to do it." Before you can think about programming a computer, you need to work out exactly what it is you want to tell the computer to do. Thinking through problems this way is Computational Thinking. Computational Thinking allows us to take complex problems, understand what the problem is, and develop solutions.
-
Course by
-
Self Paced
-
11 hours
-
English