- Course Title: Applied Internet Technology
- Course Number: CSCI-UA.0480-008
- Semester: Spring 2018
- Meeting Time: Mondays and Wednesdays, 11:00AM - 12:15PM
- Room: WWH 109
- Instructor: Joe Versoza
- Contact: piazza (the best way to contact me!)
- Email: jversoza at cs dot nyu dot edu
- Office Hours:
12:45 - 2:15pm on Mondays and Tuesdays at WWH - Office Hours Room: WWH 422
This course is a practical introduction to creating modern web applications.
It will cover full stack web development - from database design all the way through client side interactivity. Students will use current server and client side web frameworks to build dynamic, data-driven sites. Various tools to support development will also be introduced, such as version control and build systems.
* Basic knowledge of HTML and CSS and familiarity with using command line tools are required.
- JavaScript
- Server Side Programming (with Node and Express)
- Storing and Retrieving Data (with a NoSQL database, such as MongoDB)
- Client Side Build-Out
- Client Side Programming (both with vanilla JavaScript and using a JavaScript framework)
- Realtime Web Applications (socket.io)
- Development Tools (version control with git, task automation, static analysis tools, etc.)
- Extra Topics Time Permitting (JS Framework like React, Intermediate CSS features like Flexbox, etc.)
Expect about one quiz every week, which can be in one of the following formats:
- Take from home quizzes
- Submitted electronically via NYU Classes
- Quizzes will be closed at the due date given
- Quizzes are to be taken on your own
- In-class quizzes
- Dates for in-class quizzes will be posted one week before quiz is given
- Will be based on homework
- Will be given at the beginning of class
- Make ups will be allowed for the following exceptions:
- illness, with documentation
- religious observance
- technical issues (NYU Classes down, Quiz not Appearing, etc.), with documentation
Expect about one homework every week, with one final project assigned mid-semester:
- Homework must be turned in electronically via git
- Late homework will not be accepted (repositories are closed when homework is due)
- Exceptions:
- illness or family/personal issue, with documentation
- religious observance
- technical issues (broken computer, github down, etc.), with documentation
- Notification of illness / accommodation must be made before due date
- Long term accommodations (for example, extra time on exams, etc.) must be made known prior to the first exam
- Exceptions:
- Write your own code! This means:
- Don't copy (clone, download, etc.) anyone else's code
- Don't distribute/publish your code (including publishing to a public git repository or posting in a forum)
- (You can publish your final project once the class is over)
- The Director of Undergraduate Studies will handle any instances of cheating or software plagiarism
- Help!
- Office hours and tutoring is available
- If you use code from online resources outside of the course materials, annotate your code with comments and the link to the resource
- High level discussions with other students is allowed
- Help debugging from other students is allowed
Readings will be sourced from the following books (all are free to read online, but a hardcopy or ebook can purchased as well!):
- Speaking JavaScript by Axel Rauschmayer
- Exploring ES6 by Axel Rauschmayer
- You Don't Know JS by Kyle Simpson
- JavaScript Allongé, the "Six" Edition by Reg "raganwald" Braithwaite
- Eloquent JavaScript, 2nd Edition by Marijn Haverbeke
- Node: Up and Running by Tom Hughes-Croucher and Mike Wilson
- DOM Enlightenment by Cody Lindley
- Learning JavaScript Design Patterns by Addy Osmani
- Programming JavaScript Applications by Eric Elliott
Significant material will be pulled from the following sites: