Problem Solving, Python Programming, and Video Games
This course is an introduction to computer science and programming in Python. Upon successful completion of this course, you will be able to:1. Take a new computational problem and develop a plan to solve it through problem understanding and decomposition. 2. Follow a design creation process that includes specifications, algorithms, and testing. 3. Code, test, and debug a program in Python, based on your design.
Important computer science …
Problem Solving, Python Programming, and Video Games
This course is an introduction to computer science and programming in Python. Upon successful completion of this course, you will be able to:1. Take a new computational problem and develop a plan to solve it through problem understanding and decomposition. 2. Follow a design creation process that includes specifications, algorithms, and testing. 3. Code, test, and debug a program in Python, based on your design.
Important computer science concepts such as problem solving (computational thinking), problem decomposition, algorithms, abstraction, and software quality are emphasized throughout. The Python programming language and video games are used to demonstrate computer science concepts in a concrete and fun manner. However, a learner can take the knowledge and skills from this course and apply them to non-game problems, other programming languages, and other computer science courses.
You do not need any previous programming, Python, or video game experience. However, some computer skills (e.g., mouse, keyboard, document editing), knowledge of algebra, attention to detail (as with many technical subjects), and a “just give it a try” spirit will be keys to your success. Despite the use of video games for all the programming examples, PVG is not about computer games. PVG will still provide valuable knowledge and skills for non-game computational problems.
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, algorithms, and functional test plans. The course forums will be supported by the creators of the course, to help you succeed.
All videos, assessments, and ILOs are available free of charge. There is an optional certificate available for a fee.
None
Syllabus
Syllabus - What you will learn from this course
Week 1
Module 0: Introduction
In Module 0, you will meet the instructional team and be introduced to the four themes of this course: computer science, problem solving, Python programming, and how to create video games.
Week 2
Module 1: Design Hacking Version 1
In Module 1, you will explore the game creation process that is used in this course. You will use this process to design Version 1 of the first game, Hacking. You will use two problem-solving techniques: problem decomposition and algorithms. You will explore five criteria for problem decomposition: experiential decomposition, feature selection, problem refinement, spatial decomposition, and temporal decomposition. To create your design for Hacking Version 1, you will use three interactive learning objects: the description builder, functional test plan builder, and algorithm builder.
Week 3
Module 2: Program Hacking Version 1
In Module 2, you will discover how lexics, syntax, and semantics can be used to understand and describe programming languages. You will use these concepts to understand your first Python statement (expression statement), first three Python expressions (literal, identifier, function call), and first five Python types (int, str, float, function, NoneType). You will use these Python constructs to write, test, and debug Hacking Version 1, a text-based game version. You will then reflect on your game version by using a third problem-solving technique called abstraction, including the specific technique of solution generalization, to solve similar problems.
Week 4
Module 3: Hacking Version 2
In Module 3, you will identify solution issues in your game. You will apply a second form of the abstraction problem-solving technique, called using templates, to solve a solution issue by using a graphics library. You will then use lexics, syntax, and semantics to learn two new Python statements (assignment, import), two new Python expressions (binary expression, attribute reference), and one new Python type (module). You will employ these Python constructs and a simple graphics library to write, test, and debug Hacking Version 2.
Week 5
Module 4: Hacking Version 3
In Module 4, you will modify your game design to support multiple gameplay paths using a new problem decomposition criteria called case-based decomposition, which utilizes a selection control structure. You will learn one new Python statement (if), one new Python expression (unary expression), and one new Python type (bool). You will employ these Python constructs to write, test, and debug Hacking Version 3.
Week 6
Module 5: Hacking Version 4 & 5
Week 7
Module 6: Hacking Version 6
In Module 5, you will modify your game design using two new abstraction techniques, called control abstraction and data abstraction. You will explore two different control abstractions, called definite and indefinite repetition. You will learn two new Python statements (for, while), four new Python expressions (subscription expression, expression list, parenthesized expression, list display), and three new Python types (tuple, list, range). You will employ these Python constructs to write, test, and debug Hacking Version 4 and Hacking Version 5.
Week 8
Module 7: Hacking Version 7
In Module 6, you will learn a new control abstraction called a user-defined function. You will learn how to implement user-defined functions using two new Python statements (function definition, return). You will employ these Python constructs to significantly improve the quality of your code in Hacking Version 6.
Week 9
Module 8: Poke the Dots Version 1 & 2
In Module 7, you will not learn any new problem-solving techniques or Python language features. Instead you will exercise your problem-solving skills and practice the language constructs you already know to improve your proficiency. You will add some fun features to the Hacking game by designing, coding, testing, and debugging Hacking Version 7.
Week 10
Module 9: Poke the Dots Version 3
In Module 8, you will design and implement Version 1 of a new graphical game called Poke the Dots. You will then modify your game design using data abstraction to create user-defined classes. You will learn two new Python statements (class definition, pass) that will allow you to construct your own Python types. You will employ these Python constructs to implement Poke the Dots Version 2.
Week 11
Module 10: Poke the Dots Version 4
In Module 9, you will not learn any new problem-solving techniques or Python language features. Instead you will exercise your problem-solving skills and practice the language constructs you already know to improve your proficiency. You will add some fun features to the Poke the Dots game by designing, coding, testing, and debugging Poke the Dots Version 3.
Week 12
Module 11: Poke the Dots Version 5
In Module 10, you will modify your game design using a new form of control abstraction called user-defined methods. User-defined methods allow you to restrict access to the attributes of a class to improve data abstraction. You will employ user-defined methods to implement Poke the Dots Version 4.
FAQ
When will I have access to the lectures and assignments?
Access to lectures and assignments depends on your type of enrollment. If you take a course in audit mode, you will be able to see most course materials for free. To access graded assignments and to earn a Certificate, you will need to purchase the Certificate experience, during or after your audit. If you don't see the audit option:
What will I get if I purchase the Certificate?
When you purchase a Certificate you get access to all course materials, including graded assignments. Upon completing the course, your electronic Certificate will be added to your Accomplishments page - from there, you can print your Certificate or add it to your LinkedIn profile. If you only want to read and view the course content, you can audit the course for free.
Is financial aid available?
Yes. In select learning programs, you can apply for financial aid or a scholarship if you can’t afford the enrollment fee. If fin aid or scholarship is available for your learning program selection, you’ll find a link to apply on the description page.
What resources can I access if I take this course for free?
All learners can access all the videos, assessments, interactive learning objects (ILO), virtual machine (VM) image, and forums for free.
Can I take this course for university credit?
No. The PVG course by itself does not qualify for credit.
Getting course credit from the University of Alberta requires a learner to apply to the University as either a degree or an open-studies student. Once accepted, a student must enrol, and attend classes and labs on-campus. For such students, PVG can be used as part of a for-credit introductory course to computer science and programming, called Computing Science (CMPUT) 174, Introduction to the Foundations of Computing, Part 1.
Note for University of Alberta students: Unfortunately, you will not be able to take PVG as part of CMPUT 174 in the Fall 2020/Winter 2021 Term.
Reviews
excellent course. The syntax analysis was rather hard at times but it gave a more systematic approach to programming. What gained over programming skills is actually efficiency in programming.
I have learnt a lot from this course and it is what i need as well. I do really appreciate that you guys allow me to have this course thank you so much.
Mostly good. However, a little too detailed than warranted. (Like learning about how a cars engine works when you just want to learn how to drive...)
Very Informative by helping you learn programming long term!
Start your Free Trial
Self paced
46,130 already enrolled
4.5stars Rating out of 5 (170 ratings in Coursera)
Go to the Course