Course Package Form 2018 Outline
Mohave Community College
CIS 200 Programming and Game Development with Python


Originator: Butcher, Matt           Status: Approved           Department: CIS Computer Information Systems
Date Created: 02/21/2017         Submitted: 03/10/2017         Completed: 09/12/2017        
Effective Semester: Fall  
Catalog Year: 2018-19  
Course Prefix: CIS  
Course Number: 200  
Course Full Title: Programming and Game Development with Python  
Old course information: Programming and Game Development with Visual Basic  
Reason for Evaluation: Course Title Change   Prerequisite Change   Description Change   Goals, Competencies and/or Objectives Change    
Current Credit: 3  
Lecture Hours: 3  
Lab Hours: 0  
Clinical Hours: 0  
New Credit Hours: 0  
Lecture Hours: 0  
If the credit hour change box has been marked, please provide the new credit hour:  
New Lecture Hours:  
New Lab Hours:  
New Clinical Hours:  
New Internship Hours:  
New Externship Hours:  
SUN Course?: No  
AGEC Course?: No  
Articulated?: Yes  
Transfer: ASU   NAU   UA    
Prerequisite(s): Completion of CIS 120 with a 'C' or higher.  
Corequisite(s): N/A  
Catalog Course Description: Presents programming and game development concepts using the Python programming language.  
Course Learning Outcomes: 1. Develop basic software and gaming applications with the Python programming language (1,2,3,6).
2. Assemble selection and repetition structures available in Python relevant to game design (3,5,6).
3. Design Python applications that utilize numerical, character, and logical data types as variables and data structures(3,6).
4. Author software supportive documentation describing the usage of Python applications (2,6).  
Course Competencies: Competency 1 Implement memory usage and standard I/O processes in game program development.
Objective 1.1 Define Python terms and conditions when entering program code.
Objective 1.2 Utilize memory allocation in basic code operations.
Objective 1.3 Implement standard Input/Output processes.

Competency 2 Incorporate primitive data types into Python programs.
Objective 2.1 Employ numeric variables.
Objective 2.2 Utilize standard binary arithmetic and shortcut arithmetic operators.
Objective 2.3 Format floating-point values and named constants.
Objective 2.3 Employ pseudo-random numbers in game design.

Competency 3 Build basic data structures.
Objective 3.1 Initialize lists to use subscripts in accessing array elements.
Objective 3.2 Employ the Sort() and Reverse() methods when altering element locations within a list.
Objective 3.3 Develop reiterative algorithms to efficiently sort and search a data structure.
Objective 3.4 Define how data structures improve game design in Python.

Competency 4 Create functions in Python program development.
Objective 4.1 Utilize parameter passing to receive arguments.
Objective 4.2 Employ return statements to send information out of functions.
Objective 4.3 Demonstrate how effective usage of functions increases the elegance of an application.

Competency 5 Build object references in application design.
Objective 5.1 Access referenced values in Python.
Objective 5.2 Utilize parameter passing in altering argument values and increase algorithm efficiency.
Objective 5.3 Differentiate between parameter passing strategies in Python and other programming languages.

Competency 6 Create new object types in program design.
Objective 6.1 Declare class data members and member functions.
Objective 6.2 Design class constructors and destructors.
Objective 6.3 Instantiate objects from classes.
Objective 6.4 Set member access levels.
Objective 6.5 Declare static data members and member functions.

Competency 7 Incorporate Pygame functionality in game program development.
Objective 7.1 Combine objects with friend functions.
Objective 7.2 Apply functionality to dynamically allocate and free memory.
Objective 7.3 Utilize colors, sounds, and images in game development.
Objective 7.4 Employ code that avoids memory leaks.

Competency 8 Construct Python code that leverages Object Oriented Programming (OOP) concepts including inheritance and polymorphism.
Objective 8.1 Utilize OOP design to derive one class from one another.
Objective 8.2 Utilize inherited data members and member functions.
Objective 8.3 Employ override functionality to base class members.
Objective 8.4 Define virtual functions to enable polymorphism.