Vous êtes sur la page 1sur 7

Duke Talent Identification Program

Summer Studies Program 2018


Team Programming for Video Games
Site: University of Georgia
Term: 2
Instructor: Ecclesia Morain
TA: Brandon Bailey
____________________________________________________________________________

Course Description:
Create competitive and collaborative multiplayer games in small teams.

Required Texts: (provided to students by Duke TIP)


Beginning Game Development with Python and Pygame: From Novice to Professional. McGugan, Will.
Apress.

Course Objectives:
During this course, students will:
Primary
● Learn fundamental programming concepts such as iteration, conditionals, and object-
oriented programming to establish control flow in a program.
● Gain exposure to the development process involved in creating a game
● Improve interpersonal skills by developing games collaboratively
● Practice communicating solutions and strategies by demoing projects
● Develop and implement strategies to solve software engineering problems.
Secondary
● Develop awareness of the role of a software developer to the process of developing an
enterprise level game
● Develop oral and written skills necessary for success in software development (or in life in
general)
● Develop teamwork skills through group activities to achieve common goals
● Apply basic research principles needed by college students and by working professionals
● Strengthen ability to solution-oriented and resourceful.
● Analyze ethical issues as they relate to the practices of engineering and business

Assignments and Evaluation:


The course content is structured into three core objectives: programming fundamentals, object-
oriented programming, and an introduction to computer intelligence in game development. These
are divided amongst the three weeks respectively.
Material will be facilitated by conventional lectures, collaborative lectures in which students will
work together on a single document to code solutions to problems as a class, individual
assignments, reflective class discussions, small group projects, and simplified formal presentations.
By the end of the term students will have created between two and four projects. At least two will
be developed with a team.

No official grade will be presented during the course, but students will be given feedback
throughout to gauge their performance.

Ultimately, this course endeavors to expose students to the considerations that are made in
creating software at the enterprise level, namely entertainment software, by having them fill the
roles of the Product Designer, the Developer, and the Product Manager. Regardless of a student’s
future career intentions the goal is to equip students to work productively in team’s, develop
effective communication skills, and a more comprehensive understanding of product development.
____________________________________________________________________________

Day by Day Itinerary:


______________________________________________________________________________
Week 1
______________________________________________________________________________

Monday, July 9: Overview of Video Game Development and Intro to


Programming in Python
Morning
• Course Introduction
o Instructor, TA introductions, Rough Course Outline, Classroom Conduct Contract,
• Japanese IQ Test (Transport 8 people over a riddle under strict constraints)
• Begin Introductory Programming slides
Afternoon
• Finish Introductory Programming slides
o Keywords, data types, statements, expressions, conditionals, iteration, functions
• Assignment 1: Staircase Problem
o https://www.hackerrank.com/challenges/staircase/problem
Evening
• Make HackerRank Account. For those sharing computers know that one may have to make an individual account
later.
• Continue reasoning through Staircase Problem; attempt a solution in code
Tuesday, July 10: Putting lecture material into practice
Morning
• First 6 problems (up to List Comprehensions) here: https://www.hackerrank.com/domains/python
o Practicing: Print statements, Conditional Expressions, Arithmetic and Logical operators, Iteration, and
Functions.
o Challenge:https://www.hackerrank.com/challenges/swap-case/problem
Afternoon
• Recap of Material in the form of casual group presentations of topics learned
• Begin Brainstorming how to implement Tic-Tac-Toe or Hangman
Evening
• Good Coding Practices
• Work Through Dataflow Graph Problem: https://magoosh.com/gmat/2013/gmat-ir-numerical-algorithm-
flowchart-problems/

Wednesday, July 11: Developing Simple Python Games In Groups


Morning
• Review Evening Study Problem
• Arrange Students in Groups
• Start developing either Hangman or Tic-Tac-Toe. Group pick.
Afternoon
• Continue Project
o **Remind Students to keep track of key milestones as they will have to demo their projects
o Instructor: Identify student subject weaknesses. Revise Lesson Plan if needed.
Evening
• Install Python 3 for Mac and Windows
o Download Atom
o Show how to run a python script by command line
• Have students Complete Course Evaluation Sheet

Thursday, July 12: Project Demos and Individual Functional Programming


Practice
Morning
• Mini-Assignment and Discussion: Robots On A Line Problem
• Demo Projects. Demo should include:
o High-Level English Description of Code
o Major milestones
o Bugs Encountered/ Overcome
Afternoon
• Classroom Collaborative Problem
o https://www.codechef.com/problems/DECINC
• Individual Assignment
o Functional Programming Assignment
o https://www.codechef.com/problems/AREAPERI
Evening
• Fill out T-Shirt Designs
• Complete the following problems: (All links are distributed in a Class Google Docs)
o Syllabus > (5) Lists and dictionaries: https://www.codecademy.com/learn/learn-python
o Syllabus > (7) Lists and Functions: https://www.codecademy.com/learn/learn-python
Friday, July 13: Intro to OOP with UML Class Diagrams and Ethics in
Computing Discussion 1
Morning
• Complete Afternoon and Evening Assignments on Functional Programming
• Intro to OOP with UML Class Diagrams
o https://www.youtube.com/watch?v=UI6lqHOVHic
o https://www.lucidchart.com/documents/edit/f74d990b-9238-424c-9500-4ddaea329f1d/0
• Video Breakdown and Group UML Activity
o Establish Game Idea-> Identify all nouns/objects -> Identify all adjectives/ noun features-> Identify all
verbs/interactions
o Each step above done in 15 minute intervals with 10 minute recap afterwards

Afternoon
• Ethics Discussion on Privacy Rights on a Public Digital Platform (The Internet)
o The Right To Be Forgotten:
o https://www.youtube.com/watch?v=BjCO_aFblHo
o https://www.youtube.com/watch?v=oxkAyntDjew
o https://www.youtube.com/watch?v=yvDzW-2q1ZQ

Saturday, July 14: Github, Command Line Commands, Influence of Sci-Fi on


Technology
Morning
• Install Git, and Atom
• Push the week’s projects to Github
• Film Viewing. Topic: The Influence of Science Fiction on Technology In Real Life
o Film: The Matrix: https://www.sonycrackle.com/the-matrix/2504638

______________________________________________________________________________
Week 2
______________________________________________________________________________

Monday, July 16: OOP with Python and Pygame Fundamentals


Morning
• Intro to OOP
o What is Object Oriented Programming
o Classes, constructors and instantiation
o Variable parameter constructors
o Parent-child relationship; siblings and scope
o Scope and overwriting parent methods
Afternoon
• OOP Practice: Building classes, Inheritance, and Overwriting
o Complete exercises here: https://realpython.com/python3-object-oriented-programming/#what-is-
object-oriented-programming-oop
• Installing Pygame
Evening
• Create Class Term Book Page
Tuesday, July 17: Pygame Introduction and Pygame Project Brainstorm
Morning
• Logic Problem: “Einstein” Riddle
• Pygame fundamentals Instructor demo: Load GUI and display image
Afternoon
• Brainstorm Game ideas and mechanics
• Get Instructor Confirmation of Project. Implementation Objectives:
o GUI: Display an object on screen with dynamic position
o Mechanics: Move a second object on screen according to some predefined function
o Responsiveness: Have game respond to user input (ex. move player when arrow key pressed)
Evening
• Begin Developing projects

Wednesday, July 18: Building The Game


Morning and Afternoon
• Work on games. Implementation Objectives:
o GUI: Display an object on screen with dynamic position
o Mechanics: Move a second object on screen according to some predefined function
o Responsiveness: Have respond to user input (ex. move player when arrow key pressed)
• Additional Resources:
o Fundamentals Tutorials: https://lorenzod8n.wordpress.com/category/pygame-tutorial/
o Ideas: https://inventwithpython.com/blog/2012/02/20/i-need-practice-programming-49-ideas-for-
game-clones-to-code/
Evening
• Student Course Evaluations
• Write and Distribute Peer Encouragement Letters

Thursday, July 19: Continue Game Development


Morning and Afternoon
• Work on games. Implementation Objectives:
o GUI: Display an object on screen with dynamic position
o Mechanics: Move an object on screen according to some predefined function.
o Responsiveness: Have respond to user input (ex. move player when arrow key pressed)
Evening
• Rained in: No access to resources. Logic Riddles and Free time.

Friday, July 20: Complete and Demo Games


Morning and Afternoon
• Wrap up Games
• Review Challenge: Complete Challenge tasks in the Magic 8 Ball in pygame template. Covers:
o pygame GUI practice
o pygame I/O
o Lists vs ‘if statements’
• Presentation @ 2:45pm. RCs join audience. Presentation Guideline:
o Overview of game and mechanics
o High-Level English description of code/ Control flow of Program
o Major Bugs/ Milestones
o Future Plans/Implementation Intentions
Saturday, July 21: Overview of Info Security and AI, Discussion 2
Morning
• Push the week’s projects to Github Stormed in.
• Film Viewing and Discussion:
o Topic: Software and Ethical Dev Standards in Security and Robotic Computer Intelligence
o Film: WarGames

______________________________________________________________________________
Week 3
______________________________________________________________________________

Monday, July 23: Field Trip: Game Bus and Guest Lecturer, Discussion 3
Morning
• UGA Computer Science Recruiter Information Session.
o Computer Science (CS) Careers
o Overview of CS Higher Education Coursework
o Seeking certificates and specializations with a CS degree
Afternoon
• Athens Gaming Theatre Game Bus: Interactive Study of Game Marketing
o How Marketing teams target audiences
o What elements appeal to target audiences
o What features in games supplement marketing decisions
Evening
• Group discussion and reflection of Game marketing

Tuesday, July 24: Team Building and Guided Movie Viewing


Morning
• Team Building Exercises
o Cooperative Tower Building
o Cooperative Engineering: Egg Drop
o Blindfolded Maze Traversal
o Reflection
Afternoon
• Film: Guided Watching of Ready Player One

Evening
• Film Reflection: Written responses to Film Questions
Wednesday, July 25: Intro to Pathfinding and Computer Intelligence
Morning
• Introduction to Pathfinding and Autonomy with Programmed Computer Intelligence
o Agents and Defining The Space
o Graph Theory:
▪ Graphs as a concept and Representation in Code
▪ Pathfinding Algorithms = Tree and Graph Search: BFS and DFS
▪ Abstract Data Types to influence world exploration: Stacks and Queues
o Classroom Collaborative Coding: Using Lists and Dictionaries to represent problems
Afternoon
• BFS (Breadth-First Search) and DFS (Depth-First) Worksheet
• Continuation of Graph Theory:
o Abstract Data Types to influence world exploration: Stacks and Queues
Evening
• Code Improvements: When to Use Lists
o Magic 8 Ball Superfluous if Statements to Lists
• Early Finish: Watch: Infinity Train (8 min): https://www.youtube.com/watch?v=oY6kfVWv01k

Thursday, July 26: Programmed AI: Pacman Project; Linked List Assignment
Morning
• Try: Implement Pacman Project BFS and DFS Algorithms
Afternoon
• Brief Discussion of Linked Lists as used for
o Implementing Stack and Queue Data Types
o Backtracking and path identification for pathfinding problems
• Complete Linked-List Assignment
Evening
• Wrap up Linked List Assignment
• Course Material Complete: Free Time.

Friday, July 27: Class Collab and Final Game Development Activity
Morning
• Students Serve as Jury for Mock Trial Course
• Instructor: Parent Conferences
Afternoon
• Activity: Build a Game to fit a Genre
o Students split into groups and come up with set of rules for their group’s video game genre
o Students develop a game according to genre rules and include the following details:
▪ Objective
▪ Number of players
▪ Play style: Cooperative vs. Competitive
▪ Game Mechanics
o Students convert their game to another genre
o Students convert their game to another platform
• Final Goodbyes

Vous aimerez peut-être aussi