CSCI 2254 Web App Development

Spring 2017

Instructor R. Muller


Syllabus

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.

Course Goals

The main goal of the course is to help you master web development.

Basic Information

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.

Course Web Site

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.

Staff

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

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.

Tentative Course Outline

WkofTopic
11/15Introduction and Overview; GitHub
21/22HTML & Markdown; CSS; Basic JavaScript
31/29JavaScript; The Document Object Model (DOM)
42/5JavaScript; JSON
52/12First Midterm Exam
62/19Web Servers; Node.js
72/26MongoDB
3/5SPRING BREAK
83/12Information Flow, React
93/19React; Single Page Applications
103/26Vue, Second Midterm Exam
114/2SQL
124/9Web APIs; Google Maps
134/16Input & Validation
144/21Project Presentations
154/28Project Presentations

Exams

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.

Midterms

Final Exam: TBA.

Reading

Students are expected to read the accompanying text. Code and notes will be posted as appropriate.

Grading

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:

  1. 8 problem sets and a course project, in total these account for 100 points;
  2. two midterm exams, each for 20 points;
  3. a final exam, 40 points;
  4. class and piazza forum participation, together, these account for the remaining 20 points.

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.

Late Homework Policy

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.

Honor Code

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.