Course Syllabus

Overview

This course is a mishmash of lots of topics. The primary goal is for you to develop the skills for building useful software. "Building useful software" is a ridiculously wide umbrella, so we will necessarily look at a narrow slice of topics.

Organizational Details

Instructor Benjamin Ylvisaker
Paraprof Colter Fatt
Textbook JavaScript: The Definitive Guide. 6th Edition by David Flanagan
Class Meetings M-F 9:00 - Noon in Tutt Science Lecture Hall
Office Hours M-Th 2-4

Grading

Your score in App Design will be computed according to the following table, with an important asterisk described below.

Honor Assignment 1 15%
Honor Assignment 2 15%
Daily Quizzes 25%
Final Exam 25%
Project 20%

There will also be daily programming exercises that will not be graded in the conventional way. You are welcome to work with other students on daily exercises. They will be scored on a simple scale:

  • 0 - Not submitted or little evidence of good work
  • 5 - Reasonable start, but missing at least one important piece
  • 8 - Good, but not quite done
  • 10 - Close enough for government work

Your daily exercise point total at the end of the block will determine how many of your lowest quiz scores will be dropped from your course score. At most 4 quiz scores will be dropped from your final tally; the number of dropped quizzes is scaled down based on your daily exercise scores. Daily exercises submitted late will automatically receive a zero. Topics move by quickly under the block schedule and it is very important for you to keep up.


Policies

Attendance

Attendance is measured indirectly by quiz scores. If you cannot attend class on a particular day and you want to take that day's quiz, you must let the instructor know in advance. If you anticipate missing more than one day during the block, you must discuss the circumstances with an instructor within the first few days. Similarly, if you anticipate being unable to meet any deadline during the class and you discuss the circumstances beforehand with the instructors, we will do our best to work something out.

You should turn off any distraction devices (phones, etc.) during class. If are texting or listening to voice mails during class, you will probably be asked to leave for the remainder of the session. If you need to receive an urgent message of some sort, make sure you inform the instructor before class.

Daily Exercises

Most days during the block you will receive a daily exercise that you will be expected to work on that day. To receive credit for completing a daily exercise, you must submit your solution code via Canvas before class starts the following day.

While working on daily exercises, you may use any resource that you want, including conversation with your classmates and searching the internet. We strongly encourage you to put in solo time working on the training wheels exercises, because:

  • It is super easy to convince yourself you know how to program by watching other people do it. Actually doing it is a different matter, and it's unlikely that you will pass the class if you don't exercise your programming skills.
  • Struggling through these exercises is one of the best uses of your time for mastering the knowledge and skills of the course.
  • … and the better you learn the skills, the higher your scores will be on the honor assignments and tests.

Honor Assignments

At the end of each week you will receive an honor assignment that is due before class starts the following Monday. In order to receive credit, your work on honor assignments must be 100% entirely your own. The only resources that you are permitted to use are the textbook, course notes and conversation with course staff (unless otherwise indicated on the assingment itself). If course staff observe you sitting next to a classmate working on an honor assignment together, you will both receive zero credit for that assignment; no questions asked. Misrepresenting someone else's work as your own (or allowing someone else to misrepresent your work as theirs) is a serious honor code violation. The instructors have no patience for this, and will pursue the strongest consequences made available by the college.

We will evaluate your honor assignment solutions for good coding style and design. We will not accept solutions after the end of the block.

Disability Accommodations

If you have a disability and require accommodations for this course, please speak with the instructors privately as soon as possible so that your needs may be appropriately met. If you have not already done so, you will need to register with Accessibility Resources (Learning Commons at Tutt Library, Room 152, 719-227-8285), the office responsible for coordinating accommodations and services for students with disabilities. You must present a letter from Accessibility Resources to get any disability accommodations in this class.


Schedule

Day Date Topic Reading Other
M 4-20 HTML/CSS; JS Basics 1; VM Installation 13.1-3.2, 15.1-4.1, 16.1-2 w1d1.zip
Tu 4-21 JS Basics 2; NIX Basics 1 1 (ref), 2 (ref), 3.1-3.5, 4.1-4.5; Unix Survival w1d2.zip
W 4-22 JS Basics 3; NIX Basics 2 5.1-5, 6.1-5, 7.1-7; Unix Settling w1d3.zip
Th 4-23 Regular expressions 8.1-4, 10 w1d4.zip
F 4-24 Images/Audio/Video 21.1-3 w1d5.zip
Day Date Topic Reading Other
M 4-27 Command-line JavaScript; Version control Dionisio and Toal notes w2d1.zip
Tu 4-28 Event handling 17.1-17.5
W 4-29 Server-side JavaScript 12
Th 4-30 JSON, Database intro 22.6-8
F 5-1 More database
Day Date Topic Reading Other
M 5-4 Server, Make tmux
Tu 5-5 Networking 1 18
W 5-6 Networking 2, Testing
Th 5-7 Modules and Classes 9
F 5-8 Teams code review
Day Date Topic Reading Other
M 5-11 Legal ?
Tu 5-12 Final Exam N/A
W 5-13 Presentations and code review N/A

Course Summary:

Date Details Due