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.










