CSE 1342 Programming Concepts & ASIM/CRCP 3305 Creative Coding II
Fall 2017
Description
This course presents an introduction to C++ from a “creative coding” perspective. Course examples, programming exercises, assignments and exams will incorporate computer graphics and the openFrameworks library.
Information
Lecture: Section 803C - Monday && Wednesday 2:00PM ~ 3:20PM Section 806C - Monday && Wednesday 3:30PM ~ 4:50PM
Location: Owen Fine Arts Center, Center of Creative Computation (OFAC 1190) in Meadows School of the Arts
Lab:
- Section 803C - Time: Wednesday 4:00PM ~ 5:50PM, Location: OFAC 1030
- Section 806C - Time: Wednesday 6:30PM ~ 8:20PM, Location: OFAC 1190
Recommended TextBooks: C++ Primer Plus, 6th Edition (Amazon) and Mastering openFrameworks: Creative Coding Demystified (Amazon)
Software: xCode (for MacOS Download); Visual Studio (for Windows Download); QtCreator (for Linux Download)
Library: openFrameworks (Download)
Course Co-requisites: Each student must also be enrolled one of our lab sections in Creative Center.
Online learning resource links: LearnCpp.com; cplusplus.com; openFrameworks Documentation
Instructors
Lecturer: Zizhen Chen
Nickname: Z Webname: DragonZ
Email: zizhenc@smu.edu Home Page: http://lyle.smu.edu/~zizhenc
Office Hours: Wednesday 4:00PM ~ 8:00PM By Appointment Location: 308 Caruth Hall
Teacher Assistant
Name: Stejara Dinulescu Email: sdinulescu@smu.edu Section: 806C
Office Hours: By Appointment
Topics | Assignments / Quizzes / Exams | |
---|---|---|
WEEK 1 |
Day 1 - CSE 1342 Overview; History of Programming; Introducgtion to C++ Programming Day 2 - Recall Programming Concepts learnt from Java/Processing; C++ vs. Java/Processing |
Lab 0 |
WEEK 2 |
Day 3 - Primitive data types; Integral types; Initialization and Assignment Day 4 - Console I/O; Namespace and standard library (std) |
Lab 1 |
WEEK 3 |
Day 5 - Classes, Obects and Strings; ASCII code and escaping characters Day 6 - Introduction to openFrameworks Library; RGB Color System; Basic 2D Shapes |
Quiz 1 Lab 2 |
WEEK 4 |
Day 7 - Branch statements and Logical Operators; Loop statements Day 8 - Functions and Stack Data Structure; Modular Coding; Recursion Concept |
Lab 3 |
WEEK 5 |
Day 9 - Class Templates, Array and Vector; Catching Exceptions Day 10 - Coordinates Translation; 2D Rotation; Stack Data Structure and Graphic Coding Application |
Quiz 2 Lab 4 |
WEEK 6 | Day 11&&12 - Pointers and Dynamic Memory Allocation | Lab 5 |
WEEK 7 | Day 13&&14 - Basic Data Structures (implementation and comparison): ArrayList, LinkedList, Stack and Queue | Midterm Exam |
WEEK 8 | Day 15&&16 - Advanced Class Definition Part I: Constructors, Desctructors, Copy Constructors | Lab 6 |
WEEK 9 | Day 17&&18 - Advanced Class Definition Part II: Operator Overloading |
Quiz 3 Lab 7 |
WEEK 10 |
Day 19 - Advanced Class Definition Part III: Move Semantics Day 20 - The "rule of three/five/zero" in Class Definition |
Lab 8 |
WEEK 11 |
Day 21 - Object-oriented Programming: Inheritance and Polymorphism Day 22 - Particle Engine |
Quiz 4 Lab 9 |
WEEK 12 |
Day 23 - File Processing Day 24 - Polymorphism and I/O stream |
Lab 10 |
WEEK 13 |
Day 25 - UML Class Diagram Day 26 - Standard Library Containers and Iterators |
Quiz 5 Final Exam (Project) |
WEEK 14 | Day 27&&28 - Standard Library Containers Application and Algorithms | Final Exam (Project) |
Requirements and Presentation
This course will include readings, programming assignments, quizzes, presentations and critiques. Plan a minimum of three hours of outside preparation for each hour of class. The due date for all assigned materials will be announced in advance. It is the student's responsibility to have all assignments ready on time. Any student who has to be absent on an assignment due date must arrange to have the assignment submitted early. In addition, it is the student's responsibility to make up any missed work or locate lecture notes due to absence.
Quizzes: There will be a quiz every two weeks. Before midterm exam, every quizzes are closed book, closed notes and any electronic devices are not allowed. After midterm exam, only a cheat sheet (size: half of A4 paper) is allowed. Make-up quizzes are only given in the event of a pre-notified excused absence. The time of completing a quiz is limited in one hour. The lowest quiz grade of the semester will be dropped.
Labs: Each student must also be enrolled in one of our lab sections in Creative Center (NOT the CSE 1342 labs of lyle school of Engineering). Lab sections will be used to complete lab assignment under tutoring of teacher assistant or take quiz. The completed lab assignment should be to be uploaded to corresponding Canvas assignment in the format of compressed zip file of your whole project folder. Deadline extension is only given in the event of a pre-notifide excused absence. The lowest lab grade of the semester will be dropped.
Exams: Exams include a traditional paper-based midterm exam and a freestyle game developing final project. Midterm exam will be closed book, closed notes and any electronic devices are not allowed. The time of completing a quiz is limited in two hours. Final project is a comprehensive project, each student can find at most one partner to complete together. We will also have a final presentation to present your final project. After presentation, we will have a vote section to determine a winner who will get a bonus of 20 points in his/her final project grade.
Lectures will introduce the C++ language along with project concepts and specifications. This course is NOT designed as a traditional "sage on the stage" lecture. Class time will be used to discuss concepts and project issues, work collaboratively and to ask questions. Students need to come to class prepared to use this time effectively. Being unprepared is equivalent to an absence.
Evaluation
There will be programming assignments, "pop" quizzes based on the readings, mid-term exam and a final critique. Attendance and Proactive participation in class and lab is also expected. Points will be awarded as described below.
Total: 100 points Programming Assignments = 30 points Quizzes = 30 points Exams = 30 points (Midterm and Final) Attendance and Participation = 10 points Final grades are determined as follows: * 95 - 100: A * 90 - 94: A- * 86 - 89: B+ * 83 - 85: B * 80 - 82: B- * 76 - 79: C+ * 73 - 75: C * 70 - 72: C- * 66 - 69: D+ * 60 - 65: D * 0 - 60: F
Attendance Policy
Students are expected to attend all class lectures. If a student is absent from class on the due date of any assignment, they are expected to make alternative arrangements to assure that the assignment is turned in on time.
Academic Honesty and Misconduct - The Honor Code
All Code you create in this course MUST be your own, or clearly stated otherwise - NO EXCEPTIONS. All work undertaken and submitted in the course is governed by the University′s Honor Code. The relevant section of the Code, taken from the Preamble of the Honor Council&primes Constitution:
Integrity and academic honesty are fundamental to the processes of learning and of evaluating academic performance, and maintaining them is the responsibility of all members of an educational institution. High personal standards of honesty and integrity are a goal of education in all the disciplines of the University. Students must share the responsibility for creating and maintaining an atmosphere of honesty and integrity. Students should be aware that personal experience in completing assigned work is essential to learning. Permitting others to prepare their work, using published or unpublished summaries as a substitute for studying required materials, or giving or receiving unauthorized assistance in the preparation of work to be submitted are directly contrary to the honest process of learning. Students who are aware that others in a course are cheating or otherwise acting dishonestly have the responsibility to inform the professor and/or bring an accusation to the Honor Council.A violation of the Honor Code may result in a F for the course, and the student may be taken before the Honor Council. If you are unclear about this policy, either in general or in its specific application, please see the instructor. The Honor Code is in the SMU Student handbook and may be viewed on-line at: SMU Honor Code
* Disability Accommodations: Students needing academic accommodations for a disability must first contact Disability Accommodations & Success Strategies (DASS) at 214-768-1470 or visit SMU DASS website to verify the disability and to establish eligibility for accommodations. They should then schedule an appointment with the professor to make appropriate arrangements. (See University Policy No. 2.4; an attachment describes the DASS procedures and relocated office.)
* Religious Observance: Religiously observant students wishing to be absent on holidays that require missing class should notify their professors in writing at the beginning of the semester, and should discuss with them, in advance, acceptable ways of making up any work missed because of the absence. (See University Policy No. 1.9.)
* Excused Absences for University Extracurricular Activities: Students participating in an officially sanctioned, scheduled University extracurricular activity should be given the opportunity to make up class assignments or other graded assignments missed as a result of their participation. It is the responsibility of the student to make arrangements with the instructor prior to any missed scheduled examination or other missed assignment for making up the work. (University Undergraduate Catalogue)
ABET ACCREDITATION
ABET Student Outcomes for Computer Science:
- An ability to apply knowledge of computing and mathematics appropriate to the discipline.
- An ability to analyze a problem, and identify and define the computing requirements appropriate to its solution.
- An ability to analyze the local and global impact of computing on individuals, organizations, and society.
- An ability to use current techniques, skills, and tools necessary for computing practice.
- An ability to apply design and development principles in the construction of software systems of varying complexity.
ABET Student Outcomes for Computer Engineering:
- An ability to identify, formulate, and solve engineering problems.
- An ability to communicate effectively.
- The broad education necessary to understand the impact of engineering solutions in a global, economic, environmental, and societal context.
- An ability to use the techniques, skills, and modern engineering tools necessary for engineering practice.