New Releases on Sale
New Releases on Sale
  • Outdoor Fundamentals: Everything You Need to Know to Stay Safe

    Professor Elizabeth K. Andre, PhD

    Available Formats: Instant Video, DVD

    Transform your next (or your first!) outdoor adventure from “roughing it” in the great outdoors to “smoothing it” in the natural world.

    Outdoor Fundamentals: Everything You Need to Know to Stay Safe

    is about enjoying life in the backcountry. Taught by Professor Elizabeth K. Andre of Northland College, these 24 insightful lectures will give you the practical skills you need to set off for the water or the woods.

    View Lecture List (24)

    Transform your next (or your first!) outdoor adventure from “roughing it” in the great outdoors to “smoothing it” in the natural world.

    Outdoor Fundamentals: Everything You Need to Know to Stay Safe

    is about enjoying life in the backcountry. Taught by Professor Elizabeth K. Andre of Northland College, these 24 insightful lectures will give you the practical skills you need to set off for the water or the woods.

    View Lecture List (24)
    24 Lectures  |  Outdoor Fundamentals: Everything You Need to Know to Stay Safe
    Lecture Titles (24)
    • 1
      The Call of the Wild
      We often think of “roughing it” in the outdoors—testing our mettle against the forces of nature and depriving ourselves of creature comforts. But it doesn’t have to be that way. In this introductory lecture, explore some of the many reasons to venture into the great outdoors. Find out how, instead of “roughing it,” you can “smooth it.” x
    • 2
      Backpacking and Trip Planning
      A backpacking trip can be profoundly enjoyable, provided you plan ahead and pack a few necessities (and leave a few non-essentials at home). Learn how to stay hydrated, eat well, take care of your skin, and protect your feet on the trail. Gain a few safety tips for traveling in a group. x
    • 3
      Canoe or Sea-Kayak Camping
      Glide into the backcountry or open ocean—in style! Paddling is one of the most serene ways to enjoy the natural world, but there are a few perils that come with canoeing or kayaking. From battling waves and weather to staying warm in cool waters, learn how to take on the world’s oceans, lakes, and rivers. x
    • 4
      Campcraft: Selecting and Organizing Gear
      You don't have to spend much time with outdoor enthusiasts to learn it's all about the gear. From high-tech creature comforts to lightweight innovations, there's no shortage of ways to outfit your next overnight. What do you really need? How do you balance weight versus convenience? Start building your system of gear in this practical lecture. x
    • 5
      Clothing and Footwear for Outdoor Adventure
      Investigate the world of shell layers, synthetic materials, insulation, and ankle support to help you maintain a comfortable body temperature, manage moisture, and protect your skin. Whether it's a multi-day snow hike or car camping in the desert, Professor Andre shows you how to select just the right clothing and footwear for your next outdoor excursion. x
    • 6
      Basics for Wilderness Safety
      Lions, tigers, and bears … well, your wilderness adventure might not bring you in contact with a tiger, but plenty of other risks abound, from snakes to stinging insects to, yes, black bears and mountain lions. See what it takes to stay safe on the trail, and how to stay healthy while you’re off the grid. x
    • 7
      Weather Forecasting and Moon Phases
      Cold fronts and warm fronts are more than meteorological mumbo jumbo. With a little training, you can look at cloud patterns and know whether rain is on the way—and what type of storm to expect. As you dig into the fascinating world of weather patterns, you’ll learn how to survive lightning, floods, tornadoes, and more. x
    • 8
      Introduction to Navigation
      For most of us accustomed to GPS directions and well-marked streets, it can be frighteningly easy to get lost in the woods. In this lecture, engage your senses—sight, sound, smell, and feel—to build mental maps of your surroundings. Find out how to measure time and distance on the trail. x
    • 9
      Navigating with Topographic Maps
      Topographic maps tell you a great deal about the terrain—details that don’t much matter in the civilized world. Professor Andre teaches you how to read these helpful maps, and then she shows you how to use a compass in sync with your topographic map. With a little practice on the trail or on the river, you may never get lost again. x
    • 10
      Assessing and Managing Risk in the Outdoors
      Risk management affects every aspect of our lives, but it’s especially critical when you don’t have instant access to shelter, medical supplies, and 911. Unpack the nature and likelihood of various risks in the outdoors, as well as our own cognitive biases, so you can make better—safer—decisions on the trail and off. x
    • 11
      How Emotions Affect Your Decision Making
      Life might be much simpler if we were all rational beings who always made highly calculated decisions. Alas, humans are emotional beings, and we make many of our most important decisions by feel rather than by thought. Learn to make better decisions by examining your emotions at play in the great outdoors. x
    • 12
      Selecting a Campsite and Pitching Shelter
      As anyone who does it regularly knows, camping is fun. But to make the most of it, you’ll want to set up a good campsite. Find out what makes a good campsite and how to set up a tarp or tent to keep you dry and cozy. This lecture comes with a special “bonus instruction” on tying knots to help you secure a tarp. x
    • 13
      Outdoor Kitchen Setup and Safety
      Your campsite might not be a gourmet kitchen with all the amenities, but with a few adjustments to your cooking regimen, you can cook some amazing meals outdoors. Survey the best way to set up your campsite kitchen, the basics of stove safety, and how to keep your hands and dishes clean. x
    • 14
      Building a Campfire
      Storytelling by a campfire is one of life’s most enjoyable activities—and it’s as old as humanity itself. But building a good fire can separate the amateurs from the pros at the campsite. From gathering tinder to establishing a bed of coals, see what it takes to construct a good fire in the wild. x
    • 15
      Safe Drinking Water in the Wilderness
      If you’re out in the backcountry for more than a day, you’re going to need to treat water to. Make it safe for drinking—removing sediment, bacteria, and other microorganisms that might make you sick. Reflect on your different options for filtering or purifying water, from boiling to chemical treatments, and the pros and cons of each. x
    • 16
      Outdoor Menu Planning and Cooking
      Humans survived for millennia without refrigeration, but enjoying a good meal on the trail requires a few adjustments to our modern lifestyle. You'll want to triangulate your daily calorie needs, the weight of your gear, and the taste of your food. Examine the range of options available for your next trip to the wild. x
    • 17
      Minimizing Your Impact on the Wilderness
      Nothing spoils an outdoor adventure faster than stumbling onto a messy campsite or a vandalized forest. Minimizing your impact in the backcountry is part of an unwritten code of courtesy for enjoying the wild. Learn the major principles for being a good steward of the wilderness. x
    • 18
      Hygiene on a Camping Trip
      Germs exist in the wild same as they do in civilization, but without running hot water it can be a challenge to keep yourself clean. From shoes to camp soap to disposable wipes, see what gear you can bring and what steps you should take to mitigate the spread of disease. Your body, and your camp mates, will thank you. x
    • 19
      Wilderness First Aid: Handling Emergencies
      It’s a good idea for everyone to have at least a basic understanding of wilderness first aid. The “wait-and-see” approach we might take in the front country could be deadly in the backcountry. In this first of two lectures, learn about first aid for the “big three”: circulatory, respiratory, and nervous systems. x
    • 20
      Wilderness First Aid: Nonemergency Care
      Continue your study of wilderness first aid with a look beyond the “big three” life-threatening concerns. Find out how to make a splint for an injured limb, how to treat an open wound, what to do for burns, and more. Learn a few guidelines for when to hike out and when to call for help. x
    • 21
      Navigating with a Compass
      A compass is one of the most useful tools on the trip, but only if you know how to use it. See how to get your bearings and travel off trail or over open water with the aid of a compass. Then, travel with Professor Andre to the Boundary Waters of northern Minnesota to practice your navigation skills. x
    • 22
      What to Do When You're Lost
      Getting lost is one of the easiest things to do in the backcountry. Perhaps you wander off the trail to gather firewood, or perhaps you stop paying attention to your map and compass. Whatever the reason, you find yourself lost. What should you do? Keep moving? Call for help? Build a shelter? Learn the do's and don'ts in this insightful lecture. x
    • 23
      Maintaining and Repairing Your Gear
      The right gear makes all the difference in the wild, but only if you take care of it between expeditions. Even the most avid outdoor enthusiasts may neglect to wash their sleeping bags or shake out their tents after a long stint in the bush. Here, Professor Andre offers a checklist of common gear ailments and how to prevent them. x
    • 24
      Connecting to the Wild within You
      Preparation and caution are important for venturing into the wild, but your outdoor experience is about more than following a checklist and staying hydrated. Whether on water or land, getting outdoors can be breath-taking, as this final lecture makes clear. Now, get ready for your own next adventure! x
  • Understanding the Dark Side of Human Nature

    Professor Daniel Breyer, PhD

    Available Formats: Instant Video, DVD

    In Understanding the Dark Side of Human Nature, Professor Daniel Breyer takes you on a fascinating cross-cultural philosophical journey into many of the deepest and, indeed, darkest questions that plague our souls. By looking carefully into these darkest aspects of ourselves and the human suffering in our world, we can better understand ourselves and appreciate our deep desire for meaning and purpose in our lives.

    View Lecture List (24)

    In Understanding the Dark Side of Human Nature, Professor Daniel Breyer takes you on a fascinating cross-cultural philosophical journey into many of the deepest and, indeed, darkest questions that plague our souls. By looking carefully into these darkest aspects of ourselves and the human suffering in our world, we can better understand ourselves and appreciate our deep desire for meaning and purpose in our lives.

    View Lecture List (24)
    24 Lectures  |  Understanding the Dark Side of Human Nature
    Lecture Titles (24)
    • 1
      What Do We Mean by the "Dark Side"?
      Most of us think of ourselves as good people—reserving the concept of the “dark side” only for science fiction or psychopaths. But that’s not really the truth of human nature. We’ll begin to explore how the dark side relates both to our tendencies toward immorality and evil and to some of the most problematic aspects of the human condition. x
    • 2
      Our Fundamental Nature: Good or Evil?
      Are people fundamentally good, fundamentally evil, or neither? To develop a sophisticated answer to this basic question, we reach back to a more than 2,000-year-old debate between great Confucian philosophers. Do you agree with optimism, pessimism, dualism, indifferentism, or individualism? Which theory of human nature speaks to you and frames your view of the world? x
    • 3
      What Is Evil?
      You probably have some ideas about what it means to be “evil.” But in order to fully examine the dark side of human nature, we need to go deeper—questioning both whether evil actually exists and what it means to call an action evil. Referencing a wide range of thinkers, some ancient, some contemporary, you’ll explore the ontological and conceptual aspects of evil. x
    • 4
      Moral Monsters and Evil Personhood
      Most of us have done something “bad” or immoral in our lives, although we wouldn’t consider ourselves evil. But where exactly is that line? What does it take for us to label a person evil? By considering four models of evil—the Evildoer, Dispositional, Affect, and Moral Monster models—you’ll begin to develop your own views of when an individual is, and is not, evil. x
    • 5
      Evil and Responsibility
      Are psychopaths responsible for their actions? You might be surprised to learn that many psychologists and philosophers think they are not, due to their inability to recognize important moral facts. Guided by a variety of philosophers, you will consider how much responsibility evil-doers can and should accept for their crimes—and in what ways they might not be so different from the rest of us. x
    • 6
      Sin: Original and Otherwise
      How would you know if you had committed a sin, and what would its consequences be? From the words of Jesus to Thomas Aquinas, Augustine, and modern theologians, you'll explore the Christian concepts of sin and how they relate to a secular notion of evil. Is it even possible to sin without a divine lawmaker? Indian Buddhist philosophers say that it is. x
    • 7
      Dark Thoughts and Desires
      Have you ever daydreamed about doing harm to another person? If so, studies show you're certainly not alone. Are our darkest thoughts and desires simply a fundamental part of our human nature? Why can't we seem to suppress or eradicate them? Explore potential answers to these fascinating questions with help from 6th-century Tianti Buddhist philosophers and modern-day evolutionary psychologists. x
    • 8
      Suffering and Its Causes
      Why do we suffer, and how can we avoid it? The Buddha addresses these questions directly in his Four Noble Truths. Although sometimes erroneously condensed into the pessimistic “all life is suffering,” you’ll learn about the Buddha’s optimistic path forward. But do the Buddha’s teachings carry truth for us in the 21st century? An evolutionary psychologist provides a fascinating answer. x
    • 9
      The Problem of Expectation and Desire
      We turn to the 2,000-year-old Hindu Bhagavad Gita to study the roles played by our desires and expectations, and why we are so often disappointed in our lives. But how could we live without desire and expectations? One path provided by the Gita—being so absorbed in an activity that we lose our sense of self—leads to the experience we know of today as “flow.” x
    • 10
      The Fear of Death
      We are all going to die. How do we respond to that knowledge? Learn why the Roman philosopher Lucretius believed that our fear of death drives us to act against our best interests. And why the Daoist philosopher Zhuangzi wondered if our negative view of death even makes sense. Either way, fearing death seems to be part of what it means to be human. x
    • 11
      Existential Anxiety and the Courage to Be
      Have you ever wondered whether life has any meaning at all? Given the immensity of the universe, how could we be anything more than an inconsequential blip? Learn why so many philosophers who've grappled with this existential anxiety conclude that our lives do have value, and how one theologian finds meaning specifically in our courage to face ourselves in the world as it really is. x
    • 12
      The Goodness of Grief
      Could grief ever have a good side? If you've ever suffered its agony, you know grief can feel like the very darkest side of human nature. But as you explore the many ways in which philosophers and psychologists have grappled with this issue for millennia, you'll learn that grief just might be one of our most important opportunities for self-knowledge and connection to community. x
    • 13
      Homo necans: Why Do We Kill?
      Is there something in human nature that drives us to kill others or is it a biological aberration? Watching the news would certainly make you wonder. And if a drive to kill does exist, is it activated by nature or nurture—is it genetic or situational? Studies have supported both points of view. The shocking truth we do know is just how much we all have in common with those who kill. x
    • 14
      Nightmares and the Dream Self
      Who are we in the worst of our dreams? Explore why Freud believed our dreams reveal important aspects of ourselves—both the conscious and unconscious. Learn how Augustine coped when he dreamed of actions that went against his most profound beliefs. Even when we have no idea how to interpret a particularly disturbing dream, it still becomes an opportunity for learning about ourselves. x
    • 15
      Varieties of Self-Deception
      When we hold two contradictory thoughts in our minds at the same time, have we become liars, lying to ourselves about something we know cannot be true? Or are we just harmless wishful thinkers? Is self-deception an adaptation that has given us an evolutionary advantage? Learn what you can do to try to avoid deceiving yourself about your own life. x
    • 16
      Varieties of Ignorance
      Explore the concept of ignorance through the writings of two Indian philosophers who lived centuries apart, Shankara and Ramanuja. Is ignorance a lack of knowledge, or is it wrong knowledge? Learn why some modern philosophers describe ignorance as a complex social phenomenon with the potential to bring out the dark side of our nature—and what we can do to counteract it. x
    • 17
      Weakness of Will
      Have you ever eaten a donut when you knew you shouldn't? Socrates would have been shocked! He didn't think it was possible for people to act against their own best interest. Explore many potential explanations for why we sometimes do what we said we never would. Is it a question of a simple failure to follow through on our intentions, or could we be suffering from ego depletion? x
    • 18
      Luck and the Limits of Blame
      Two people go to a party, become legally drunk, and drive home. One kills a pedestrian, the other encounters no one. Should we judge them differently, or the same? Many philosophers have addressed the role of luck and its moral implications in our lives. As you explore their various perspectives, you might not find any easy answers. But you might think twice before placing blame. x
    • 19
      Victim Blaming and the Just-World Hypothesis
      In the Old Testament Book of Job, his friends blamed Job for the tragedies that befell him. After all, if the world is a fair and just place, then victims always get what they deserve, right? Explore whether or not we can eliminate victim blaming while maintaining that the world is, in the end, a fair and just place. x
    • 20
      Retribution and Revenge
      We’ve all heard of people who decide to take the law into their own hands to exact revenge on a perpetrator who harmed them or someone they love—even if that person had already received society’s punishment. Why do we so often feel that need for vengeance? Uncover what we can learn today from the Greek dramatist Aeschylus, as he struggled to reconcile the tension between retributive justice and revenge. x
    • 21
      Forgiveness and Redemption
      What was your reaction when members of the Charleston, SC, church publicly forgave Dylann Roof, the young man who had murdered nine of their members? Could you imagine yourself forgiving him? Did that forgiveness seem morally right or wrong to you? Explore how Christian and Buddhist philosophers explain forgiveness and the redemption of human sinners. Do you believe anyone is truly beyond redemption? x
    • 22
      The Elimination of Anger
      If you could eliminate anger from your life, would you? Should you? Anger can be dangerous, but righteous anger can also be motivating. What if you could eliminate anger, but replace it with the motivation of compassion and loving-kindness? You'll examine and broaden your thoughts on this powerful emotion by learning from the Buddhist philosopher Shantideva, the Stoic philosopher Seneca, and Nobel Laureate Elie Wiesel, among others. x
    • 23
      Being Peaceful in a Troubled World
      How can we find internal tranquility and remain peaceful in the midst of such a troubled world? It isn't easy, but it is possible. Brain science has discovered that we mirror the behavior of others, and anger can beget anger. But kindness can beget kindness, too. Explore some Christian and Buddhist guidelines for confronting the dark side of human nature without spiraling into the darkness of violence, rage, and fear. x
    • 24
      The Allure of the Dark Side
      Have you ever been morbidly curious about death, violence, or evil? Do you have a fascination with horror movies and love being terrified on roller coasters? Explore how psychologists and philosophers describe the benefits of our fascination with the dark side. As you grapple with death, anger, fear, and dark thoughts, you’ll learn a tremendous amount about yourself—and what it means to be human. x
  • Introduction to C++: Programming Concepts and Applications

    Professor John Keyser, Ph.D.

    Available Formats: Instant Video, DVD
    Taught by Professor John Keyser of Texas A&M University, this course is a step-by-step guide to the popular computer programming language C++. Professor Keyser explains how to access C++ so you can program along with him as he covers the major coding styles offered by this versatile language, including object-oriented programming. In the last lecture, you create an AI game-playing program.
    View Lecture List (25)
    Taught by Professor John Keyser of Texas A&M University, this course is a step-by-step guide to the popular computer programming language C++. Professor Keyser explains how to access C++ so you can program along with him as he covers the major coding styles offered by this versatile language, including object-oriented programming. In the last lecture, you create an AI game-playing program.
    View Lecture List (25)
    25 Lectures  |  Introduction to C++: Programming Concepts and Applications
    Lecture Titles (25)
    • 1
      Compiling Your First C++ Program
      Uncover the power and appeal of C++ for a wide range of uses. Then learn that by processing only 0’s and 1’s, a computer obeys the varied commands of a complex language such as C++. Write a traditional, “Hello, World!” program and discover the importance of adding comments to your code. Finally, follow the instructions in the Quick Start video at the end of this lecture to get C++ working on your own computer or device—by going to an online programming editor or by downloading a C++ integrated development environment (IDE), tailored to your operating system. x
    • 2
      C++ QUICK START: With Browser or Download
      C++ QUICK START: With Browser or Download x
    • 3
      Variables, Computations, and Input in C++
      Try out a program that calculates calories in different foods, demonstrating the essential elements of a program: input, variables, computations, and output. Learn to specify a variable’s type and value, and get advice on shortcuts for keeping your instructions clean. Also discover the origin of the name C++, which signals that the language is designed to do whatever C can do—and then some. x
    • 4
      Booleans and Conditionals in C++
      Probe the power of conditionals, which let you construct programs that can choose between true and false alternatives. Learn to use the keyword bool, which stands for Boolean variable—a value that can be either true (1) or false (0). Study the three basic Boolean operations—and, or, not—and see how they can be combined to make truly complex logical operations. x
    • 5
      Program Design and Writing Test Cases in C++
      There’s more to making a program than writing code. Begin by focusing on the importance of the header and special commands. Then consider how to use comments as “pseudocode” to design the structure that a particular program should follow. Finally, explore the crucial strategy of testing as you go, rather than when the program is complete and errors made near the start are harder to track down. x
    • 6
      C++ Loops and Iteration
      Harness the power of loops, which are sections of code that repeat until a specified computation is complete. Focus on two main types of loops: while loops and for loops, with the latter being a compact way to make the loop occur a set number of times. Learn how to prevent infinite loops, and see how scope allows you to have separate variables inside and outside loops. x
    • 7
      Importing C++ Functions and Libraries
      The secret for building an enormous program such as Windows, with millions of lines of code, is that it draws on ready-made code libraries. Investigate the options that libraries offer, from choosing random numbers to performing complex mathematical operations. Learn how to access a code library, and get tips for finding additional resources beyond the C++ standard libraries. x
    • 8
      Arrays for Quick and Easy Data Storage
      In the first of two lectures on storing large amounts of data, learn the utility of arrays. An array is a collection of variables of the same type. Find out how to declare an array of variables and how to provide an index, which permits access to a specific value within the array. Finally, probe the “out-of-bounds” error that can arise with arrays and see how it led to a notorious security breach. x
    • 9
      Vectors for Safe and Flexible Data Storage
      Continue your study of data storage strategies by looking at vectors, which handle variables in much the same way as arrays but with distinct advantages, including the ability to change the size of a data structure dynamically. Learn how and when to use vectors, and discover that vectors offer a convenient fix for the out-of-bounds error introduced in the previous lecture. x
    • 10
      C++ Strings for Manipulating Text
      Go beyond numbers to see how letters and punctuation are used in data strings, which are ordered sequences of characters. Examine string literals, which are specific fixed sequences of text; and string variables, which are the main way to process and control text data, such as names and addresses. Learn how to search, alphabetize, and concatenate string variables in C++. x
    • 11
      Files and Stream Operators in C++
      Data files are collections of information that are accessed and manipulated through a program. See how data streaming techniques you've already used apply to reading and writing files with the library fstream. Discover that you've already been using an entity that will become increasingly important in the course: objects, which are entities combining variables and functions. x
    • 12
      Top-Down Design and Using a C++ Debugger
      Get to know the vital task of debugging—finding and fixing errors in your code. First, consider the advantages of top-down design, where a complex task is divided into manageable sub-tasks, as opposed to the bottom-up approach that lets complexity emerge more organically, if less predictably. See how incremental development helps in debugging through tools such as the breakpoint and step-over commands. x
    • 13
      Creating Your Own Functions in C++
      Functions serve as ready-made, self-contained units of code that perform a particular task, such as solving an equation, enumerating a list, or even something as simple as closing a file. Prepare for the intensive use of functions in the rest of the course by learning the basic commands that allow you to create your own functions. Get your feet wet with several examples. x
    • 14
      Expanding What Your Functions Can Do in C++
      A parameter is a piece of data used as input into a function. Discover how to create two functions, each with the same name, but with different numbers of parameters—an approach called overloading. Also look at different ways to “pass” parameters to produce an output, either preserving the parameter’s value (pass by value) or changing it (pass by reference). x
    • 15
      Systematic Debugging, Writing Exceptions
      Dig deeper into debugging, learning to employ a tool called exception handling. An exception is a special note that something has gone wrong in a program. Know how to follow up these crucial clues. Also zero in on the six major steps of debugging: isolate the error, narrow down the failure point, identify the problem, fix the problem, re-test, and look for similar cases. x
    • 16
      Functions in Top-Down and Bottom-Up Design
      Revisit top-down versus bottom-up approaches to coding, this time using functions as the building blocks of your program. First, create a game with the top-down strategy, identifying the individual functions that you need in a flowchart. Then design a tool for word processing by using the bottom-up tactic, in which you take available functions and create something completely new. x
    • 17
      Objects and Classes: Encapsulation in C++
      So far, you’ve focused on procedurally oriented programming, which characterizes the original C computer language that led to C++. Now turn to one of the major strengths and innovations of C++: object-oriented programming. Learn that objects are variables and functions encapsulated within classes. Investigate the great utility of this technique for organizing and manipulating data. x
    • 18
      Object-Oriented Constructors and Operators
      The ability to design appropriate classes may be the single most important skill in object-oriented programming. Survey two key tools for using classes effectively. First, constructors let you create classes that fit the requirements of the objects within them. Second, operator overloading allows you to tailor operators to a specific function, providing a handy shortcut that streamlines coding. x
    • 19
      Dynamic Memory Allocation and Pointers
      C++ provides different ways to control data storage in memory. Investigate dynamic memory allocation, which allows memory to grow and shrink with the demands of a program as it is running—as opposed to static memory, which is fixed at runtime. Practice managing memory in a 20-questions-type game and compare the advantages of allocating dynamic memory with pointers versus vectors. x
    • 20
      Object-Oriented Programming with Inheritance
      Explore the power of inheritance, which is a technique for creating classes that inherit properties from another class, called the base class. Using this tool, you can define a variable or function just once and then use it in multiple classes. Walk through several examples of inheritance, seeing how it greatly reduces complexity by eliminating redundant code. x
    • 21
      Object-Oriented Programming with Polymorphism
      Study a key object-oriented feature called polymorphism, which means “many shapes” and refers to the ability of a class to be used in multiple ways. Start with a superclass that is specialized into multiple subclasses, each of which has a different implementation. Learn to define virtual functions for the superclass, leading to diverse properties in the subclasses. x
    • 22
      Using Classes to Build a Game Engine in C++
      Use your knowledge of object-oriented programming to design a “game engine” that can be used for building multiple games. Take a top-down approach, drawing on encapsulation, hierarchical inheritance, and polymorphism to create the two-person game Othello, also known as Reversi. Discover the ease with which you can create other subclasses for additional games, such as checkers and chess. x
    • 23
      C++ Templates, Containers, and the STL
      Whenever you have an idea that’s so general that it’s not tied down by any specific data type, you’ll want to turn to generic programming, which substitutes a template for a data type. The Standard Template Library (STL) is a menu of generic container structures that address these types of problems. Learn the advantages of various containers, including queues, lists, stacks, and vectors. x
    • 24
      C++ Associative Containers and Algorithms
      Probe deeper into generic programming and the STL, focusing on associative containers and algorithms. The former is a set of templates that lets you group different elements into ordered sets, while algorithms are rules that handle data or accomplish some other task, allowing advanced operations to be performed very quickly. Learn that algorithms are a powerful tool in programming. x
    • 25
      Artificial Intelligence Algorithm for a Game
      Finish the course by drawing on all you have learned to design a game-playing algorithm for artificial intelligence—that is, a program that makes “intelligent” game moves as if it were human. Finally, look ahead to your options for continuing study in computer programming. With elementary C++ under your belt, there are many directions you can go in mastering this valuable skill. x