Class Central is learner-supported. When you buy through links on our site, we may earn an affiliate commission.

University of Alberta

More Problem Solving, Python Programming, and Video Games

University of Alberta via Coursera

Overview

Google, IBM & Meta Certificates — All 10,000+ Courses at 40% Off
One annual plan covers every course and certificate on Coursera. 40% off for a limited time.
Get Full Access
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. You need some previous software development and Python programming skills to succeed in this course. Completing the PVG course is sufficient. Despite the use of video games for the main programming project, MPVG is not about computer games. For each new programming concept, MPVG uses non-game examples to provide a basic understanding of computational principles, before applying these programming concepts to video games. The interactive learning objects (ILO) of the course provide automatic, context-specific guidance and feedback, like a virtual teaching assistant, as you develop problem descriptions, functional test plans, and algorithms. The course forums are supported by knowledgeable University of Alberta personnel, to help you succeed. All videos, assessments, and ILOs are available free of charge.

Syllabus

  • Introduction to More Problem Solving, Python Programming and Video Games
    • In this module, you will discover the python programming language features that will be discussed in this course.
  • State Diagrams and the Generic Interactive Game
    • In this module, you will re-explore the game creation process that was used in the PVG course and that will be used in this course. You will use this game creation process to design and code a game called the Generic Interactive Game. You will use a powerful new design tool called a state diagram to model interactions between the user and the game. To create your design for the Generic Interactive Game, you will use three interactive learning objects that you used in the PVG course: the description builder, functional test plan builder, and algorithm builder. You will write the code for the Generic Interactive Game using python language features you learned in the PVG course.
  • Sliding Puzzle Version 1 - State Diagrams and Default Parameter Values
    • In this module, you will be introduced to the Sliding Puzzle Game. This game will be used throughout the remainder of the course, to introduce the new python programming language features that will be discussed. You will play the complete game and then create and design an implementation of Version 1 of the game. This version will require one new python programming language feature: default parameter values. Although this new language feature is relatively simple, it requires syntax diagrams and semantic rules that are generalizations of the ones you used in PVG. Therefore, this module will reacquaint you with using syntax diagrams and semantic rules, which will be used extensively throughout the rest of this course to introduce more complex python language features. In addition, this module will also reinforce your knowledge of state diagrams and the design and coding process used throughout this course.
  • Sliding Puzzle Version 2 - Adding More States
    • In this module, you will be add more states to the Sliding Puzzle Game's state diagram, and use the Interactive Learning Objects (ILOs) to create a textual description, a functional test plan and an algorithm for Sliding Puzzle Version 2. You will write the code for Sliding Puzzle Version 2 and use the debugger to trace the code to better understand how events are used to write programs with interactive graphical user interfaces. You will also learn how reflection can lead to modifications in an algorithm and its code that facilitate future versions of an application, even though the perceived behaviour of the current version of the program doesn't change.
  • Sliding Puzzle Version 3 - Multiple Tiles
    • In this module, you will use the Interactive Learning Objects (ILOs) to create a textual description, a functional test plan and an algorithm for Sliding Puzzle Version 3. You will learn how some design patterns can be used to perform common computations using sequences. Finally, you will write the code for Sliding Puzzle Version 3, and use the debugger to trace the code to better understand how multiple classes can work together to solve a problem.
  • Sliding Puzzle Version 4- Multidimensional Sequences
    • In this module, you will use the Interactive Learning Objects (ILOs) to create a textual description, a functional test plan and an algorithm for Sliding Puzzle Version 4. Before writing the code for Sliding Puzzle Version 4, you will learn a new programming language feature: multi-dimensional sequences. You will the use this new feature to write the code for Sliding Puzzle Version 4, and use the debugger to trace the code to better understand how multi-dimensional sequences are used to solve problems.
  • Sliding Puzzle Version 4.5 - Class Attributes and Class Methods
    • In this module, you will use the Algorithm Builder (ILO) to create an algorithm for Sliding Puzzle Version 4.5. Before writing the code for Sliding Puzzle Version 4.5, you will learn two new programming language features: Class Attribute and Class Method. You will then use these new features to write the code for Sliding Puzzle Version 4.5, and use the debugger to trace the code to better understand how Class Attributes and Class Methods are used to solve problems.
  • Sliding Puzzle Version 5 - Files
    • In this module, you will use the Interactive Learning Objects (ILOs) to create a textual description, a functional test plan and an algorithm for Sliding Puzzle Version 5. Before writing the code for Sliding Puzzle Version 5, you will learn a new python programming language feature called a File. You will then use Files to write the code for Sliding Puzzle Version 5, and use the debugger to trace the code to better understand how Files are used to solve problems.
  • Sliding Puzzle Version 5.5 - Dictionaries
    • In this module, you will use the Algorithm Builder (ILO) to create an algorithm for Sliding Puzzle Version 5.5. Before writing the code for Sliding Puzzle Version 5.5, you will learn a new programming language feature, Dictionary. You will then use this new features to write the code for Sliding Puzzle Version 5.5, and use the debugger to trace the code to better understand how Dictionaries are used to solve problems.
  • Sliding Puzzle Version 6 - Exceptions and Assertions
    • In this module, you will use the Interactive Learning Objects (ILOs) to create a textual description, a functional test plan and an algorithm for Sliding Puzzle Version 6. Before writing the code for Sliding Puzzle Version 6, you will learn a new python programming language feature called exceptions. You will then use exceptions to write the code for Sliding Puzzle Version 6, and use the debugger to trace the code to better understand how exceptions are used to solve problems.

Taught by

Duane Szafron and Paul Lu

Reviews

Start your review of More Problem Solving, Python Programming, and Video Games

Never Stop Learning.

Get personalized course recommendations, track subjects and courses with reminders, and more.

Someone learning on their laptop while sitting on the floor.