Skip to content

Latest commit

 

History

History
139 lines (116 loc) · 5.21 KB

syllabus.md

File metadata and controls

139 lines (116 loc) · 5.21 KB

Syllabus

  • Course: CPLN692-MUSA611, University of Pennsylvania
  • Location: Meyerson Hall B2
  • Schedule: 2-5PM, Fridays
  • Instructors:
  • Teaching Assistant: Xunze (Aaron) Su, [email protected]
  • Office Hours:
    • Jeff Frankl: 6–7pm Tuesday @ The Graduate Student Center
    • Nathan Zimmerman: 12-1pm Friday @ The Graduate Student Center
    • Xunze (Aaron) Su: TBD
  • Need help?
    • Gitter
    • Search (the internet)

Software

Supplementary resources

Course outline

Throughout this 14 week course, you'll be learning to program applications using HTML, CSS, and Javascript. In addition to programming skills, we will stress the "tools of the trade": you will use a text editor designed for programming; your code will be turned in with git and managed through github.

We'd like to keep the course somewhat freeform—there are basic skills to touch on in the first half of the class, but we expect your interests to help shape the direction in the second half. There will be a self-directed final assignment that can take on any topic of your interest that uses the tools we learn in class.

This portion of the syllabus is a living document—as the course progresses, greater detail will be added to reflect the content of each week.

Grading scale

Grade Score Grade Score Grade Score
A+ 97–100 B+ 87–89 C+ 77–79
A 93–96 B 83–86 C 73–76
A- 90-92 B- 80–82 C- 70–72
  • Assessment Method / Grading Criteria:
    • Participation and Attendance: 35%
    • Homework: 25%
    • Midterm Project: 15%
    • Final Project Proposal: 5%
    • Final Project: 20%

Weekly repositories

Each week will have a different repository with the seed for that week's assignment. Turning in an assignment will consist of editing the template project provided as a part of each week's repo and uploading your changes to github. Assignments are due (on github) on Wednesday at midnight.

Midterm project

We will provide a menu of appropriate features for an application to be programmed midway through the course (in a lab and at home with a completely open book). The subject matter of this assignment will be the basics of open source, online mapping applications.

Final project

The final assignment for the class will be decided through a project proposal. Final projects will be done in groups or independently— criteria for success will be hammered out in the final project proposal and group projects will be expected to engage with a wider scope and greater difficulty than individual projects. Group projects will also leverage the power of github to make collaboration simpler and more transparent for grading purposes (this will make more sense when you're familiar with github).

Course Schedule

Week 1 - Getting started

  • Introductions
  • Using Git and Github
  • Atom Text Editor
  • First steps with Javascript mapping
  • Homework
    • Code academy sections 1–5
    • Putting a point on the map

Week 2 - Writing code

  • Review and lab: basic javascript
    • Data types
    • Variables
    • Arrays
    • Loops
    • Conditions
    • Functions
  • Libraries and imports

Week 3 - Working with data

  • Review and lab: underscore

Week 4 - jQuery

  • Github review
  • Introduction to jQuery

Week 5 - HTML & CSS

  • Review and lab: HTML
  • jQuery selectors

Week 6 - Advanced leaflet cartography

  • APIs
  • Geojson
  • Where to find spatial data

Week 7 - Midterm lab

  • In class work on midterm project

Week 8 - Midterm presentation & discussion

  • Midterm presentations
  • Discussion of direction for future classes
  • Code review, discussion of best practices

Weeks 9-14 - Possible directions

  • Turf
  • Carto
  • Mapbox
  • Leaflet Draw
  • D3/Chart.js
  • Bootstrap

Academic Integrity

In compliance (and agreement) with Penn's Code of Academic Integrity, blatantly copying another student's work will not be tolerated. However, because this course is designed to help prepare students for working in a professional programming environments, copying and pasting is not universally prohibited: we encourage students to freely use the internet as a resource for finding code. Citing every copied and pasted line of code is not necessary. Large patterns or multiple lines of code taken from external sources should, however, be noted with in-code comments. If an instance is unclear, you should feel free to speak with the instructors.