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. |