CS 124 daily lessons mix text, interactive walkthroughs, video content, and small practice and homework problems.
Each one brings you one step closer to mastering the basics of computer science and programming. And the course staff will accompany you every step of the way, to ensure that you are not alone.
Next we'll continue discussing linked lists and implement a few list methods together.
Now for a different take on lists, we'll examine lists that store the position of items using reference linking.
This lesson starts the third half of the class, our exploration of data structures, algorithms, and algorithm analysis.
Today we'll begin work together on the machine project!
This lesson explores lambda expressions, a terse way of implementing interfaces using anonymous classes.
Next we'll examine how to implement interfaces on our own classes.
Let's continue to learn about exceptions by finding out how and when to generate our own errors.
Next we'll begin learning how to work with exceptions by understanding how to handle them when they occur.
Let's combine what we know about polymorphism and references to deepen our understanding even further.
Our focus in this lesson is on references, both generally and specifically.
Next we'll complete another data modeling exercise that pulls together everything that we've learned.
What does it mean for two objects to be equal? And how do we copy them? In this lesson we'll find out.
This lesson introduces a big new word and a big new idea: polymorphism.
Our next lesson explores the relationships between classes established through inheritance.
This lesson puts our new abilities with objects to use modeling a real-world system.
Next we'll continue understanding Kotlin objects by exploring companion objects.
Next we'll continue understanding Java objects by exploring the static keyword and its implications.
In this lesson we'll investigate how to enable encapsulation through visibility modifiers and setters and getters.
Let's continue our discussion of objects by examining object methods.
Let's explore a bit of programming internals, specifically your code is tranformed before it is executed in a process known as compilation.
Let's explore a bit of programming internals, specifically your code is tranformed before it is executed in a process known as compilation.
Let's get a bit more practice with collections, those basic data structures that are so useful.
Next we'll learn how to use lists, a linear data structure but one that is a bit more useful than the arrays that we've been working with so far.
This lesson may be the most important of the entire semester, since it shows you how to use other people's code!
This lesson expands our ability to work with sequential data into multiple dimensions!
Let's reinforce what we know about strings by working with a few more problems together!
How many problems can nothing cause? Quite a few! We'll learn more about the nothing that is a huge problem in this lesson.
Our next lesson is on algorithms and strings, and gives us a bit more practice with both.
In this lesson we'll explore the connections between functions and algorithms.
Let's pause for a bit more practice with functions before we continue our journey together.
Next we'll continue discussing functions and introduce several common algorithm patterns.
Let's examine errors, debugging, and maintaining a healthy mindset as you learn to work with computers.
As we begin writing algorithms, let's stop and discuss how to organize our code into reusable units called functions.
In this lesson we'll pause for more practice with loops and algorithms, including several chances to get practice solving real problems.
Next we'll pull together everything we've learned so far and use our new skills to start solving real problems. Or, put another way, we'll start designing algorithms.
In this lesson we'll cover our last core computer capability: the ability to repeat something multiple times, very quickly.
Let's learn about our first data structure: arrays, which put data values in order.
Next we'll examine how to make our conditional statements a bit more complex, allowing us to make more interesting decisions based on data in our programs.
One of the things that makes computers so powerful is their ability to make decisions. We'll explore that capability in our programs in this lesson.
Our journey continues as we examine how we can manipulate the data stored by variables in our programs.
Let's begin our journey in computer science by presenting two of the basic building blocks of computer programs: variables and data types.