Learn to Program with Alice

Learn how to get started with programming using specialized tool designed to make programming approachable and fun.
4.7 (3 ratings)
Instead of using a simple lifetime average, Udemy calculates a
course's star rating by considering a number of different factors
such as the number of ratings, the age of ratings, and the
likelihood of fraudulent ratings.
32 students enrolled
$19
$20
5% off
Take This Course
  • Lectures 25
  • Length 2 hours
  • Skill Level Beginner Level
  • Languages English
  • Includes Lifetime access
    30 day money back guarantee!
    Available on iOS and Android
    Certificate of Completion
Wishlisted Wishlist

How taking a course works

Discover

Find online courses made by experts from around the world.

Learn

Take your courses with you and learn anywhere, anytime.

Master

Learn and practice real-world skills and achieve your goals.

About This Course

Published 6/2015 English

Course Description

In this course, we introduce the basics of computer programming using the visual animation environment known as Alice. Alice is a free software package that allows students to quickly dive in to programming concepts in a visual interface that provides a simple, intuitive, and fun experience. We do not expect the student to have any programming experience or knowledge prior to beginning the course. Students will begin their programming journey with a basic understanding of concepts such as Object, Methods, and Events. Students will then move on to learning about If Statements, Repetition, Parameters, and Functions. The concepts will be pulled together to create a simple game as a final project.

The course is taught in a hands-on approach, with demonstrations of the Alice programming fundamentals. Handouts of any presentations and a glossary of basic terms are included as supplements.

The pace of the course is designed for brand new learners interested in gaining a basic understanding of programming concepts. Taught by an industry leader and experienced instructor, this course aims to be approachable and fun. By the end of the course, the student should feel comfortable exploring new programming languages, confident they have a solid foundation of concepts.

What are the requirements?

  • Students will need a PC, Mac, or Linux computer with Java and the ability to download the Alice programming environment

What am I going to get from this course?

  • Understand the basic concepts of programming
  • Combine basic programming fundamentals to make larger programs
  • Communicate pros and cons of various programming constructs

What is the target audience?

  • Absolute beginners or students with no experience programming

What you get with this course?

Not for you? No problem.
30 day money back guarantee.

Forever yours.
Lifetime access.

Learn on the go.
Desktop, iOS and Android.

Get rewarded.
Certificate of completion.

Curriculum

Section 1: Getting Started with Alice
10:16

So why should we use Alice to learn how to program? Simply put, it is easy, fun, and gets out of the way. In this lecture, we introduce the course and explain why we chose Alice for teaching new programmers the fundamentals.

02:05

Now that we understand the why of Alice, let's get started with the "how" and demonstrate how to install this program.

3 pages

When learning any new skill or discipline, new vocabulary may sound complex or ambiguous. Don't worry, a basic introduction to some common terms is provided here. All of the terms will be explained in more depth throughout the course.

04:43

When first starting the Alice program, the layout may seem intimidating. Luckily, the sections of the program are easy to understand once explored.

5 questions

This quiz will ask a few basic questions to test your knowledge of the introductory concepts.

Section 2: Methods
03:05

Methods are how we give commands to our objects. In this lecture, we will demonstrate how to use the built in methods Alice provides.

05:13

Sometimes, we need our animations and objects to perform different operations than what is provided by default. For that, we can build our own methods. This will also help us write more maintainable code.

08:27

Of course, it would be a pain if we had to write our methods to do only one thing at a time without variance. Could imagine having a "Hop 2 meters", "Hop 4 meters", or "Hop 122 meters"? It would quickly become difficult. In this lecture, we explore Parameters, which lets us tweak our methods to our needs.

01:53

Alice will remind you to save every 15 minutes. This is a good practice to prevent lost work. In this lesson, we discuss how to save Alice, what the file type looks like, and how to reopen our saved worlds.

05:19

In this lecture, we explore creating our own methods on the world object, also known as world-level methods. This will allow us to share our methods between different objects.

03:41

Continuing where we left off, we expand our knowledge of world level methods and then summarize our understanding of using methods to modularize our code.

Methods
3 questions
Section 3: Classes and Interactions
04:53

What if we wanted to create multiple copies of a class with methods we created? In this lesson, we talk about inheritance and classes. Inheritance allows us to make another template for our classes so we can reuse the hard work we already created!

04:52

Stepwise refinement is the process of starting with a larger problem and breaking it down into smaller problems. In doing so, it is easier to manage and refine our code peice by piece.

09:03

In this lecture, we expand upon our conceptual understanding of stepwise refinement by starting with a larger problem and breaking it down.

02:51

Events are the starting point for designing interactive applications. In this presentation, we explain the basic concepts of events before diving into writing our own event handlers.

05:48

In this lecture, we write our code to respond to various events. This makes our animation feel more responsive and itneractive.

05:14

Sometimes, we need to know various details about our objects and their relationships to each other. In this lecture, we explore the basic concepts of Functions, which allow us to ask questions of our world and return data to our methods.

07:46

Continuing where we left off, we next move into our discussion of custom functions and how to do some basic math to return values useful for more realistic animations.

Classes, Events, and Functions
5 questions
Section 4: Loops and Branching
05:42

Often while programming we will want to repeat sections of our code or blocks of functionality. Sometimes we will know how many times we want our code to repeat and other times we will need to do checks as the code is running. In this lecture, we explain the basics of repetition structures within programming.

07:13

Taking our foundational knowledge, we next move on to explore both fixed-count loops and conditional loops.

06:44

When we need to branch our code to do one of two separate logic paths, we need to use a conditional, also known as an If statement. Using a conditional allows us to choose, based upon some condition, what our animation should do.

06:51

Armed with our knowledge of loops, functions, and conditionals, we can now build a basic simulation. We will use a random number (probability) function to ask our scenes to behave differently each time the animation is run.

04:00

With a good understanding of the foundational concepts, it is time to build a simple guessing game!

03:57

In this less, we continue improving our game using stepwise refinement.

03:10

In this lesson, we wrap up our guessing game. We use the vehicle logic, custom functions, and looping structures to allow our game to reset and continue after each guess.

Loops and Conditions
5 questions
Section 5: Summary
04:22

This is it! We've completed the material and you should have a better grasp of the fundamental programming concepts. This is just the first of many steps on the journey to learning to code. Your next step is up to you, but try to think of something fun! Python, Javascript, Ruby... the choices are plentiful!

Students Who Viewed This Course Also Viewed

  • Loading
  • Loading
  • Loading

Instructor Biography

Kevin Eaton, Technology Expert, Entrepreneur, and Professional Instructor

I am an experienced technology professional with experience primarily focused on open source technologies. I have managed large teams of highly talented cross-functional team members using agile methodologies. I have been a founding member of several startups and have a passion for training and mentoring. I have created commercially successful applications in a wide range of technologies, including NodeJS, GoLang, Java, PHP, Python, Javascript, HTML5, MongoDB, and MySQL. On the mobile front, I have created applications for iOS, Android, and Windows Phone 7/8 platforms using both native development tools and PhoneGap/Cordova. I have served in DevOps roles utilizing automated testing, continuous integration, automated documentation, continuous deployment, automatic scaling, and cloud infrastructure management. I love leveraging new technologies to solve complex business requirements.

I teach full-time for a major US University where I focus on Computer Science and Information Technology. I have taught both online courses and residential courses. I have complete several Post-Doctoral programs, including a PhD, a DBS, and several Master's Degrees.

I am also a U.S. Army Reserve Officer and serve as a Brigade Chaplain. I am tasked with monitoring unit morale, serving as a religious expert, providing counseling on a wide range of topics, and ensuring that any Soldiers with concerns have an advocate.

Specialties: NodeJS, GoLang, PHP, Java (Android, JEE and JSE), Python, Perl, XHTML, CSS, MySQL, MongoDB, Agile Management, .NET, DevOps, Jenkins, and many other tools and technologies

Ready to start learning?
Take This Course