| CompSci 190 Fall 2022 |
Programming Games FOCUS Section |
Every game ever invented by mankind, is a way of making things hard for the fun of it. — John Ciardi
Games are an increasingly important medium in terms of international use, cultural impact, and profitability. Arguably, gaming has also driven many recent advances in computer hardware and are finally gaining acceptance within the academic community as an area worthy of study. And why not? Games contain all of the basic elements taught in computer science and commercial game engines are becoming increasingly complex software systems. The focus of this course is not to build commercial quality 3D games, but you will experience all of the same basic concepts by building these 2D games.
Games are also a very interesting medium to explore new things but designing something that is fun as well as educational is a significant design challenge. This course will be a hands-on exploration of designing, implementing, and play testing games. Along the way you will learn about what makes a game good and practice iteratively improving your work. Games have a rich tradition in education because they embody many positive principles that enhance learning, such as immediate feedback, increasing levels of difficulty, exploration, and motivation. Their instant feedback also encourages players to explore and figure out how things work because dying is not a big deal (and sometimes even fun :). This course is designed on similar principles in an effort to make learning to program a fun rather than fearful prospect.
This course is part of the Virtual Realities, Fictional Worlds, and Games FOCUS Cluster and will be taught in Duke's GameLab in a workshop format that means we will be actively programming or designing during class.
This course aims to be an introduction to the basic concepts of computer programming by building and designing video games. While the focus is on programming in Python as applied to video game development, the concepts covered are widely applicable across programming languages and applications. These concepts include selection, loops, collections, organizing data, event-driven responses, and object-oriented design. As such, it provides an introduction to a skill that you can use to enhance any of your other interests as well as preparation to take CompSci 201 if you choose to continue on in Computer Science.
Required Background: None. This course is designed for those with no programming experience and serves as an equivalent course for CompSci 101.
Help me improve the course. The Computer Science department at Duke University aims to excel in education and research. If you find your efforts are not being well directed towards learning, please let me know so I can help remedy the situation — the goal is not to work you simply for work's sake!
Help me improve the website. Please inform me of any broken links or otherwise misleading or confusing content and I will get it fixed as soon as possible.
My goal is to adapt the subject and delivery of this course to meet your needs while maintaining our high standards.