Git Product home page Git Product logo

mashups's Introduction

Mashups: Creating with Web APIs

School: NYU Tisch School of the Arts
Program: Interactive Telecommunications Program
Course Number: ITPG-GT 2611
Semester: Spring 2018 Class: Monday, 3:20 - 6:15pm Room: 721 Broadway, 4th Floor, Room 50

Instructor: Calli Higgins
Email: [email protected]
Office Hours: Email for hours

Course Description

As the World Wide Web continues to grow and permeate our everyday lives, an ever-increasing amount of data and digital services are accessible to us through public web APIs - Application Programming Interfaces. Common to many web sites, including YouTube, Twitter, Google Maps, Wikipedia and more, web APIs offer a means to programmatically request and re-purpose endless troves of information. But how exactly do we access these datasets and services? How can we write code to transfer, store, and display this content on our own web sites? And how might we use these available resources to design unique, creative, and compelling web experiences of our own.

This class is about creating interactive single-page web applications that leverage public data and digital services from a wide range of existing web products. The overall goal of the class will be for each student to have 2 well-designed, functional single-page web applications by end of semester. Subscribing to a project-oriented approach, a majority of class time will be spent reviewing and writing code, primarily Javascript, for client-side (front-end) web development. We will use a number of Javascript libraries, including jQuery, Underscore, p5, D3, Skygear, and more, to help build a diversity of web experiences. Where server-side (back-end) development is required, we will use Skygear, a cloud service. Students should have some programming experience as well as an exposure to basic client-side web development, specifically HTML and CSS. Experience with Javascript is a plus.

Schedule

PART I: Client-Side Web Development + API Fundamentals

3/19: Midterm DUE Dealing with Data

PART II: Client-Side Javascript Libraries

4/16: [Databases & Final Project Workshop]

4/23: Final Project DUE

Learning Outcomes

  • Develop a clear understanding of client-side (front-end) web development and the roles of client-side web technologies, specifically HTML, CSS, Javascript, and public web APIs
  • Develop a basic understanding of the Javascript language as well as the ecosystem of open source client-side Javascript libraries
  • Learn how to work with a variety of data-serving public web APIs
  • Learn how to create web pages for modern browsers that leverage data and services from public web APIs
  • Become empowered to produce compelling well-designed single page web experiences

Teaching Methodology

This is a production-based course that involves programming work both inside and outside of the classroom. During class, code examples will be presented, written, and reviewed. Examples will iteratively build off lessons learned in preceding classes and students will be encouraged to write code, ask questions, and engage in both creative and technical discussion. The course embraces a process-oriented philosophy believing that programming, design, and web development are best learned by doing. Thus, much of class time will be spent doing hands-on workshop-style lessons and exercises.

Course Mission: L.E.G.S.

  • Learn - skills, tools, processes, techniques, resources
  • Explore - challenges, risks, failures, adventures, dreams
  • Grow - advance, empower, progress, reflect, repeat
  • Share - describe, document, communicate, contribute, participate

Grading

10% Attendance
10% Participation
25% Homework Assignments + Online Journal
25% Midterm
30% Final Project

Homework Assignments

Each class there will be homework assignments. Homework may include reading, watching videos, doing code exercises, creating web prototypes, and completing projects. Feel free to collaborate with your classmates and work together on any assignment(s), but everyone must share/submit their own individual work.

Class time will be spent going over assignments. Expect to be asked to show your work every class. Some classes everyone may demonstrate their work, other classes only a few students will share, but always be prepared to do so. All of your work must be completed on time prior to class.

We will be using github to turn in our assignments. For those new to git, we will go over basic usage in class.

Assignment Workflow

  1. To start, fork the homework repository.
  2. Clone the forked repository to your computer.
  3. Modify the files and commit changes to submit your work.
  4. Push/sync the changes up to GitHub.
  5. Create a pull request on the original repository to turn in the assignment. Do not merge the Pull Request.

I also recommend using Github Pages to host your projects, but you are welcome to use any hosting services that you are comofrtable with.

Online Journal

You are expected to keep some form of an online journal. For each assignment, you must:

  • describe the assignment
  • a link to the hosted project, if not using localhost
  • discuss what you chose to do and why
  • document any resources/research/inspiration
  • explain your process
  • highlight both successes and failures

The purpose of the journal is twofold. First, it is a valuable way for you to communicate that you are keeping up with the work in the class and that you are grasping the material. I read the entires to see how you are doing.

Second, the journal is a way to document your work for your own use and that of others. You must update the journal each week with the work you have done for class. You should use the journal as an opportunity to write clear, concise thoughts, questions, and analysis based on the class assignments. The writing is expected to be well reasoned and grammatically correct. You should link to any relevant sources, and provide context, such as images, video or audio, when appropriate. Each entry should be included in the README.md file associated with your homework repo and pushed along with your homework.

Projects

Both projects will involve creating a single page (client-side only) web experience that, upon user input, responds with data public web APIs. You will be expected to present your site, discuss your work, and clearly articulate your creative process.

Project 1:

Project 1 will involve creating a single page (client-side only) web experience that, upon user input, responds with data from at least 2 public web APIs.

Checklist:

  • Client-side web development with user interaction
  • At least two public web APIs as a data source

Project 2:

Project 2 will involve creating a single page (client-side only) web experience that ideally leverages data from at least one public web API and incorporates the use of at least one Javascript “interaction” library, such as p5, D3, Three, etc. Server side storage will be covered and encouraged to be used, but is not a requirement.

Cheklist:

  • Client-side web development.
  • At least one public web API as a data source
  • At least one javascript “interaction” library
  • Bonus: database storage

Attendance & Participation

  • Attendance is mandatory. Every class builds off the previous one so it is vital to be present for every lesson. Unexcused absences or habitual lateness will negatively impact your final grade for the class. If you are going to be late or absent, please email me in advance. If you have an emergency, please let me know as soon as you can.
  • More than two unexcused absences (more than 20 minutes late to class) will result in a lower final grade (i.e. B+ to B). More than three unexcused absences will result in an F.
  • Showing up on time, engaging in the class discussion, and offering advice and input during class is a major part of your grade. Participating in class is helpful for me to get to know you as an individual and keep track of your progress, but most importantly, it provides you and your classmates the opportunity to share failures, successes, and insights on the work you are doing.
  • Please turn in all assignments on time. For each day an assignment is late, it will result in a lower final grade (i.e. B+ to B).
  • You are expected to show work in class. This includes a working web site, a kind-of working web site, a non-working web site, a failed web site, a web site that works but not the way you expected it to work, and so on. Basically, don’t be afraid to volunteer to show what you did do or failed to do. Explaining your work to other people is a great way to better understand the material and answer questions for yourself. Plus, showing work that did not function as expected is not a sign of failure, it is an opportunity to learn.
  • Ask questions. If you do not ask questions, I can only assume you understand the material completely.

Laptops

Laptop use will be expected in class, but should be focused on class-specific material, applications, and research. Whenever classmates are presenting please keep your laptop closed. The quality of the class depends in large part on your attention and active participation, so please respect your fellow classmates and close your lid.

Communicate

If you have any questions, would like extra help, or need further instruction, please reach out to me. You can communicate with me via e-mail, sign up for ofice hours, speak with me before class, after class or during break, but please let me know if you have any concerns pertaining to the course.

Statement of Academic Integrity

Plagiarism is presenting someone else’s work as though it were your own. More specifically, plagiarism is to present as your own: A sequence of words quoted without quotation marks from another writer or a paraphrased passage from another writer’s work or facts, ideas or images composed by someone else.

Statement of Principle

The core of the educational experience at the Tisch School of the Arts is the creation of original academic and artistic work by students for the critical review of faculty members. It is therefore of the utmost importance that students at all times provide their instructors with an accurate sense of their current abilities and knowledge in order to receive appropriate constructive criticism and advice. Any attempt to evade that essential, transparent transaction between instructor and student through plagiarism or cheating is educationally self-defeating and a grave violation of Tisch School of the Arts community standards. For all the details on plagiarism, please refer to page 10 of the Tisch School of the Arts, Policies and Procedures Handbook, which can be found online at: http://students.tisch.nyu.edu/page/home.html

Statement on Accessibility

Academic accommodations are available for students with documented disabilities. Please contact the Moses Center for Students with Disabilities at 212 998-4980 for further information.

Statement on Counseling And Wellness

Your health and safety are a priority at NYU. If you experience any health or mental health issues during this course, we encourage you to utilize the support services of the 24/7 NYU Wellness Exchange 212-443-9999. Also, all students who may require an academic accommodation due to a qualified disability, physical or mental, please register with the Moses Center 212-998-4980. Please let your instructor know if you need help connecting to these resources.

Statement on use of Electronic Devices

Laptops will be an essential part of the course and may be used in class during workshops and for taking notes in lecture. Laptops must be closed during class discussions and student presentations. Phone use in class is strictly prohibited unless directly related to a presentation of your own work or if you are asked to do so as part of the curriculum.

mashups's People

Contributors

craigprotzel avatar callihiggins avatar joejean avatar pd952 avatar konklone avatar eozinche avatar

Watchers

James Cloos avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.