AIU GAM1xx Fundamentals of Programming and Logic

International Game Developers Association

Jump to: navigation, search

Contents

Course Information

Course Title

Fundamentals of Programming and Logic

Course Number

GAM1xx

Instructors Name

Full Name (optional telephone number and email)

Date

Date course begins or beginning and ending dates of term

Course Length

12 Weeks

Course Schedule

Day(s), Evening(s), Time class begins and ends each meeting

Unit of academic measurement

Quarter

Lecture Hours

40

Lab Hours

40

Externship/Internship Hours

0

Total Credit Hours

6

Total Contact Hours

80

Course Description

This course is a disciplined introduction to computer concepts and common programming language structures used in application development processes. Programming concepts and problem-solving techniques are applied through the analysis of variables and scope, basic data types, and control structures.

Prerequisite

GAM1xx

Co-requisites

None

Description of Content

Textbooks

  • REQUIRED Mathematics for 3D Game Programming & Computer Graphics, Eric Lengyel, Charles River Media, 2001. ISBN: 1584500379
  • OPTIONAL Thinking in C++, Volume I: Introduction to Standard C++ (2nd Edition), Bruce Eckel, Prentice Hall, 2000. ISBN: 0139798099
  • OPTIONAL Thinking in Java (3rd Edition), Bruce Eckel, Prentice Hall, 2002. ISBN: 0131002872
  • OPTIONAL Game Scripting Mastery, Alex varanese and John Romero, Premier Press, 2002. ISBN: 1931841578

Resources & Supplies

  • REQUIRED Notebook, pen.

Course Specific Performance Objectives

Upon completion of this course, the student should be able to:

  • Identify program logic, techniques, and tools common to all programming languages, including pseudo-code, structured English, and flowcharts
  • Demonstrate the basic operation and use of computer hardware and software.
  • Explain how to download and install software.
  • Demonstrate programming essentials that include such topics as data types, pointers, arrays, string processing, stacks, recursion, searching and sorting algorithms, classes, objects, references, memory addresses, files, and graphics.
  • Utilize conditional statements, loops, control breaks, arrays, and sorting logic.
  • Describe and use problem-solving techniques common to all programming languages

Life skills Performance Objectives

Objective Assessment Measures

Subjective Assessment Measures

Program Standards

Purpose

Demonstrate Participation and Critical Thinking

  • Participate in group discussions and critiques
  • Write and compile programs, checking for accuracy
  • Timeliness
  • Preparation
  • Participation
  • Effort

Describe and use problem-solving techniques common to all programming languages

Prepares learners to problem-solve in programming and to work with others in production teams

Explain Programming Concepts and Program Development

  • Write and compile simple programs
  • Research program development processes and procedures
  • Self-Reporting of Knowledge and Skill
  • Development of ordered and readable code
  • Student learns programming concepts
  • Student demonstrates knowledge and proficiencies in C++

Encourage development of communication skills that promote effective work skills and idea development

Demonstrate terms, principles, and techniques used in computer programming

  • Assignment and Project Completion
  • Group discussions
  • Individual guidance
  • Participation
  • Self-Assessment
  • Technical proficiency

Students participate in individual and group-based assignments

Students self-evaluate their programming knowledge and technical proficiency

Course Outline

Topic And Date

Description of Content

Time
(In Contact Hours)

1

Getting Started; Working with Strings: A brief tour of C++, writing a simple program, comments, standard headers, scopes, string literals, character strings, #include, the main function, braces, output, standard libraries, the return statement, input, framing a name; language grammar and details (declarations, variables, types, expressions, statements, initialization); compatibility and technicalities; online resources; introduction to software and compiling

5%

2

Overview of Basic Facilities; Looping and Counting: Types and declarations; pointers, arrays, and control structures; expressions and statements; functions; namespaces and exceptions; source files and programs; overall structure and uses Writing an unknown number of rows, writing a row, the complete framing program, counting

10%

3

Working with Batches of Data; Organizing Programs and Data: Computing student grades, using medians instead of averages, organizing computations, organizing data, putting it all together, partitioning the grading program, the revised grading program

10%

4

Using Sequential Containers and Analyzing Strings: Separating students into categories, iterators, using iterators instead of indices, rethinking our data structure for better performance, the list type, taking strings apart, testing our split function, putting strings together

10%

5

Using Library Algorithms and Associative Containers: Analyzing strings, comparing grading schemes, classifying students, algorithms, containers, and iterators, containers that support efficient look-up, counting words, generating a cross-reference table, generating sentences, a note on performance

10%

6

Writing Generic Functions; Defining New Types: What is a generic function? Data-structure independence, input and output iterators, using iterators for flexibility; student_info revisited, class types, protection, the student_info class, constructors, using the student_info class;
Review and Midterm

10%

7

Managing Memory and Low-Level Data Structures: Pointers and arrays, string literals revisited, initializing arrays of character pointers, arguments to main, reading and writing files, three kinds of memory management

10%

8

Defining Abstract Data Types; Making Class Objects act like Values: The Vec class, implementing the Vec class, copy control, dynamic Vecs, flexible memory management; a simple string class, automatic conversions, Str operations, hazardous conversions, conversion operators, conversions and memory management

10%

9

Using Inheritance and Dynamic Binding: Inheritance, polymorphism and virtual functions, using inheritance to solve our problem, a simple handle class, using the handle class, subtleties

10%

10

Managing Memory Automatically: Handles that copy their objects, reference-counted handles, handles that let you decide when to share data, an improvement on controllable handles

10%

11

Revisiting Character Pictures; Future Directions: Design and implementation, abstractions, additional resources

10%

12

Final Projects Due; Classroom Critique and Discussion

5%

TOTAL

100%

Instructional Methods

Lectures and demonstrations, classroom discussions and critiques, programming assignments, handouts, presentations, and projects will assist in the critical analysis of different logical structures, principles, and techniques of programming.

Grading

Student performance will be based upon the following criteria:

Class Participation and Critiques: 10%
Class Assignments: 40%
Project #1: 10%
Midterm Project #2: 15%
Project #3: 10%
Final Project: 15%
100%

Library Assignment(s)

As assigned by the instructor. The written assignments will involve both library research and the use of reference material with proper documentation. Directions for the written assignments will be on file so that tutors may assist students; students requiring additional assistance should speak with the instructor at their earliest convenience. The CECybrary should also be used as a reference for all class papers and projects.

Portfolio Assignment

Program portfolios are a recommended and demonstrable means for assessing student competencies. Each student should select a project or paper from this course that best demonstrates his/her proficiencies with the material presented. Each student should then review and assess the chosen project or paper with the course instructor, revise it as needed, and add it to his/her program portfolio.

Attendance

Students are expected to perform as professionals in their respective fields, which includes reporting to work/class regularly, on time, and prepared to contribute.

  • Miss 10% of the scheduled hours for the course, receive a warning letter
  • Miss 20% of the scheduled hours for the course, student may be withdrawn and assigned the appropriate grade based on AIU grading policy. The instructor may consider extenuating circumstances.
  • Late arrivals (tardies) or early departures from classes will be counted, on a prorated basis, in course absences.
  • The university’s attendance portal does not differentiate between “excused” and “unexcused” absences. Students are encouraged to coordinate with faculty prior to missing any class period.
  • Students who stop attending class without officially withdrawing will be considered in violation of the attendance policy and will receive the appropriate grade, which may include a grade of “F.”
  • Students are responsible for any missed work when absent. In addition, the student is expected to be prepared for class upon his/her return.
  • At the discretion of the respective faculty member, class participation, not attendance, may be included in the course grade.
  • Students requesting a grade of Incomplete must follow the guidelines established in the College Catalog or the Student Handbook.

AIU Library Usage and research support

Students with valid AIU IDs are encouraged to use the Buckhead Campus Library to conduct research. The website to look for books in the AIU Library is http://arc.aiuniv.edu. The research database, GALILEO, may be accessed from two websites: http://www.galileo.peachnet.edu or http://www.galileo2.peachnet.edu. Passwords for access to GALILEO change periodically, but can be obtained from the Library at 404-965-5767.

Make-up work

To be determined by the faculty member.

Revision date

12/02 JSaulter

Personal tools