Description
This course covers advanced programming techniques that span a range of programming languages and technologies. Topics include server-side web development (Node.js), client-side graphic programming (p5.js), programming for data visualization (chart.js, d3.js), design patterns, model-based development, and multithreading. Prerequisite: CSE 3345 or consent of instructor.
Information
Lecture: Tuesday && Thursday 5:00PM ~ 6:20PM
Location: Junkins Building 0205
Recommended TextBooks:
- Processing: A Programming Handbook for Visual Designers and Artists (Amazon)
- JavaScript for Kids: A Playful Introduction to Programming (Amazon)
- Getting Started with p5.js: Making Interactive Graphics in JavaScript and Processing (Amazon)
- Node.js Design Patterns 2nd Edition (Amazon)
Online Resources:
Instructor: Zizhen Chen
- Personal Website: https://lyle.smu.edu/~zizhenc/
- Office Hours: 3:00PM ~ 5:00PM or by appointment
- Office Location: Room 308 Caruth Hall
- Email: zizhenc@smu.edu
| TIME | TOPIC |
|---|---|
| WEEK 1 |
Day 1 - CSE 7345/5345 Overview; History of Programming; Environment Discussion Day 2 - Programming language classification |
| WEEK 2 |
Day 3 - Simple Graphic Coding Day 4 - GUI vs. Graphic Coding |
| WEEK 3 |
Day 5 - Refine UI Design Day 6 - Move to Web Development |
| WEEK 4 |
Day 7- Simple Graphic Coding on the Web Day 8 - Introduction to Server-side Development |
| WEEK 5 |
Day 9 - Simple Visualization of Charts on Web Day 10 - Simple Map Application on Web Part 1 |
| WEEK 6 |
Day 11 - Simple Map Application on Web Part 2 Day 12 - Data Driven JS Library: d3.js |
| WEEK 7 |
Day 13 - Midterm Review Day 14 - Midterm Exam |
| WEEK 8 |
Day 15 - Introduction to Statistical Language R Day 16 - Statistical Computing and Graphics |
| WEEK 9 |
Day 17 - Simple Data Mining Problem Day 18 - Introduction to Mathematical Language AMPL |
| WEEK 10 |
Day 19 - Simple Social Network Problem Day 20 - Python vs. Others |
| WEEK 11 |
Day 21 - Design Patterns and Software Development Philosophies Day 22 - Final Project Topics |
| WEEK 12 |
Day 23 - Final Project Day 24 - Final Presentation |
Requirements and Presentation
This course will include readings, programming assignments, exam, 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.
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 midterm exam 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 which is counted as partial credit of your final project.
Lectures will introduce multiple programming languages and platforms. Each semester will have different content to catch up the rapid growing technologies. 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, mid-term exam and a final critique. Attendance and Proactive participation in class is also expected. Points will be awarded as described below.
Total: 100 points
Programming Assignments = 40 points
Midterm Exam = 20 points
Final Project = 20 points
Final Project Presentation = 10 points
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.