CSC 123 Course Syllabus
CSC 123 A introduction of python through interactive game creation
Section 001 Fall 20xx 3 Credit Hours
Course Description
Learning to program in python through creating games. Python is a popular programming language in the modern world, it is used in software engineering, data analytics, web development, and a lot of other fields. This class introduces this language in a “teaching through programming” manner. No prior programming knowledge is required, students will be guided through the process in mini-steps. Most seats are reserved for Computer Science majors.
Learning Outcomes
Students would learn basic programming knowledge through creating their own game in class. By the end of this semester, they should understand:
-
the syntax of python,
-
loops (while and for),
-
conditions (if/else),
-
simple data structures (list, dictionary, set, tuple),
-
function and class;
-
be able to program their own 2D-RPG video game using learned knowledge.
Course Structure
The class lecture would be hosted in a computer lab, students are required to attend lectures and complete programming tasks during class hours.
Course Policies
The use of Communications Devices during class is strongly discouraged, students could ask the instructor and use them outside of the classroom if it is absolutely necessary.
Instructors
Yunkai Xiao (yxiao28) - Instructor
Email: yxiao28@ncsu.edu
Office Location: EB2 2216(c)
Office Hour: M W 11:00 am - 12:00 pm
John Smith - Teaching Assistant
Email: jsmith111@ncsu.edu
Office Location: EB2 2147(f)
Office Hour: T TR 12:00 - 1:00 pm
Course Meetings
Lecture
Days: MW
Time: 12:50pm - 2:05pm
Campus: Centennial
Location: TBD
Course Materials
Invent Your Own Computer Games with Python - Al Sweigart
Edition: 4th
ISBN: 978-1593277956
Web Link: https://www.amazon.com/Invent-Your-Computer-Games-Python/dp/1593277954
Cost: 20.36
This textbook is optional.
Think Python: How to Think Like a Computer Scientist - Allen B. Downey
Edition: 2nd
ISBN: 978-1491939369
Web Link: https://www.amazon.com/Think-Python-Like-Computer-Scientist-dp-1491939362/dp/1491939362/ref=mt_paperback?_encoding=UTF8&me=&qid=
Cost: 30.42
This textbook is optional.
Expenses
Web-assign access - $40
This expense is required.
Requisites and Restrictions
Prerequisites: None.
Restrictions: None.
Grading
Grade Components
Component | Weight Details % |
---|---|
Homework
(Written or programming homework tracked on WebAssign) | 15% |
Participation
(Measured with in-class quizzes) | 10% |
Mid-term Exam | 30% |
Final Exam | 30% |
Final Project | 15% |
Letter Grades
This Course uses Standard NCSU Letter Grading:
97 | ≤ | A+ | ≤ | 100 |
93 | ≤ | A | < | 97 |
90 | ≤ | A- | < | 93 |
87 | ≤ | B+ | < | 90 |
83 | ≤ | B | < | 87 |
80 | ≤ | B- | < | 83 |
77 | ≤ | C+ | < | 80 |
73 | ≤ | C | < | 77 |
70 | ≤ | C- | < | 73 |
67 | ≤ | D+ | < | 70 |
63 | ≤ | D | < | 67 |
60 | ≤ | D- | < | 63 |
0 | ≤ | F | < | 60 |
Requirements for Auditors (AU)
Per departmental policy, you cannot audit a CSC class.
Late Assignments
For each assignment submitted late within 3 days, there is a 10% penalty; within 7 days (11:59 pm), there is a 20% penalty. We do not accept late submissions for over a week.
Attendance Policy
For complete attendance and excused absence policies, please see http://policies.ncsu.edu/regulation/reg-02-20-03
Absences Policy
Students could have one Excused/Unexcused absence, due to the schedule and format of this class, missing too many sessions would hinder understanding of the class content
Makeup Work Policy
Any student can retake ONE exam at the end of the semester.
Academic Integrity
Academic Integrity
Students are required to comply with the university policy on academic integrity found in the Code of Student Conduct found at http://policies.ncsu.edu/policy/pol-11-35-01
Academic Honesty
See http://policies.ncsu.edu/policy/pol-11-35-01 for a detailed explanation of academic honesty.
Honor Pledge
Your signature on any test or assignment indicates "I have neither given nor received unauthorized aid on this test or assignment."
Electronically-Hosted Course Components
Students may be required to disclose personally identifiable information to other students in the course, via electronic tools like email or web-postings, were relevant to the course. Examples include online discussions of class topics and posting of student coursework. All students are expected to respect the privacy of each other by not sharing or using such information outside the course.
Electronically-hosted Components: Students would be able to play games or characters created by other students in class projects, as a method of validating each other’s work. No information will be disclosed outside of the classroom.
Accommodations for Disabilities
Reasonable accommodations will be made for students with verifiable disabilities. In order to take advantage of available accommodations, students must register with the Disability Resource Office at Suite 304, University College Commons, Campus Box 7509, 919-515-7653. For more information on NC State’s policy on working with students with disabilities, please see the Academic Accommodations for Students with Disabilities Regulation (REG02.20.01) (https://policies.ncsu.edu/regulation/reg-02-20-01/).
Non-Discrimination Policy
NC State University provides equality of opportunity in education and employment for all students and employees. Accordingly, NC State affirms its commitment to maintaining a work environment for all employees and an academic environment for all students that is free from all forms of discrimination. Discrimination based on race, color, religion, creed, sex, national origin, age, disability, veteran status, or sexual orientation is a violation of state and federal law and/or NC State University policy and will not be tolerated. Harassment of any person (either in the form of quid pro quo or creation of a hostile environment) based on race, color, religion, creed, sex, national origin, age, disability, veteran status, or sexual orientation also is a violation of state and federal law and/or NC State University policy and will not be tolerated. Retaliation against any person who complains about discrimination is also prohibited. NC State's policies and regulations covering discrimination, harassment, and retaliation may be accessed at http://policies.ncsu.edu/policy/pol-04-25-05 or http://www.ncsu.edu/equal_op/. Any person who feels that he or she has been the subject of prohibited discrimination, harassment, or retaliation should contact the Office for Equal Opportunity (OEO) at 919-515-3148.
Course Schedule
NOTE: The course schedule is subject to change.
Weeks | Learning Objectives | Homework |
---|---|---|
Introduction
08/20/2018 - 08/24/2018 | Basic knowledge of Python 3
Pycharm IDE introduction | Download software and install on own computer
Visit the game platform we're going to be working on through the semester. |
Keywords and basic syntax
08/27/2018 - 08/31/2018 | Understanding what's keywords and memorizing the list of reserved keywords, could tell whether a word is a keyword by the end.
Understand what's a variable, and a function, be able to explain them, and use a simple function like print. | None |
Loop
09/03/2018 - 09/14/2018 | Practice loop in the form of for and while.
Understand what's a code block, how much indentation is needed for a code block, using code block to segment code. Able to use it in the in-class mini-project.
Able to set the correct stop conditions for different types of while loop.
Able to implement "break" in code. | Start programming the rock-paper-scissors game. |
Conditions
09/18/2018 - 09/21/2018 | Able to implement switches with if/elif/else
Able to implement nested code blocks | Used knowledge learned to complete the rock paper scissors game. |
List
09/24/2018 - 09/28/2018 | Understand what is a list, examples of where to use it.
Able to create an empty list, add, remove, and modify items in a list.
Code to implement looping through the list. | Program blackjack game. |
Dictionary
10/01/2018 - 10/05/2018 | Understand what is a dictionary, examples of where to use it.
Understand what is key and value.
Able to create an empty dictionary, add, remove, and modify items through keys in the dictionary.
Able to calculate space taken in memory and how dictionaries expand. | None |
Tuple, set, and other structures
10/08/2018 - 10/12/2018 | Understand what is a tuple and set, examples of where to use them.
Able to program to deduplicate a list, a dictionary with a set. | None |
Review for mid-term
10/15/2018 - 10/19/2018 | Recap for things taught in previous classes | None |
Functions
10/22/2018 - 10/26/2018 | Understand how functions perform tasks, what's input and output.
Introducing the RPG game schema. | Able to program in the RPG game how a character reacts to damages.
Able to program in the RPG game how a character moves. |
Class and Object
10/29/2018 - 11/09/2018 | Could tell the difference between a Class and an Object.
Program the bullet class. | Program the space invader game. |
Final Project
11/12/2018 - 11/23/2018 | The final project of the RPG game, able to program character,
tasks
and a storyline. | The RPG game |
Review for final exam 11/26/2018 - 11/30/2018 | Recap for what's taught in the semester. | None |