DrRacket is a versatile programming language that serves as this course's introduction to the world of programming. You will learn to manipulate images, create animations, and work with various data structures.
Images are visual representations of data. In order to manipulate and edit images in the Racket world, you learn various functions that can help you start from simple shapes and work your way up to complex images, such as a replica of L'arc de Triomphe and beautiful scenery.
Whenever you see something move or act in a digital format, it can be considered an animation. Although it may seem quite normal (or simple), there are several components that go into programming an animation. In this unit, you will understand the fundamentals of animations and create basic games.
Mathematics is the foundation of computer science, so learning how to use numbers in your code is extremely important. This unit will be focused on learning syntax within racket and applying it to diverse situations like creating a gradient or building an animation.
After learning about numbers, you will start to create programs and functions that utilize these numbers. Numbers can become parameters in your function or simply arithmetic tools you use. Also in this unit, you'll learn how to use the random, min, and max functions.
Booleans are ways of representing the binary nature of certain situations. Usually, they work as true/false indicators that let you know whether one data type is the same as another, or which point is closer to the origin.
Booleans can be more complex than a simple true/false operation, though. If you have a conditional where the computer must check several situations, the use of booleans can be even more important. You'll learn how to use built-in Racket functions like stop-when and check-with which will give you an option to control your program/animation from an external point of view.
Conditionals are a way of creating separate possibilities within the digital world. If you want to create a function that depends on a user input, conditionals could work really well. For instance, maybe you want a blue circle on the screen if the user types a number less than 5 but an orange one if the number is more. Using a conditional here would be perfect!
Animations don't have to be just simple programs where one thing changes over time, like the sun rising over a horizon. In fact, there can be multiple components of an animation such as mouse and keyboard actions. This is where you can learn to create and play your own game.
Data Structures are one of the most fundamental yet all the more important parts of computer science. Although there exist several data structures within the Racket program that make your life easier, knowing how to create your own and manipulate them is crucial.
After creating your own data structures, you need to get comfortable using them within more complicated programs. If you were to make a game, for example, making a "game" data structure would make your life so much easier as opposed to using build-in functions.
Computers are great at doing repetitive and boring tasks humans aren't great at; they can just do them much faster. In this unit, you'll learn how to make loops and recursion functions that will make your code much more efficient.
Lists are an integral part of all computer science. In order to fit several items into an organized set of data, using lists helps you become more efficient and organized when coding.
Creating a universe in Racket is being able to start a new server and manage multiple servers so you can create a program that cross-references between servers and manages complexity.
Throughout this course, you are going to be creating countless programs. Some of them, like the Art Project using images, is both rewarding and visual. Adding a hands-on element to the class and using code in a practical sense will help you improve as a coder.