More Problem Solving, Python Programming, and Video Games course title card

More Problem Solving, Python Programming, and Video Games

In this course you will learn some advanced programming language features by designing and creating computer games that respond to mouse clicks and key presses. You will use a framework that can be used to learn other programming language features, after you have completed this course. Although this course uses the Python programming language, the framework applies to most modern programming languages.

Take online for free

Sign up for free on Coursera today.

Learn more and register

 

About the Course

This course continues the introduction to computer science and programming in Python that was begun in the Coursera course: Problem Solving, Python Programming, and Video Games (PVG). Upon successful completion of this course, you will be able to:

  1. Take a new computational problem and solve it, using several problem solving techniques including abstraction and problem decomposition.
  2. Follow a design creation process that includes: state diagrams, textual descriptions, test plans, and algorithms.
  3. Create a state diagram to identify and represent how user actions affect game state.
  4. Create, test and debug an event-based graphical python program with multiple states that uses key presses and mouse clicks, using the Wing IDE, uagame library, pygame library and a functional test plan.
  5. Use syntax diagrams and semantic rules to learn new Python programming language features: default parameter values, multi-dimensional tuples and lists, class attributes, class methods, files, dictionaries, exceptions and assertions.

Important computer science concepts such as problem solving (computational thinking), problem decomposition, algorithms, abstraction, and software quality are emphasized throughout.

This course uses problem-based learning. The Python programming language and video games are used to demonstrate computer science concepts in a concrete and fun manner. The instructional videos present Python using a conceptual framework that can be used to understand any programming language. This framework is based on several general programming language concepts that you will learn during the course including: lexics, syntax, and semantics.

Other approaches to programming may be quicker, but are more focused on a single programming language, or on a few of the simplest aspects of programming languages. The approach used in this course may take more time, but you will gain a deeper understanding of programming languages. After completing the course, in addition to learning Python programming, you will be able to apply the knowledge and skills you acquired to: non-game problems, other programming languages, and other computer science courses.

Course Format

Prerequisites: To be successful in this course, you must have some prerequisite knowledge. The simplest way to obtain this knowledge is to complete the free Coursera PVG course: Problem Solving, Programming and Video Games. However, if you already have considerable Python programming experience, you could try this course after completing only the first three modules of the PVG course: Module 0: Introduction, Module 1: Design Hacking Version 1, and Module 2: Program Hacking Version 1. Completing these components of PVG is absolutely necessary to understand the problem-based learning approach, syntax and semantic approach, and design and coding process that will be used in this course.

Here is a list of the prerequisite python language features that are necessary to start this course: identifiers, literals, unary and binary expressions, parenthesized expressions, operators, keywords, keyword operators, operator precedence, short-circuit evaluation, ints, floats, strings, booleans, tuples, lists, list displays, ranges, multi-argument function calls, modules, method calls, attributes, subscription, expression statements, assignment statements, if statements, elif and else clauses, for statements, while statements, return statements, import statements, pass statements, function definitions, function parameters, parameter lists, identifier scope, side effects, class definitions, user-defined methods, and self.

All modules of content are available for free.

Take the course for free & explore advanced python programming language features

Register now on Coursera

Instructors + Teaching Staff

Duane Szafron, Professor Emeritus

Department of Computing Science, University of Alberta

Duane Szafron is a Professor Emeritus in the Department of Computing Science at the University of Alberta. He has been doing research in object-oriented computing since 1980, including language design, language implementation, programming environments and parallel computing. His current research interests are in computer games, especially believable characters in computer games and computer poker. He taught computing courses to students at all levels, from first year through graduate school.

Paul Lu, Professor

Department of Computing Science, University of Alberta

aul Lu is a Professor in the Department of Computing Science at the University of Alberta. He is interested in all aspects of high-performance computing, but especially parallel and distributed systems, and cloud computing. His research program centers on systems software (OS, VMs, parallel programming) and, most recently, high-performance data transfers and IaaS cloud computing. His teaching interests include: Operating Systems, Parallel and Distributed Computing, and Internet Applications.


 

Syllabus

Module 1 - Introduction to More Problem Solving, Python Programming and Video Games

  • Lesson 01: Welcome to More Problem Solving, Python Programming and Video Games
  • Lesson 02: Review Some Python Prerequisites for the More PVG Course

Module 2 - State Diagrams and the Generic Interactive Game

  • Lesson 03: Introduction to the Generic Interactive Game
  • Lesson 04: Describe the Generic Interactive Game
  • Lesson 05: Create Functional Test Plan for the Generic Interactive Game
  • Lesson 06: Create Algorithm for the Generic Interactive Game
  • Lesson 07: Create Program for the Generic Interactive Game
  • Lesson 08: Reflect on the Generic Interactive Game

Module 3 - Sliding Puzzle Version 1 - State Diagrams and Default Parameter Values 

  • Lesson 09: Introduction to the Sliding Puzzle
  • Lesson 10: Observe and Play Sliding Puzzle Version 1
  • Lesson 11: Describe Sliding Puzzle Version 1
  • Lesson 12: Create Functional Test Plan for Sliding Puzzle Version 1
  • Lesson 13: Create Algorithm for Sliding Puzzle Version 1
  • Lesson 14: Python Default Parameter Values
  • Lesson 15: Create Program for Sliding Puzzle Version 1
  • Lesson 16: Reflect on Sliding Puzzle Version 1

Module 4 - Sliding Puzzle Version 2 - Adding More States

  • Lesson 17: Solution Issues in Sliding Puzzle Version 1
Take the course for free & explore advanced python programming language features

Register now on Coursera