Welcome to CSCI 2254 Web App Development. This course covers web application development. You'll learn HTML, CSS and JavaScript as well as a number of tools and frameworks such as Node, React and Vue.
The main goal of the course is to help you master web development.
CSCI 2254 has three 50-minute lectures each week. Lectures will be held on Mondays, Wednesdays and Fridays at noon in Fulton Hall 415. Attendance at the lectures is important, as all new material will be presented there. NB: Laptops are not allowed in lecture. If you have special circumstances that require you to bring one, please see me.
Please bookmark the course homepage:
http://www.cs.bc.edu/~muller/teaching/cs2254/s17/
We'll use this site fairly heavily throughout the semester and some of the course materials will be distributed through this site. Problem sets will be posted on GitHub and will be submitted via GitHub repositories. If you don't already have a GitHub account, please make one. Note that we will not have a course homepage on Canvas but we will post grades on the Canvas gradebook.
Instructor: Robert Muller robert dot muller at bc dot edu office: St. Mary's Hall Rm S277 hours: Mondays 3PM - 4:30PM, Tuesdays 10AM - 11:30AM 617-552-3964.
Teaching Assistant: Shaan Bijwadia bijwadia at bc dot edu office: Fulton 160 hours: R 4PM - 6PM, F 3PM - 4PM.
Teaching Assistant: Ben Keene at bc dot edu office: Fulton 160 hours: M 8PM - 10PM, R 10PM - midnight.
Problem sets will be assigned weekly. Unless otherwise specified, all problem sets are due at 11:59PM on the specified due date. The single best indicator of success for computer science is starting problem sets early.
Problem sets should be submitted for grading by uploading an appropriately named zip file through the course Canvas web site. (As linked from the course home page.) Problem sets cannot be submitted as email attachments. Attempts to submit problem sets as email attachments will not receive an email reply indicating that the attempted submission failed.
Wk | of | Topic | |
---|---|---|---|
1 | 1/15 | Introduction and Overview; GitHub | |
2 | 1/22 | HTML & Markdown; CSS; Basic JavaScript | |
3 | 1/29 | JavaScript; The Document Object Model (DOM) | |
4 | 2/5 | JavaScript; JSON | |
5 | 2/12 | First Midterm Exam | |
6 | 2/19 | Web Servers; Node.js | |
7 | 2/26 | MongoDB | |
3/5 | SPRING BREAK | ||
8 | 3/12 | Information Flow, React | |
9 | 3/19 | React; Single Page Applications | |
10 | 3/26 | Vue, Second Midterm Exam | |
11 | 4/2 | SQL | |
12 | 4/9 | Web APIs; Google Maps | |
13 | 4/16 | Input & Validation | |
14 | 4/21 | Project Presentations | |
15 | 4/28 | Project Presentations |
There will be two midterm exams and a final exam. The exams are in-class and are closed notes and closed book. You will have 50 minutes to complete each midterm, and 2 hours to complete the final. If you require extra time for documented reasons, please let us know.
Final Exam: TBA.
Students are expected to read the accompanying text. Code and notes will be posted as appropriate.
The course is graded on a 200 point scale. You are granted 10 points gratis. Your grade for this class will be a combination of your homework, exam, and participation work. Participation is largely based on effort (not correctness). Final grades will be computed, roughly as follows:
Your lowest problem set score will be replaced by the average of all 8 problem set scores.
Important! If you fail one of 1. - 3., you will fail CSCI 2254, even if your weighted-average scores are mathematically above the passing threshold.
Problem sets are due on the day indicated at 11:59PM. This is a strict deadline. Homework submitted at 5:01PM is one day late as is homework submitted 23:59 late. Late homework is penalized 20% per 24-hour period. In the case of medical exigencies, students may petition the the Instructor for an extension. Medical problems or family emergencies are the only conditions under which extensions will be granted.
All solutions and code should be produced by you alone, or by you and a partner, where appropriate. For pair-programmed assignments, each partner needs to submit the assignment and each needs to acknowledge the other partner when submitting.
You may discuss algorithms at a high level with any student in the class. You may also help any student find a small bug in their code. However, you may not copy solutions from anyone, nor should you collaborate beyond high-level discussions with anyone who is not your partner. For pair programming problems, you must follow the guidelines given above.
If you have any questions about what behavior is acceptable, it is your responsibility to come see one of the instructors before you engage in this behavior. We are more than happy to answer any questions you may have.