This experience is optimized for Internet Explorer version 9 and above.

Please upgrade your browser

Send the Gift of Lifelong Learning!

How to Program: Computer Science Concepts and Python Exercises

How to Program: Computer Science Concepts and Python Exercises

Professor John Keyser, Ph.D.
Texas A&M University

Gifting Information

FAQ
FAQ

To send your gift, please complete the form below. An email will be sent immediately to notify the recipient of your gift and provide them with instructions to redeem it.

  • 500 characters remaining.

Frequently Asked Questions

With an eGift, you can instantly send a Great Course to a friend or loved one via email. It's simple:
1. Find the course you would like to eGift.
2. Under "Choose a Format", click on Video Download or Audio Download.
3. Click 'Send e-Gift'
4. Fill out the details on the next page. You will need to the email address of your friend or family member.
5. Proceed with the checkout process as usual.
Q: Why do I need to specify the email of the recipient?
A: We will send that person an email to notify them of your gift. If they are already a customer, they will be able to add the gift to their My Digital Library and mobile apps. If they are not yet a customer, we will help them set up a new account so they can enjoy their course in their My Digital Library or via our free mobile apps.
Q: How will my friend or family member know they have a gift?
A: They will receive an email from The Great Courses notifying them of your eGift. The email will direct them to TheGreatCourses.com. If they are already a customer, they will be able to add the gift to their My Digital Library and mobile apps. If they are not yet a customer, we will help them set up a new account so they can enjoy their course in their My Digital Library or via our free mobile apps.
Q: What if my friend or family member does not receive the email?
A: If the email notification is missing, first check your Spam folder. Depending on your email provider, it may have mistakenly been flagged as spam. If it is not found, please email customer service at (customerservice@thegreatcourses.com) or call 1-800-832-2412 for assistance.
Q: How will I know they have received my eGift?
A: When the recipient clicks on their email and redeems their eGift, you will automatically receive an email notification.
Q: What if I do not receive the notification that the eGift has been redeemed?
A: If the email notification is missing, first check your Spam folder. Depending on your email provider, it may have mistakenly been flagged as spam. If it is not found, please email customer service at (customerservice@thegreatcourses.com) or call customer service at 1-800-832-2412 for assistance.
Q: I don't want to send downloads. How do I gift DVDs or CDs?
A: eGifting only covers digital products. To purchase a DVD or CD version of a course and mail it to a friend, please call customer service at 1-800-832-2412 for assistance.
Q: Oops! The recipient already owns the course I gifted. What now?
A: Great minds think alike! We can exchange the eGifted course for another course of equal value. Please call customer service at 1-800-832-2412 for assistance.
Q: Can I update or change my email address?
A: Yes, you can. Go to My Account to change your email address.
Q: Can I select a date in the future to send my eGift?
A: Sorry, this feature is not available yet. We are working on adding it in the future.
Q: What if the email associated with eGift is not for my regular Great Course account?
A: Please please email customer service at (customerservice@thegreatcourses.com) or call our customer service team at 1-800-832-2412 for assistance. They have the ability to update the email address so you can put in your correct account.
Q: When purchasing a gift for someone, why do I have to create an account?
A: This is done for two reasons. One is so you can track the purchase of the order in your ‘order history’ section as well as being able to let our customer service team track your purchase and the person who received it if the need arises.
Q: Can I return or Exchange a gift after I purchase it?
A: Because the gift is sent immediately, it cannot be returned or exchanged by the person giving the gift. The recipient can exchange the gift for another course of equal or lesser value, or pay the difference on a more expensive item

Priority Code

Cancel

How to Program: Computer Science Concepts and Python Exercises

Course No. 9151
Professor John Keyser, Ph.D.
Texas A&M University
Share This Course
3.7 out of 5
78 Reviews
69% of reviewers would recommend this series
Course No. 9151
Video Streaming Included Free

What Will You Learn?

  • Learn why Python is the ideal computer language for beginners.
  • Discover the ease of writing loop programs and also the peril of getting stuck in infinite loops.
  • Discover the trick of top-down design, which breaks a complex task into manageable parts and is applicable not just to coding but to any major project.
  • Learn when a parameter or variable is in scope," how to work with data that is mutable, and what it means for parameters to have default values."
  • Design a grid-based matching game and use pyglet to make a graphical version of the game.
  • Utilize a Python module called turtle graphics to model robot motion, relying on the basic turtle commands: forward, backward, and turn left or right by a specified angle.

Course Overview

Learning a new language opens a wealth of opportunities. But there’s one language family that provides benefits like no other: the languages of computer programming. Now widely taught in schools—even in elementary schools—programming is an eminently learnable skill that gives you unrivalled problem-solving power you can apply in all areas of life. Programming is also a fun, creative activity that imparts deep insights into how we control the devices that influence virtually every aspect of our lives.

Writing computer code has truly gone mainstream in recent years. Simple, general-purpose computer languages that resemble English can be readily used by anyone, thanks to fundamental building blocks that allow even complete beginners to write short pieces of working code, while also taking the mystery and complexity out of more complicated scripts. Remarkable advances in hardware and in user interfaces mean that skills that were once highly technical, complicated, and difficult to learn are today within the reach of everyone who is willing to engage with a computer.

And now a pathbreaking guide is available with How to Program: Computer Science Concepts and Python Exercises. These 24 engaging and information-rich half-hour lessons use one of the world’s most accessible, popular, and powerful computer languages, Python 3, as a gateway to the universe of programming. Taught by Professor John Keyser of the Department of Computer Science and Engineering at Texas A&M University, one of the top-ranked computer science programs in the country, this unique video course offers the following advantages:

  • From the very first lesson, Professor Keyser plunges you into Python coding and the concepts of computer science, with a friendly and accessible style that has won him numerous teaching awards.
  • The Python computer language (named after the comedy troupe Monty Python) is ideal for beginners, with code based on ordinary English words and the flexibility to create many useful and creative programs.
  • The course covers fundamental ideas with clarity and depth, teaching you programming from the most basic commands to the techniques that help you develop ambitious pieces of software.
  • Professor Keyser focuses on practical problem-solving, presenting dozens of real-life examples and exercises, walking you through solutions, and helping you practice and build your skills.

Following some of the lessons, Professor Keyser leads you through supplementary problems that reinforce key programming strategies. In addition, the guidebook that accompanies the course features dozens of additional drills and practice exercises, always with answers, together with a reference section that includes definitions of computer science terms, important Python commands, and other useful information. No matter what level of experience and skill you have with computers, you can rest assured that this course will suit your needs from the first step: walking you through how to install Python 3 and the programming editor PyCharm, both of which are available free online.

Programming Made Crystal Clear

Assuming no prior background in computer science, Professor Keyser’s lessons are so clear, carefully paced, and comprehensive that they will appeal to both novice and experienced programmers. Even those who use Python often will learn new and useful tips that fill gaps in their understanding, clarify concepts that were previously obscure, and broaden one-task tricks into versatile tools. As a result, this course is perfect for

  • beginners and students—from teenagers to retirees—who have never written a line of code;
  • self-taught programmers who want to deepen their knowledge of program design and make their code more efficient and elegant;
  • programmers new to Python, and Python users who want to upgrade their skills to the newest version of Python and more effectively exploit its many features;
  • professionals at any stage of their career who recognize the benefits of better understanding the technology that modern businesses rely on;
  • anyone wanting a fascinating insider’s perspective on how to think about all the ways we tell
  • those who never dreamed that coding could be as exciting, intellectually stimulating, and rewarding as it truly is.

Build Your Programming Fluency

There are numerous programming tutorials and videos available online, but they are generally brief or narrow, giving you only specific and specialized instructions without context. How to Program is a college-level course with more than a semester’s worth of material explored over 12 hours of lessons that you can pause, practice, and watch again as you hone your skills, guided by an expert teacher. And while you can find snippets of pre-written Python code online that may or may not work for your needs, this course takes you from writing individual lines of code to designing and thinking about code like a programmer, teaching you broadly applicable rules and tools that you use to create your own custom-made programs.

Professor Keyser begins with the basic code commands, and you start programming with him right away. In Lesson 1, you write a one-line program knowing just one command! You quickly build from there, mastering core principles and tools, including operators and variables, conditionals and loops, strings and files, functions, modules, packages, and more. By the end of the first half of the course, you will have tried out all of the most important fundamentals of programming.

The first half of the course provides the foundation of programming, while the second half of the course explores a wider range of applications and deeper principles, both of which also help you further consolidate your understanding of programming fundamentals. Applications include the coding behind games and graphics, as well as teaching you how to analyze sports statistics, simulate a retirement fund, and direct the path of a simple robot. Along the way, you get a feel for when to use a top-down design or a bottom-up strategy. You discover the power of object-oriented programming and the trade-offs of sequential programming versus event-driven programming. And you see for yourself how data structures and algorithms make possible even more powerful programs. Best of all, these and many other concepts become second nature as your programming fluency grows.

Discover a New World in Coding

“I got hooked writing my first simple computer program back in third grade,” recalls Professor Keyser. This course will show you how fun, creative, and empowering programming can be. Professor Keyser’s approach is clear, practical, and engaging—it’s easy to see why his teaching has been honored so many times. Throughout the course, he offers tips on how to be a better programmer, hard-won lessons from decades of coding, and reflections on the aspects of programming that are most rewarding:

  • Practical: Often it’s faster to write a program to perform a task, such as repeated calculations or opening two applications in tandem, than it is to track down an existing piece of software that does exactly what you need. And as your coding skill grows, you’ll find that you are creating unique programs that other people need.
  • Exhilarating: Figuring out how to apply the tools to solve each programming problem is a unique challenge, a puzzle that often has several solutions—but which is fastest, simplest, most efficient? Even debugging offers new and exciting mysteries to solve. When the pieces finally fall into place, you get a wonderful feeling of accomplishment that a mental model has been turned into working software.
  • Creative: Programming lets you express your creativity, allowing you to implement your ideas in code. And just as there is never simply one way to express a thought in a language, there are usually many ways to get a program to do what you want. A good design sense will point you to the optimum solution for your particular problem.
  • Transformational: Programming transforms the way you think, training you to look at problems logically, develop plans that can be followed sequentially, and recognize how to break down a complex task into more manageable pieces. All of these are useful approaches in areas outside of computing.

So, as with any new language, programming opens up a new world, while also influencing the way you look at your old, familiar world. It may be that as you work through the enjoyable and challenging exercises in How to Program, the most important benefit you are gaining is not only a toolkit to help you create your own programs in Python 3—it’s also a set of enhanced mental tools for every sphere of life.

Hide Full Description
24 lectures
 |  31 minutes each
  • 1
    What Is Programming? Why Python?
    Hello, World!" Following tradition, write a program that produces this greeting as your first exercise in coding a computer program. Learn why Python is the ideal computer language for beginners and many others. After this lesson, follow the onscreen instructions for installing Python and the programming editor PyCharm." x
  • 2
    Variables: Operations and Input/Output
    Study some of the basic operations of computers. First, investigate the memory hierarchy and what the CPU does. Then consider variables, which are like boxes where units of data are stored in a program. Look at simple arithmetic operations with variables, and try input/output commands. x
  • 3
    Conditionals and Boolean Expressions
    Any time a computer takes different paths depending on your response, there is usually a conditional statement involved. Delve into these widely used tools, looking at branching points, comparisons, if/then statements, nesting conditionals, and Boolean (true/false) expressions. x
  • 4
    Basic Program Development and Testing
    Take the plunge and write a program that's useful for saving money! In the process, learn the importance of planning ahead, testing often, and building your code incrementally. As your program takes shape, Professor Keyser describes instructive incidents from computer history and his own experience. x
  • 5
    Loops and Iterations
    One of the biggest thrills from writing code comes from getting a computer to perform a sequence of instructions repeatedly until a task is complete. Discover the ease of writing such loop programs and also the peril of getting stuck in infinite loops. Investigate while loops, for loops, and iterations. x
  • 6
    Files and Strings
    Learn the fundamentals of files: what they are, how they're named, and how to interact with them. Typically, the file format that you write to and read from will be one long string-a sequence of alphanumeric characters. See how these differ from binary files such as images, which are composed of 1s and 0s. x
  • 7
    Operations with Lists
    Python makes it very easy to create lists and perform a wide range of operations on them. Learn the fundamentals of building lists. Then experiment with indexing into lists, looping over lists, and making slices of lists, lists of lists, and list-like structures called tuples. x
  • 8
    Top-Down Design of a Data Analysis Program
    Take what you have learned about lists, loops, files, and other techniques and design a program that lets you analyze weather data. Sound daunting? Discover the trick of top-down design, which breaks a complex task into manageable parts and is applicable not just to coding but to any major project. x
  • 9
    Functions and Abstraction
    One of the key ideas in computer science is abstraction-using simple interfaces to manage complex procedures. See how functions can simplify away the details of complex process, freeing attention to focus on what goes into a function and what comes out. Learn when to use functions and the side effects that sometimes occur. x
  • 10
    Parameter Passing, Scope, and Mutable Data
    Complete your introduction to elementary programming by looking at parameters-the major technique for passing information through functions. Learn when a parameter or variable is in scope," how to work with list data that can change when passed as a parameter, and what it means for parameters to have default values." x
  • 11
    Error Types, Systematic Debugging, Exceptions
    Confront the nemesis of all computer programmers: bugs. First, look into the history of this peculiar term. Then take a systematic approach to solving mysterious glitches in your own programs. Get acquainted with the debugger in PyCharm, and explore strategies for tracking down bugs and fixing them. x
  • 12
    Python Standard Library, Modules, Packages
    Discover the remarkable programming tools called modules that you have at your fingertips with Python. Modules are ready-made programs that can be imported into your code as you write it, enhancing your creativity, expanding your options, and saving you time. Bundles of modules are called packages. x
  • 13
    Game Design with Functions
    Use the knowledge you've gained so far to design a grid-based matching game-an entertaining way to practice top-down development of more complex programs using functions. You'll see how rough-and-ready lines of code known as stubs come in very handy as you tackle such projects. x
  • 14
    Bottom-Up Design, Turtle Graphics, Robotics
    Now experiment with bottom-up design, an approach that starts with the available elements and builds from there. Utilize a Python module called turtle graphics to model robot motion, relying on the basic turtle commands: forward, backward, and turn left or right by an angle you specify. x
  • 15
    Event-Driven Programming
    Explore the visual style of programming seen on the web and in the graphical user interface of an operating system. Get started with pyglet, a Python package created to help support development of games and other audio-visual environments. Use pyglet to make a graphical version of the game from Lesson 13. x
  • 16
    Visualizing Data and Creating Simulations
    Delve into data visualization and simulations-two areas where computers have had a revolutionary but under-recognized impact. Learn how to do both with matplotlib, a Python package for creating plots, graphs, and charts. Use it to design a financial simulation that can help you plan your retirement. x
  • 17
    Classes and Object-Oriented Programming
    Learn about an exciting approach to programming called object-oriented design, which bundles functions together with data into a series of objects, whose tools and properties can be defined in a single class. Try your hand at this powerful technique by constructing a bank account program. x
  • 18
    Objects with Inheritance and Polymorphism
    Dig deeper into object-oriented design, seeing how encapsulation-combining data and the functions that deal with data into a single package-is the basis for two other object-oriented features: inheritance and polymorphism. Apply these ideas to sports statistics. x
  • 19
    Data Structures: Stack, Queue, Dictionary, Set
    Data structures allow you to perform operations more effectively. Start with two of the most basic data structures, stacks and queues, discovering that both can be executed using lists. Then move to non-linear data structures, exemplified by dictionaries and sets, which can be implemented using a hash table. x
  • 20
    Algorithms: Searching and Sorting
    Enter the realm of algorithms, the heart of computer science. See how a well-designed algorithm-a general set of steps that accomplish a task-allows you to work out the logic of a program before you commit it to code. Try this with search and sort exercises. x
  • 21
    Recursion and Running Times
    Expand your study of algorithms to cover recursion, one of the most fascinating ideas in computer science. Apply recursion to form a pair of sorting algorithms. Then see how another approach, iteration, excels at tasks that take too long with recursion, such as calculating the Fibonacci sequence. x
  • 22
    Graphs and Trees
    In computing, a graph is a mathematical structure composed of vertices and edges. Discover its incredible power to capture relationships such as the airline routes between cities and the friends in a social network. Try writing programs utilizing graphs and a special type of graph called trees. x
  • 23
    Graph Search and a Word Game
    Examine a famous graph algorithm called breadth-first search, which shows the shortest path connecting nodes in a tree. Use this technique to write a program creating an entertaining game, in which a word is transformed one letter at a time, with each new iteration required to be a valid word. x
  • 24
    Parallel Computing Is Here
    One of the major trends in the present and future of computing is parallel processing. Put this clever technique to work in Python. Then close the course with Professor Keyser's suggestions for your further explorations of programming, along with his reflections on the personal benefits of this remarkable human achievement. x

Lecture Titles

Clone Content from Your Professor tab

What's Included

What Does Each Format Include?

Video DVD
Video Download Includes:
  • Ability to download 24 video lectures from your digital library
  • Downloadable PDF of the course guidebook
  • FREE video streaming of the course from our website and mobile apps
Video DVD
Audio Download Includes:
  • Ability to download 24 audio lectures from your digital library
  • Downloadable PDF of the course guidebook
  • FREE audio streaming of the course from our website and mobile apps
Video DVD
DVD Includes:
  • 24 lectures on 4 DVDs
  • 314-page printed course guidebook
  • Downloadable PDF of the course guidebook
  • FREE video streaming of the course from our website and mobile apps
  • Closed captioning available

What Does The Course Guidebook Include?

Video DVD
Course Guidebook Details:
  • 314-page printed course guidebook
  • Suggested Reading
  • Exercises and answers
  • A guide to Python commands

Enjoy This Course On-the-Go with Our Mobile Apps!*

  • App store App store iPhone + iPad
  • Google Play Google Play Android Devices
  • Kindle Fire Kindle Fire Kindle Fire Tablet + Firephone
*Courses can be streamed from anywhere you have an internet connection. Standard carrier data rates may apply in areas that do not have wifi connections pursuant to your carrier contract.

Your professor

John Keyser

About Your Professor

John Keyser, Ph.D.
Texas A&M University
Dr. John Keyser is a Professor and the Associate Department Head for Academics in the Department of Computer Science and Engineering at Texas A&M University, where he has taught since earning his Ph.D. in Computer Science from the University of North Carolina. As an undergraduate, he earned three bachelor’s degrees—in Computer Science, Engineering Physics, and Applied Math—from Abilene Christian University. Dr....
Learn More About This Professor
Also By This Professor

Reviews

How to Program: Computer Science Concepts and Python Exercises is rated 3.7 out of 5 by 78.
Rated 5 out of 5 by from Python What an easy way to learn a programming language. I also have 3 other courses, 2 on math and a course on chess. Easiest way to learn.
Date published: 2017-09-09
Rated 4 out of 5 by from Looks good I already have programming experience but wanted to investigate PYTHON. The instruction is great but the sub-titles on the screen annoy me. Is there a way to get rid of them?
Date published: 2017-09-03
Rated 2 out of 5 by from I regret they I started this course Bought this course to study with my son. We both have very little knowledge of coding. The lectures presentations are great, done with passion. But whoever prepared the visuals, manuals failed miserably. For example Game program in chapter13 is not working. This is fundamental. I suppose to learn on its example and don't understand what is wrong with it. How I suppose to move further and motivated my teenage son?
Date published: 2017-08-19
Rated 2 out of 5 by from Incomplete I got this course from a friend, and decided to follow this course, to refresh my skills in programming, since I stopped programming several years ago. I needed a course, especially in Python. The teacher is great in explaining concepts. But his examples contain nasty errors. Moreover, he fails to deliver a printout of some of the complete programs. This means, that I cannot check where I make errors myself, and cannot get all programs to perform as intended. Or, in the case of the graphical programs, I cannot even get them to run, with NO IDEA where to look for mistakes. What is also missing, is files containing the icons. So you have to make them yourselves. The professor does not explain how to do this. Usually, the courses of The Great Courses are very good to brilliant. But this is not one of them. Frankly, I am disappointed.
Date published: 2017-08-13
Rated 4 out of 5 by from OK so far I am working this one chapter per day and so far have done 8 chapters. OK so far.
Date published: 2017-06-07
Rated 4 out of 5 by from Useful for beginners in python 3 I'm an experianced programmer in python 2.7 and I bought this to bootstrap myself into python 3 and see if there were topics new to me. As such, I've only looked at the later chapters on event handling and multitasking, which I found interesting, as well as discussing IDE differences and some libraries I wasn't aware of. This got me to further pursue areas I hadn't before. I particularly liked having the bundled textbook and having it downloadable which enables cut/pasting the code samples instead of typing them up. I understand the desire to make such a course appealing to all but I get impatient with needless intro graphics/music at the beginning of every chapter so I tend to just jump to the 'meat' of the subject or just go to the chapter in the book. But the course is a good value add as it covers installing the environment to get started, program development basics from a python POV, complete application examples, and advanced topics. Especially having all this in multiple formats at the Great Courses sale price as other sources usually only cover parts of these topics.
Date published: 2017-06-06
Rated 5 out of 5 by from Just getting started, but very good so far Only viewed the first three lessons, but I like the instructor's delivery and am able to follow. It is a good idea at this point to get yourself a small notebook and take notes (as it would be with ANY technical course).
Date published: 2017-05-27
Rated 5 out of 5 by from Python Programming Exercises I enjoy the challenge of working with Programming again after years of not dealing with a new Language of Computers.
Date published: 2017-05-20
  • y_2017, m_9, d_21, h_22
  • bvseo_bulk, prod_bvrr, vn_bulk_2.0.3
  • cp_1, bvpage1
  • co_hasreviews, tv_5, tr_73
  • loc_en_US, sid_9151, prod, sort_[SortEntry(order=SUBMISSION_TIME, direction=DESCENDING)]
  • clientName_teachco
  • bvseo_sdk, p_sdk, 3.2.0
  • CLOUD, getContent, 7.48ms
  • REVIEWS, PRODUCT

Questions & Answers

Questions

1-10 of 11 Questions
1-10 of Questions

Customers Who Bought This Course Also Bought

Video title