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:

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.eduHome 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.eduSection: 806C

Office Hours: By Appointment

Weekly Schedule of Topics and Cooresponding Assignments / Quizzes / Exams (Plan)
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:

  1. An ability to apply knowledge of computing and mathematics appropriate to the discipline.
  2. An ability to analyze a problem, and identify and define the computing requirements appropriate to its solution.
  3. An ability to analyze the local and global impact of computing on individuals, organizations, and society.
  4. An ability to use current techniques, skills, and tools necessary for computing practice.
  5. An ability to apply design and development principles in the construction of software systems of varying complexity.

ABET Student Outcomes for Computer Engineering:

  1. An ability to identify, formulate, and solve engineering problems.
  2. An ability to communicate effectively.
  3. The broad education necessary to understand the impact of engineering solutions in a global, economic, environmental, and societal context.
  4. An ability to use the techniques, skills, and modern engineering tools necessary for engineering practice.