Spring 2016
Aleksandr Rogozin
Mondays 6-7:30pm; Rogers Hall, RH 704
Email: arogozin@nyu.edu
Phone: (646) 997-3578
Office hours: After class or by appointment
Programming experience with an object-orientated language is required. Basic knowledge of any web development scripting language is highly recommended. You must feel comfortable programming in at least one of the following languages: Python, C++, Java, PHP, JavaScript.
This course makes use of software engineering concepts to introduce practical web application development. Topics covered include the development environment, version control, unit testing, deployment strategies, the role of object-orientated programming in web frameworks and best practices for web scale. In this hands-on class, students will work on a semester-long project in order to further understand these core concepts. Prior programming experience with an object-orientated language is required. The course will make use of Laravel, a PHP framework.
- Develop the methodical skills necessary for producing web applications.
- Become familiar with the web development tools and environment setup.
- Apply object-orientated principals to build web applications.
- Provide you with fundamental skills to help you learn new web application tools and frameworks more quickly.
In addition to lectures, students will be assigned weekly programming assignments and a semester-long project.
There are no required textbooks for this class.
You are expected to do all assignments, attend and participate in class. Grading policy is the following:
Programming assignments: 10%
Class participation: 15%
In-class hackathon: 5%
Semester-long project: 40%
Final presentation: 30%
You are encouraged to ask as questions. While some people will enjoy asking questions out loud, others might feel more comfortable asking questions via messaging platform. I will be monitoring a Slack (nyu.slack.com) #cs6015 channel during each lecture.
At the beginning of each lecture, I will pick one person’s programming assignment code, and will ask one random student to explain what it does. The idea behind this is to develop important skill of working with others’ code.
There will be 11 programming assignments. Lowest programming assignment grade will be dropped. Each of them counts as 1% towards the programming assignment grade.
I will cover fundamental concepts and practical implementation examples in class that will directly relate to the upcoming assignments. Programming assignments will be graded based on the programming style covered in class.
Programming assignments will be posted after lecture. Final code / answers will be due at 5PM on Mondays, an hour before lecture begins.
There will be no grade awarded towards late programming assignment submissions.
Class material, programming assignments, and feedback will be posted on GitHub. In order to avoid any organizational issues, please set up a GitHub account as soon as possible.
Please email me your GitHub username, and I will invite you to the class Organization: NYU-CS6015.
Once your GitHub account is setup and is a member of NYU-CS6015, please fork Programming-Assignments repository. This will allow you to contribute your code to a copied version of the repository.
All work you submit must be your own. In order to ensure this policy and your understanding of the assignment, please be ready to explain the code when requested. We will continuously exercise this by going over the programming assignments in class. Both parties will receive 0 if you are unable to explain the code (yours or someone else’s, depending on my request), and it is exact copy of another student’s code.
Date | Description |
---|---|
Jan 25 | The Basics |
Programming assignment 1 given | |
Feb 1 | Development Environment & Version Control |
Programming assignment 1 due | |
Programming assignment 2 given | |
Semester Project assigned | |
Feb 8 | Architecture Foundations |
Programming assignment 2 due | |
Programming assignment 3 given | |
Feb 15 | President’s Day |
No classes scheduled / University holiday | |
Feb 22 | Application Services |
Programming assignment 3 due | |
Programming assignment 4 given | |
Feb 29 | Application Services Part II |
Programming assignment 4 due | |
Programming assignment 5 given | |
Mar 7 | Databases |
Programming assignment 5 due | |
Programming assignment 6 given | |
Mar 14 | Spring Recess |
No classes scheduled | |
Mar 21 | Object-relational Mapping (ORM) |
Programming assignment 6 due | |
Programming assignment 7 given | |
Mar 28 | User Interfaces (UI) |
Programming assignment 7 due | |
Programming assignment 8 given | |
Apr 4 | Forms & Requests |
Programming assignment 8 due | |
Programming assignment 9 given | |
Apr 11 | In-class Hackathon |
Programming assignment 9 due | |
Apr 18 | Unit Testing |
Programming assignment 10 given | |
Apr 25 | Application Interfaces |
Programming assignment 10 due | |
Programming assignment 11 given | |
May 2 | Final Project Check-in & Review |
Programming assignment 11 due | |
May 9 | Final Project Presentation |
If you are student with a disability who is requesting accommodations, please contact New York University’s Moses Center for Students with Disabilities at 212-998-4980 or mosescsd@nyu.edu. You must be registered with CSD to receive accommodations. Information about the Moses Center can be found at www.nyu.edu/csd. The Moses Center is located at 726 Broadway on the 2nd floor.