Game Programming CS233G / Winter 2012 / PCC



Similar documents
AMS 5 Statistics. Instructor: Bruno Mendes mendes@ams.ucsc.edu, Office 141 Baskin Engineering. July 11, 2008

CLASS PARTICIPATION: MORE THAN JUST RAISING YOUR HAND

Technology Department Computer and Network Support Capstone CMP 259-D01 Syllabus: Spring 2015

>> My name is Danielle Anguiano and I am a tutor of the Writing Center which is just outside these doors within the Student Learning Center.

Physics 21-Bio: University Physics I with Biological Applications Syllabus for Spring 2012

Technology Department Help Desk & User Support CMP 240-D01 - Online Syllabus: Spring 2015

Spring 2015 Syllabus for ENG : Writing Experience I

TIME MANAGEMENT FOR COLLEGE STUDENTS

Becoming an Online Learner

Earth Science 101 Introduction to Weather Fall 2015 Online

Effective Study Skills. Dr. Bob Kizlik. How to Study and Make the Most of Your Time

Advanced Blackboard 9.1 Features

Olathe North High School Accounting I - Syllabus

TeachingEnglish Lesson plans

El Camino College Chemistry 1B: General Chemistry II. Instructor: Dr. Peter A. Doucette Office: Chem

Castro, Elizabeth. HTML, XHTML & CSS Visual Quick Start Guide. Peachpit Press. Edition: Sixth. Pages: 456. ISBN:

BA 561: Database Design and Applications Acct 565: Advanced Accounting Information Systems Syllabus Spring 2015

CS 378: Computer Game Technology

Riverside City College Arithmetic-Pre-Algebra/Math 65 (48422), Fall 2014 MTSC 103-MTWTh: 06:00PM - 07:10PM

It is vital that you understand the rationale behind the correct answer(s) as wel as the incorrect answer options.

Study Strategies Used By Successful Students

Human Services Associate Spring 2014 Student SLO Report

ASSIGNMENT POLICY SETTINGS & BEST PRACTICES

Introduction: How does a student get started? How much time does this course require per week?

In this topic we discuss a number of design decisions you can make to help ensure your course is accessible to all users.

Introduction to Graphic and Web Design. Nina S. Young Date: 1/6/11 Revised:1/6/11

Virtual Classroom Student Guide

El Camino College Chemistry 1B: General Chemistry II Instructor: Dr. Melvin Kantz Office: Chem

PSYCHOLOGY 236 PERSONALITY PSYCHOLOGY ONLINE SUMMER, 2013

CFHS Grading Scale: Computer Lab Rules: THESE RULES ARE DISTRICT POLICIES AND MONITORED BY THE ADMINISTRATION, TECH SUPPORT AND TEACHER

FYS Life Maps JACKSON COMMUNITY COLLEGE 1/10 through 2/23/2012 WINTER 2012

Mendocino College Online Math Orientation presented by Susan Bell & Jason Edington

Social Psychology PSYC Online

The Challenge of Helping Adults Learn: Principles for Teaching Technical Information to Adults

Join Your Accountant And Jump

MathXL Getting Started Guide for Students

CS 170 Java Programming 1. Welcome to CS 170. All about CS 170 The CS 170 Online Materials Java Mechanics: Your First Program

Foothill College Winter 2014 Pre-Calculus III Math 48C CRN # units

AGEC $424$ Syllabus. Financial Management of Agricultural Businesses

Bergen Community College - Information Technology Course Syllabus

General Procedures for Developing an Online Course

F l o r i d a G u l f C o a s t U n i v e r s i t y S t a t i s t i c a l M e t h o d s F a l l C R N

Get enough sleep so that you can stay alert during lecture. Falling asleep in the front row wastes your time and might offend your professor.

Spring 2013 Structured Learning Assistance (SLA) Program Evaluation Results

Florida Gulf Coast University Finite Math M GF 1106 Spring 2014 CRN 11072

UNIVERSITY OF MARYLAND MONEY AND BANKING Economics 330 Fall 2015

The course assumes successful completion of CSCI E-50a and CSCI E-50b, i.e. at least two semesters of programming, with a grade of C- or better.

Olathe North High School Accounting II - Syllabus

SE 333/433 Software Testing and Quality Assurance

CS 106 Introduction to Computer Science I

INFO 2130 Introduction to Business Computing Spring 2013 Self-Paced Section 006

ADVANCED CORPORATE FINANCE I 2009 SPRING SEMESTER

PCB 3043: Ecology Spring 2012, MMC

CS 300 Data Structures Syllabus - Fall 2014

IV. Student Performance Objectives: Upon successful completion of this course, the student will have met the following objectives:

1.00 Lecture 1. Course information Course staff (TA, instructor names on syllabus/faq): 2 instructors, 4 TAs, 2 Lab TAs, graders

TITLE: Elementary Algebra and Geometry OFFICE LOCATION: M-106 COURSE REFERENCE NUMBER: see Website PHONE NUMBER: (619)

Software Development Foundations CPSC Spring 2014 Syllabus

etroy Course Syllabus BUS 3382 XTIA Business Communication Term 1, 2015 August 10 October 11, 2015

College of Southern Maryland Fundamentals of Accounting Practice(ACC 1015) Course Syllabus Spring 2015

Welcome to Life Span Psychology (Psych 41) East Los Angeles College. 3 Credit Hours. Professor Maria Mayoryk

How To Manage A Business In A Microcomputer Game

Del Mar College - Mathematics Department SYLLABUS for the Online Calculus for Business and Social Science - Math fa

Contact Information: addresses: (best way to contact)

Counselor Chat Tuesday, January 10,2012

Week 2 Practical Objects and Turtles

Practical Study Tips

Governors State University College of Business and Public Administration. Course: STAT Statistics for Management I (Online Course)

BIO 315 Human Genetics - Online

Difficult Tutoring Situations

Online Course Syllabus Page 1

Florida Gulf Coast University Lutgert College of Business Marketing Department MAR3503 Consumer Behavior Spring 2015

South Plains College: General Course Syllabus

MG430: Sports Management

Introduction to the course, Eclipse and Python

EDCI Learning Theory and Instructional Design

PROFESSIONAL WRITING WRT 307 ~ Spring, 2010

TINA: But we re getting ahead of ourselves. Let s start at the beginning This is Ivy Tech.

How does mental illness interfere with school performance?

Great Basin College Spring Semester GRC 188 section 1001 Web Animation and Interactivity I

MyMathLab/MyStatLab Student User Guide

IMPLEMENTATION GUIDE for MEDICAL TERMINOLOGY ONLINE for MASTERING HEALTHCARE TERMINOLOGY, Third Edition Module 7: Male Reproductive System

Computer Science Spring 2012 Page 1. COURSE INFORMATION Introduction to Computers / COMSC / Online Section. kstanton@losmedanos.

CS 115 Introduction to Computer Programming Course Syllabus (Night Sections) Fall 2015

itunes U Course Guidelines

Online Course Syllabus. POL 1113: American National Government. Fall 2015

SYLLABUS & COURSE OUTLINE

Success Tips for Online Learning

Transcription:

Game Programming CS233G / Winter 2012 / PCC Portland Community College Sylvania Campus, Technology Classroom Building (TCB) room 310 Instructor: Phillip Kerman Telephone/Messages: 503-449-6701 Email: teacher@phillipkerman.com 6:00pm 8:50pm, Tuesdays 10 th of January through 20th of March Web Site http://www.phillipkerman.com/pcc/games (where you ll find--among other things--a PDF version of this syllabus) Don't just read the notes. That is, do read the notes but don t read only the notes. The Course Content and Outcome Guide (CCOG) for this course currently online was written for a different course and is therefore out of date: http://www.pcc.edu/ccog/default.cfm?fa=ccog&subject=cs&course=233g Course Content Even though the course you'll be attending is not far from the CCOG above, I'd still prefer you consider the following as the actual content and intended outcomes for this course: Object oriented architectures and software design patterns used for game production. Students use ActionScript 3 to solve a variety of programming challenges facing game programmers, including: designing and using data structures for user tracking/restoring as well as time/date maneuvers, graphical APIs (Application Programming Interfaces) for dynamic vector and raster drawing, and appropriate and practical architectural decisions including whether to use third party code libraries. In addition, students will research and survey a variety of third party code libraries to help with things like tweening, 2D, or 3D, as well as entire game frameworks. Such research reinforces the concept of having to constantly learn new topics. Students are welcome and encouraged to also study how HTML5/CSS3/JavaScript is solving similar tasks once unique to Flash. A strong emphasis is also placed on students building code that will necessarily be re written (refactored) multiple times on its way to exhibit good architecture. That is, you'll have to throw away code you write as you improve it. By understanding you ll necessarily be refactoring helps you avoid spending an inordinate amount of time planning, designing, and optimizing all in an attempt to produce perfect code which, in reality, is never finished because it can never live up to the expectations. Give yourself permission to make bad code in fact, I require it (you ll turn in early revisions). But then, go back and improve what you ve made. During their exploration of game programming students will naturally encounter (and resolve) a wide variety challenges which are less "code based" such as language and communication. For example, I place a high value on students ability to discuss the subject matter. Each student is required to maintain

a list of vocabulary they ve learned during the course. Additionally, I m grading students on their involvement during discussions(both in writing via email and the mypcc discussions for this course as well as verbally in person). Expect to look at each exercise and project from multiple perspectives. You should: actively participate in lectures and discussions. do some work in lab while teacher is present. do more work outside of the class ideally including some time working with others. do still more work researching topics as needed. present some assignments to entire class. get inspired to build code beyond the exercises, projects, and assignments from class. pretend you love the class even if you have to lie to yourself. Is this class right for you? The prerequisites for this class are general but I expect one of two types of students: 1, you ve got some programming experience (ideally a language that s object oriented like Java or C++ or C#) but you ve got little or no experience with Flash/ActionScript or, 2, you have basic Flash skills and want to become more advanced for example, you may have taken the courses MM240 and MM241. If you ve never done ActionScript 3.0 (AS3) then expect to get up and running very quickly. The good news is you can see results very quickly and it s possible to do all the coursework with 100% free software. I ll provide additional resources and screencasts that can help you get started. You will need to get your workspace set up and this can be a bit of a chore. Skills doing Object Oriented Programming (OOP) will make the transition to AS3 very easy. If you re here to advance your Flash skills, you might be shocked by the strong emphasis on OOP. Plus, while everyone is welcome to use Flash Professional (the authoring tool) the best coding tools are nearly any other tool so we ll spend all our coding outside Flash Professional. You might need an OOP crash course and luckily I have resources to help you too. For everyone, remember that when learning something new anything at interestingly complex it s likely that you ll feel disconnected and as if you don t know anything at first. That s a normal feeling. Because the end of this week is the last day to drop, it's important that you understand what this course is all about. I'll attempt to clearly communicate that during the first class session. I'm certainly not trying to scare you because I believe this course will be one of the most fun programming classes you ll ever take. (I know that most of the student who completed the course last year found it very fun.) I suggest planning on studying for 4 to 8 hours each week (in addition to the 3 hours in class). It's best to break this up into many small or medium sessions and to take a variety of approaches to the work. Perhaps invest 1 hour before each class discussing with another student. Or force yourself to research and answer one or more question you encounter every week. There are many resources that can make this interesting such as simply reading from the ActionScript 3 Language Reference. (Be careful not to

fall into the trap of spending countless hours following mediocre or just plain bad online tutorials or videos. I'll be glad to review any you find if you want my feedback.) Course Outcomes Upon completion of this course, students should be able to: Assess and specify programming tasks. Refactor code especially your own code. Describe and build a game framework (not so much "build a universal framework" but more "make a framework that you can use for a specific project"). Describe and implement code related to many of the ActionScript classes and packages most notably flash.display, flash.geom, flash.net, flash.media (and most of the top level classes like Array and XML). Be comfortable and able to learn any additional unfamiliar classes from the ActionScript language. Describe and create custom datatypes or "value objects". Describe and build classes that extend display objects. Describe and build systems that load content at both runtime and build time. Course Content (Themes, Concepts, Issues and Skills) Demonstration of instructor's work including games programmed for MSN and MSN Messenger. Listen to wisecracks and attempts at humor (mostly failing) from instructor. Take practical and realistic approaches to problem solving. Attempt a solution, re analyze, and then re build. Clearly describe problems and systematically design solutions. Schedule Overview Course overview. AS3 basics/display options and class architecture. Designing data structures for user tracking. Scaffolding/stub code, prototyping. Common maneuvers using String, Date and Time, and Bitmap/Vector display. Specifying and scoping game projects. Dispatching custom events. Build infinite scroll, gravity features, and basic navigation. Building custom vs. leveraging others' code. Use and study tween engines and other libraries including frameworks. Explore performance enhancements. Students share framework research. Summary of course. Final project TBD (to be decided).

Assignments 3 things Due at beginning of class every Tuesday Before the class start time of 6pm, students must turn in (email or paper) and have available for discussion a list of three specific things they learned during the previous class session including your homework. Note: these things must be stated in a way that I can confirm your understand a topic. That is, don t just say I learned about events because I can t say for certain if you are correct or not. You need to state the thing in a way that takes a stand on a topic. Often it will be more specific. For example, you could say I learned that events are just strings though every event name has a static property you can use. That s clearly either true or false. This example happens to be correct but it s totally satisfactory for any or all of you things to be wrong (as long as they re stated properly). Often students will leave out details or state something incorrectly. The purpose (and value) of this assignment is that I can address very early any miscommunication/misunderstanding. Homework presentations due in class as assigned (about every other session): I will periodically assign homework about which you will need to present, turn in, or complete a quiz (depending on the assignment details). at least one assignment will involve you presenting in front of the whole class. Vocabulary: Each student will collect a list of vocabulary words acquired during the course related to ActionScript programming as well as programming generally and the games industry (or at least the casual and online game industry with which I'm most familiar but you're welcome to expand to any corner of the industry). You must send me all the terms/words (and your definitions for each) and I will provide feedback. It s possible that you may know many of the terms that come up in class that s fine. Either way, however, you ll be prepared for the vocabulary quizzes later in the course. I doubt very much that any attentive student will find any terms to be completely unfamiliar (that is, you ll recognize every term that I quiz you on). In Class Exercises: There will also be additional exercises assigned during class where I will want to review your code. Sometimes this will be as easy as letting me just see where you're headed on a task. Other times you'll have to email me the code you complete outside of class. Often I'll make you re do the work multiple times to improve upon your code. it's best to attend class to learn of these assignments however each week by midnight on Thursday (or before) I'll post all assignments to the following website. You can't pass this class without attending the sessions however the assignments will be clearly posted at www.phillipkerman.com/pcc/games. The page above won't win any awards for visual design or even usability however if you simply read everything you will find details for every assignment. no student should find the workload for this class insurmountable provided you have the interest and time to invest into this class. It's quite possible that I reduce some of the requirements or

even make up alternatives more appropriate to how our course develops. I want this document to accurately represent expectations for the class but I'm also a very practical human and adaptable. Keep in mind, this is simply my plan. It will likely get adjusted as the course progresses. Detailed Schedule Weeks 1 & 2 Lecture: Class format, course overview, and "Being a Programmer" Demo: Two games I've built: Spot the Difference and Tic a Tac Poker Lecture: AS3 Overview including ways to make a.swf, ways to display content, and how to use the language reference docs. Also, I'll point to additional resources for learning OOP, ActionScript, and Flash. Exercise: Save/restore many objects. Exercise: Homemade tween Weeks 3 & 4 Lecture: Prototyping, stub code, and "The Lazy Programmer" Demo: Jigsaw and prototypes. Exercise: Timers Exercise: Strings to express numeric values. Exercise: Dynamic graphing. Weeks 5 & 6: Demo: Multi user projects (meeting software, cattle auction, MSN Messenger games) Demo: Randometer, HP Timeline Lecture: Dispatching custom events. Exercise: Infinite scrolling Exercise: Gravity Grading Policy My assessment of student comprehension and ability involves a variety of methods. Attendance: I take role and consider attendance to be a critical part of completing the course. "90% of success is just showing up." If you miss a little bit of class it won't necessarily cause you to fail but I doubt very much any student can learn the necessary content without attending most all the sessions. Try to avoid traffic accidents just to arrive on time if you miss a little bit here or there you'll probably be fine. Unless you already know the subject matter from class (which would be odd because taking this class would necessarily be a waste), then do plan on attending each class. In class participation: I know that students who actively participate get a lot more out of my classes. Try NOT to simply look at the subject matter and determine what parts I want you to learn. Rather, try to learn all you can about what I am covering. Part of your challenge will be to decide what NOT to study. That is, only given all the time in the world can you learn "everything". We don't have all the time in the world so you'll often need to make the tough decision to stop studying (say, to sleep or move on to other topics).

Written and verbal communication: Chances are none of us are savants in the field of game programming. But no matter what field you pursue in life, you'll be more successful if you can communicate to others. For me, I find the best way to judge your ability as a student is for me to consider how you talk and write about a subject. That is, you can't just turn in beautiful code with no comments and expect a good grade. Assignments, exercises, quizzes: I'll provide prompt feedback for every assignment you turn in. However, I do not have a mathematical formula whereby you can calculate your grade by adding up all your results. When grading I usually find there are three groups of students: 1) obvious A students, 2) obvious D/F students (Fs for those who aren't present), and 3) the B and C students which are the hardest for me to grade. It is with these B and C students which I apply an arbitrary but measured system that effectively applies a "curve". That is, I take these students and find specific reasons why one should receive a C (maybe they missed an assignment) or another should receive a B (perhaps they did better on all the quizzes). You will get a better grade if you re simply an active participant in class (participate in discussions etc.). Because I mentioned the curve be certain that I have no problem grading every student with an A. Extra Credit and Makeup In my years of teaching I found it appropriate only once to let a student do extra credit work and don't expect to see it happen again. It's much more rare than a total eclipse of the sun. Required A backup system such as a flash media drive or web storage. Better yet use an off site version control software such as GIT or subversion. "The file got deleted" is not an acceptable excuse for missing an assignment. Plus, you should want to keep some of your files. Find additional resources at: www.phillipkerman.com/pcc/games