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 |
---|---|---|