How to Program: Computer Science Concepts and Python Exercises

Rated 5 out of 5 by from Great bring more courses like this Just started with this course. Professor is so Amazing. Bring more courses on computer science.
Date published: 2020-09-28
Rated 5 out of 5 by from FANTASTIC Course! Excellent instructor! John covers all the details! GREAT course for beginners & professional programmers!
Date published: 2020-09-22
Rated 2 out of 5 by from Great instructor, materials not so great The initial chapters were good for beginners. I have extensive development background so I found the definitions, etc. a bit boring. Beginners will learn from this. Roughly chapter 8 the examples and code started walking off in the weeds. One was left to debug the code in the book. Once chapter 13 was crosses, the entire thing became burdensome. Many of the examples do not work because of python syntax errors. This particularly difficult in these later chapters. Page 161 Im2 = pyglet.image.load('PurpleStar.jpg') Im3 = ('OrangeDiamond.jpg') Im4 = pyglet.image.load('YellowCircle.jpg') Should be Im2 = pyglet.image.load('PurpleStar.jpg') Im3 = pyglet.image.load('OrangeDiamond.jpg') Im4 = pyglet.image.load('YellowCircle.jpg') Page 162 def RemovePieces(board): #Remove 3-in-a-row and 3-in-a-column pieces #Create board to store remove-or-not remove = [[0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0]] #Go through rows for i in range(8): for j inpyglet.image.load range(6): if (board[i][j] == board[i][j+1]) and (board[i][j] == board[i][j+2]) Sholud be: def RemovePieces(board): #Remove 3-in-a-row and 3-in-a-column pieces #Create board to store remove-or-not remove = [[0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0]] #Go through rows for i in range(8): for j in range(6): if (board[i][j] == board[i][j+1]) and (board[i][j] == board[i][j+2]) Learning debugging should not be associated with textbook and lecture code which is seen to work during lecture but not when it comes from the book. Chapter 16 on Visualization and Simulation was great, except the code of significance is not included. The financial simulation code presented in the lecture was too fast with no stops and nothing to follow in the Guide. If it was so important, why was it given such minimal resources. Almost all of the links are dated. Pyglet has moved and installation is not as straightforward as presented. The current version of Pycharm uses updated syntax checking so there are multiple syntax notations that may not affect the process but one never knows when the process does not run as anticipated. For example, this line and others from page 161, remove[i][j] = 1; The newer versions of python omit the trailing ;. There are also newer rules for a white space in certain = situations. Using the “Reformat Code” in Pycharm will address some of these but the examples are dated. In some of the examples, Python is used. The recommendation is Pycharm so why the switch. I suppose that the reason the course was discounted is because it is dated and you were moving old inventory. This is one of four that I bought from a sale catalog. Already I see newer versions at much higher process.
Date published: 2020-09-17
Rated 5 out of 5 by from Just started this course I have completed the first two lectures of this course and have found the material clearly presented. The instructor is very good
Date published: 2020-09-14
Rated 5 out of 5 by from Great To Learn From A lot of quality courses are available for free on YouTube but it is nice that you offer your courses so cheap. The transcript is a very useful addition. Thank you so much.
Date published: 2020-08-12
Rated 5 out of 5 by from How to Program: Computer Science Concepts and Pyth This is a well constructed and taught course in computer programming and Python. I bought it specifically to learn Python and thought it was excellent. There were a few instances where the examples did not work as expected and I had to look up current references, however these were few. After this, you will have a foundation to learn Python packages dealing with data science, etc. The course was so good that I would be happy for a part II.
Date published: 2020-07-12
Rated 4 out of 5 by from Quality, easy to understand, dynamic teaching. I bought this a month ago. I did fine for two lectures and then got bogged down in the specifics of computer programming. I am too old to learn this and am not that interested in computer programming. I will not go past lesson 6. Thanks but it is not my bag of tea.
Date published: 2020-06-22
Rated 5 out of 5 by from Good start and Look forward to MORE I jst started the videos BUT they are a great kickoff and forced me to dig and find some other info...brain really cranking. Now to see what I can learn. Love the book and waiting for another text. Will be interested in how this will feel at the end...
Date published: 2020-05-22
Rated 5 out of 5 by from Entusiastic and knowledgeable Instructor I thoroughly enjoyed John's easy to understand and entusiastic teaching style. I am confident that I can write fairly complex programs in Python now.
Date published: 2020-04-28
Rated 1 out of 5 by from Wouldn't work on my computer I downloaded both the Idle & PyCharm programs, but was unable to get them to function correctly. Tried to install earlier versions of Python, but only available was 3.8.2. Suggest buying episode 1 on Prime video and make sure computer is compatable with suggested downloads before purchasing entire course.
Date published: 2020-04-23
Rated 5 out of 5 by from Great Tutorial Here are my 2 cents comments and suggestions: 1) Very great Course Guidebook with 24 lectures. 2) Great Videos, but only 10! 3) No guide to match/map the the videos with Guide Book!? 4) How about a simple additional text file that explain the difference of the recent python, idle, and pycharm versions? Jolan Tru!
Date published: 2020-04-18
Rated 5 out of 5 by from Python Programming I congratulate Dr Keyser and the production team on his Python and C++ courses. I am delighted to write they where comprehensive in covering the computer languages. Each course began with basic use examples for each language and progressed to advanced real world applications. Dr Keyser opens each lecture by explaining what is to be covered and provides examples of coding process steps. Then he asks the viewer/student to try what has been explained on their own. He subsequently follows up with an explanation of his working example.
Date published: 2020-04-11
Rated 5 out of 5 by from Updating It’s been quite a while since I tried my hand at programming (Fortran, Cobal, and PL1) so it was with some trepidation that I approached Professor Keyser’s course on Python. I needn’t have worried. With John’s guidance It all came together beautifully. I thoroughly enjoyed the course.
Date published: 2020-04-06
Rated 4 out of 5 by from Great instructor, CS 101 feel Instructor is very good. Enjoys his subject, which comes across in his natural, even energetic delivery. Uses clear examples and light humor. Effective pacing. Has organized his content well, both within and across lessons. The content wasn’t exactly what I was looking for, although for what it set out to do it was well-designed. I wanted more “programming in Python” but got more “concepts in computing.” I felt the course has a first part, introducing coding and Python basics; a second part, where we used Python to design tools and games I might actually use or enjoy; and then a very long third part, where we studied how to solve computing challenges that illustrated an important concept in computer science. It reminded me of undergrad intro courses where the first half (before add/drop!) is for a general audience and the second half is for majors. Because the material was well-designed, I got something from that third part, although increasingly I found myself losing focus and wondering, “Why am I being taught this?” Examples are the many lessons spent exploring sorting algorithms and the mapping lessons. I recognized these were illustrating important principles of programming and showed the variety of problem-solving approaches possible, but because the examples weren’t practical or fun I soon tired of them, and Python and coding again became this distant thing for specialists. I would have preferred continuing to learn how to build more tools and games I might use, even at the cost of learning these principles.
Date published: 2020-03-19
Rated 5 out of 5 by from Computer Programming I needed the workshop for my autistic son. He is pursuing College studies in Computer Programming. So, the tutorial is good for exposure.
Date published: 2020-02-07
Rated 3 out of 5 by from Outdated instructions for PyCharm IDE The PyCharm IDE that the instructor recommends for doing the programming exercises has features that are new since the course was written. The interface is no longer straightforward to use. For the purposes of the simple programs in this course PyCharm IDE is overkill. The instructions given in the lecture for how to use PyCharm no longer apply. It was very difficult to figure out how to write and run a simple "Hello, World" program in this IDE.
Date published: 2020-02-03
Rated 3 out of 5 by from Have issue with download files Not able to download the files from ‘save as’ instruction. Only one or two files are dowloadable, but it’s not in .mp4 format, but in .webarchive format. It is difficult to open those files. Please advise on a means to resolve the issues. Regards, Manit Churanakoses
Date published: 2020-01-30
Rated 5 out of 5 by from How to program in Python . The lesson are great . I think for $25-$35 dollars this set of video lesson is a great value and has add to my skills to program in Python.
Date published: 2020-01-26
Rated 5 out of 5 by from Easy to Understand I am new to programming and computer science. I bought this course to help me understand the concepts better. I am glad I did. Professor Keyser explains the basics in an easy to understand format. I have only watched chapter 1 so far, but I am looking forward to watching the other chapters. I bought the book with the DVD and doing the exercises helps cement the concepts in my mind.
Date published: 2020-01-23
Rated 4 out of 5 by from So Far Just started the book and watched a little of first video. All looks good so far except the light gray font in the guide book. Why make it so hard to read? Will update review as I get more into the materials.
Date published: 2020-01-10
Rated 5 out of 5 by from Great overview of Python I've been using Smalltalk for about 30 years so wanted to get a view into Python. I liked the way the class built on itself as John presented each session.
Date published: 2020-01-06
Rated 5 out of 5 by from Excellent Program Professor Keyser is an excellent lecturer and provides a very professional course presentation. Very pleased with this program.
Date published: 2020-01-04
Rated 4 out of 5 by from An error in Lecture 3 At 13:43 there's an error in line 8 of the code. Please get back to me on that. I am not rating. I just want to bring this to your attention.
Date published: 2019-12-19
Rated 5 out of 5 by from Impressive coverage of capabilities of Python I was familiar with programming in Fortran when I retired from engineering over 20 years ago. Now my 11 year old grandson is interested in programming in order to create games, so we wanted to learn programming with a modern language like Python. We started with a book we found in our local library and we were on our way to Python programming. Professor Keyser's course is amazingly complete and consequently requires effort in reviewing and doing the exercises provided. This is always a needed educational step. I think that his explanations and discussions of programming techniques are excellent.
Date published: 2019-11-01
Rated 5 out of 5 by from Well explained and fun I am a 80 years old woman trained and worked as a petroleum engineer when young. Sixty years ago at university was the Fortran language. Amazing and a pleasant surprise the programming languages have not changed much.
Date published: 2019-10-14
Rated 5 out of 5 by from Great learning tool Like being in the class room. Enjoyed watching the video
Date published: 2019-08-30
Rated 5 out of 5 by from What We Wanted to Know Took advantage of first time customer sale and purchased some DVDs on topics of interest. Learning a lot about computer programming in Python. Great Courses instructors always present materials in a clear, organized manner, covering all the topics needed. Highly recommend The Great Courses.
Date published: 2019-08-18
Rated 5 out of 5 by from Solid Course This is a well thought out 'learn to program' course using Python as a free, publicly available language. It begins by demonstrating programming procedures using "pseudocode" then transitioning to Python. Pseudocode is not a programming language, it is common English used to demonstrate concepts and procedures, and not expected to be executable. There may be small errors between the Python code on screen, and what version of Python you are using. Although, if you have programmed before you may find this class initially slow (because it's for beginners). However, after it lesson 3, it starts moving right along at a nice clip. My recommendation for beginners is to read the chapter from the guidebook first, watch the video , then do the suggested exercises and move on to the next video. That would take about an hour. The dark screen with white print requires a bright room, and a high resolution screen. .
Date published: 2019-08-02
Rated 5 out of 5 by from A Great Course for Beginners Like Me This is a very good for beginners like me. I haven't gotten past lesson 7 right now, but I'm learning a lot about Python and brushing the rust off of programming itself. (My last official programming course was Fortran IV on punched cards. ;) I wish that the course guidebook included the code that Professor Keyser displays on the screen. I have difficulty reading it for entry into my Python IDE. But I still give this course a 5-star rating and recommend it to anyone interested in programming and/or Python.
Date published: 2019-06-23
Rated 5 out of 5 by from Great class! I bought this a couple weeks ago, and I use it to study along with my other homework! Great stuff!
Date published: 2019-04-10
  • y_2021, m_4, d_21, h_17
  • bvseo_bulk, prod_bvrr, vn_bulk_3.0.14
  • cp_2, bvpage2n
  • co_hasreviews, tv_16, tr_151
  • loc_en_CA, sid_9151, prod, sort_[SortEntry(order=SUBMISSION_TIME, direction=DESCENDING)]
  • clientName_teachco
  • bvseo_sdk, p_sdk, 3.2.1
  • CLOUD, getReviews, 4.46ms
How to Program: Computer Science Concepts and Python Exercises
Course Trailer
What Is Programming? Why Python?
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....

39 min
Variables: Operations and Input/Output
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....

37 min
Conditionals and Boolean Expressions
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....

30 min
Basic Program Development and Testing
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....

29 min
Loops and Iterations
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....

28 min
Files and Strings
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....

30 min
Operations with Lists
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....

30 min
Top-Down Design of a Data Analysis Program
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....

28 min
Functions and Abstraction
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....

32 min
Parameter Passing, Scope, and Mutable Data
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....

33 min
Error Types, Systematic Debugging, Exceptions
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....

32 min
Python Standard Library, Modules, Packages
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....

32 min
Game Design with Functions
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....

31 min
Bottom-Up Design, Turtle Graphics, Robotics
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....

31 min
Event-Driven Programming
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....

32 min
Visualizing Data and Creating Simulations
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....

31 min
Classes and Object-Oriented Programming
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....

35 min
Objects with Inheritance and Polymorphism
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....

33 min
Data Structures: Stack, Queue, Dictionary, Set
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....

31 min
Algorithms: Searching and Sorting
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....

30 min
Recursion and Running Times
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....

32 min
Graphs and Trees
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....

32 min
Graph Search and a Word Game
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....

30 min
Parallel Computing Is Here
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....

35 min
John Keyser

Just as language helps us organize and describe ideas for people, programming languages help us organize and describe ideas for the computer.


University of North Carolina


Texas A&M University

About John Keyser

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. Keyser's interest in computing, physics, and math steered him into a career in computer graphics, allowing him to combine all three disciplines. He has published widely on geometric modeling, physically based simulation for graphics, and a variety of other graphics topics.

Dr. Keyser's teaching ranges from introductory undergraduate courses in computing and programming to graduate courses in modeling and simulation. Among these, he created a new Programming Studio course that has become required for all Computer Science and Computer Engineering majors at Texas A&M. He has been honored three times with Texas A&M's Distinguished Achievement Award in Teaching-once at the university level and twice from the Dwight Look College of Engineering. As an Assistant Professor, he was named a Montague Scholar by the Center for Teaching Excellence. He also won the Tenneco Meritorious Teaching Award and the Theta Tau Most Informative Lecturer Award.

Also By This Professor