- Course: CPLN692-MUSA611, University of Pennsylvania
- Location: Meyerson Hall B2
- Schedule: 2-5PM, Fridays
- Instructors:
- Jeff Frankl, [email protected]
- Nathan Zimmerman, [email protected]
- 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?
- You Don't Know JS - A set of free online books which start from scratch and go, in-depth, into javascript concepts and best practices
- Mozilla Developer Network - Javascript reference materials
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.
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%
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.
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.
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).
- 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
- Review and lab: basic javascript
- Data types
- Variables
- Arrays
- Loops
- Conditions
- Functions
- Libraries and imports
- Review and lab: underscore
- Github review
- Introduction to jQuery
- Review and lab: HTML
- jQuery selectors
- APIs
- Geojson
- Where to find spatial data
- In class work on midterm project
- Midterm presentations
- Discussion of direction for future classes
- Code review, discussion of best practices
- Turf
- Carto
- Mapbox
- Leaflet Draw
- D3/Chart.js
- Bootstrap
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.