Learning Objectives
The main objective of the course is to familiarize students with the multiple facets of developing a web application.
- General Development Practices
- Testing: You will learn the importance of writing extensive and appropriate test suites for your code, and will become familiar with Test-Driven Development. Technologies involved: Mocha, Chai
- Documentation: You will learn how to document your code and in general practice writing documentation for your projects. Technologies involved: JSDoc, Markdown
- Modularization: You will learn how to decompose your code into modular units that can act independent of each other, and various methodologies for combining them to form bigger projects.
- Pair programming: You will practice Pair Programming, where two programmers work on the same computer at the same time, learning from each other as they go along.
- Version Control: You will learn how to use revision control software and websites to manage your code, track unresolved issues, and share with others. Relevant technologies: Git, GitHub
- Design Patterns: You will learn about a number of standard design patterns useful in web applications, as well as various techniques for asynchronous and evented programming.
- Specific Programming Objectives
- Javascript: The main programming language on the web. We will spend a large part of the course learning to work with Javascript.
- Core Javascript: Fundamental structures and functions provided by the language.
- DOM: The browser extensions that provide web-page interactivity.
- Node: Server-side scripting extension to Javascript.
- HTML/CSS: Used for designing the page. We will spend a very limited amount of time on this.
- HTTP/XmlHttpRequest: The protocols that allow the web page to interact with the rest of the world. We will spend a little bit of time on this.