MPJO-779-40: WEB DEVELOPMENT FOR MEDIA
GEORGETOWN UNIVERSITY: MPS-JOURNALISM
Tuesdays 6 p.m. to 9:20 p.m. | Summer 2013
Instructor: Greg Linch
Clarendon campus, Mac lab
- Office hours are by appointment.
COURSE OVERVIEW
Merely using the web and digital tools is no longer enough for today’s media professionals. Journalists and communicators alike need to have a strong foundational and practical understanding of how websites and applications are built and how to troubleshoot when problems arise. This class does not aim to make you full-time coders (though maybe you’ll want to be after!) or require any previous web development experience, but we do want you to come away with some coding skills. You’ll also be able to collaborate more effectively with web developers and to continue learning on your own.
Students will learn about the various areas of web development and the fundamental technologies used to code and design web pages by diving into HTML and CSS, plus some basic JavaScript, jQuery and PHP. Students will set up and customize their own self-hosted website using WordPress. Readings, hands-on demonstrations, self-learning tutorials and assignments will be the basis for instruction.
COURSE OBJECTIVES
By the end of the semester, students should be able to:
- Understand the fundamental concepts and technologies in modern web development
- Set up, customize and maintain a self-hosted site using WordPress
- More expertly conceive, build or collaborate on technical projects
- Approach problem-solving from a programmer’s perspective
- Communicate more effectively with web developers
- Be aware of other programming languages, frameworks, libraries, etc., and their uses
- Continue to learn and teach yourself coding or other technical skills
REQUIRED READING
There is no required text for this course. Instead, the instructor will assign selected readings throughout the semester. Students will be expected to read materials before class, write an analysis post when assigned and discuss in class. Students should post any questions to course blog.
EQUIPMENT
Required: Access to a computer (preferably a laptop) where you can install free software tools:
- Sublime Text 2 (all platforms)
- GitHub for Mac or GitHub for Windows
- local server environment (MAMP for Mac or XAMPP for Windows)
Purchase a domain (e.g., yourname.com) and basic-level personal hosting space.
Note: You aren’t required to install or set up these before the first class, but you are encouraged to do so and start learning what they do and how they work by using them.
ATTENDANCE
As outlined by the university, missing more than two classes will result in a final grade reduction of one level (for example, an A will be converted to an A-). Absences for classes, beyond the initial two, will result in further reduction of the final grade. If you are absent for more than four classes, you will be in danger of failing this course.
Each week builds upon the previous week, so you risk falling behind if you miss class. If you do fall behind, you are responsible for catching up and learning on your own.
If you have to miss a class session, let the instructor know as soon as possible. You will still be responsible for completing all the homework, assignments and projects.
CLASSROOM ETIQUETTE, CLASS PARTICIPATION AND OTHER GUIDELINES
Students should turn off all cell phones, pagers or other communication devices while in class. Class discussions should be respectful and considerate of others’ views and opinions.
Students are expected to do all the reading and any homework before coming to class in order to be ready to learn additional concepts and to apply skills to the hands-on work in class. It is also expected that computers in class will only be used for coursework. It is easy to miss important parts or not fully grasp technical concepts if you are distracted. Email is the primary means of communication outside of class for any questions. Phone calls should be arranged by email.
Late work will result in one full letter grade lower for each day after the deadline. If you have an emergency and will miss a deadline, you must request an extension from the instructor know as soon as possible. If the request is approved, a new deadline will be given.
ASSIGNMENTS
Unless specified, all assignments are due Sunday at 5 p.m. before the next class.
Self-learning: Read texts, watch videos or complete tutorials as assigned.
Analysis posts (~300-400 words, 11 total): For assigned readings and self-learning, write reactions and highlight what you found most interesting or had questions about on the course blog.
Mid-term assignment: Set up a self-hosted WordPress site. Due: Sunday, June 16 at 5 p.m.
Project explainer or developer profile (~800 words): Pick a news or PR project to deconstruct what, how and why it was built, plus lessons learned or what it might mean in the larger context of journalism. Alternatively, you may profile a developer working in news or PR – perhaps more interestingly – outside of news or PR whose work might be relevant to those fields. Due: Sunday, Aug. 4 at 5 p.m.
Final project site: Create a customized site using the WordPress site created for the midterm. Due: Sunday, July 21 at 5 p.m.
Final project critiques: Evaluate your peers’ project sites. Due: Thursday, July 25 at 9 p.m.
Surveys: Fill out the initial one before the first class (http://bit.ly/MPJO779SUM13survey1) and any others sent out during the course. These surveys will help the instructor know where everyone stands and if any adjustments in content or pacing are needed.
GRADING
Your course grade will be based on the following:
In-class participation: | 20% |
Self-learning and surveys: | 15% |
Analysis posts: | 10% |
Midterm: | 10% |
Explainer or profile: | 10% |
Final project site: | 25% |
Final project critiques: | 10% |
Graduate course grades include A, A-, B+, B, B-, C and F. There are no grades of C+, C- or D.
A 100-93 B- 82.99-80
A- 92.99-90 C 79.99-70
B+ 89.99-88 F 69.99-0
B 87.99-83
The instructor will provide a warning by mid-semester to any student who appears to be on track for a poor final grade.
University Resources
- MPS Writing Resource Program
Lauinger Library, 217A | 202-687-4246
http://writingcenter.georgetown.edu/
- Academic Resource Center
Leavey Center, Suite 335 | 202-687-8354 | arc@georgetown.edu
http://ldss.georgetown.edu/
- Counseling and Psychiatric Services
One Darnall Hall | 202-687-6985
http://caps.georgetown.edu/
Students with Disabilities Policy
Students with documented disabilities have the right to specific accommodations that do not fundamentally alter the nature of the course. Students with disabilities should contact the Academic Resource Center (Leavey Center, Suite 335; 202-687-8354; arc@georgetown.edu; http://ldss.georgetown.edu/index.cfm) before the start of classes to allow time to review the documentation and make recommendations for appropriate accommodations. If accommodations are recommended, you will be given a letter from ARC to share with your professors. You are personally responsible for completing this process officially and in a timely manner. Neither accommodations nor exceptions to policies can be permitted to students who have not completed this process in advance.
Georgetown Honor System
All students are expected to maintain the highest standards of academic and personal integrity in pursuit of their education at Georgetown. Academic dishonesty in any form is a serious offense, and students found in violation are subject to academic penalties that include, but are not limited to, failure of the course, termination from the program, and revocation of degrees already conferred. All students are held to the Honor Code. The Honor Code pledge follows:
In the pursuit of the high ideals and rigorous standards of academic life, I commit myself to respect and uphold the Georgetown University Honor System: To be honest in any academic endeavor, and To conduct myself honorably, as a responsible member of the Georgetown community, as we live and work together.
PLAGIARISM
Stealing someone else’s work is a terminal offense in journalism, and it will wreck your career in academia, too. Students are expected to work with integrity and honesty in all their assignments. The Georgetown University Honor System defines plagiarism as “the act of passing off as one’s own the ideas or writings of another.” More guidance is available through the Gervase Programs at http://gervaseprograms.georgetown.edu/honor/system/53377.html. If you have any doubts about plagiarism, paraphrasing and the need to credit, check out http://www.plagiarism.org.
SYLLABUS MODIFICATION
The syllabus may change to accommodate discussion of emerging topics. Also, the schedules of guest speakers may require some shifting of our agenda. The instructor will make every effort to provide as much advance notice as possible for any alterations.
CLASS SCHEDULE
COURSE PREPARATION (Due: Sunday, May 19 at 5 p.m.)
- Complete this survey
- Read/watch all
- How the Internet works
- Timeline of computing
- Rethinking our Thinking
- Computational thinking and the new journalism mindset
- The Pragmatic Programmer Quick Reference Guide
- WordPress philosophy
- GNU free software philosophy (“free” as in speech)
- Unix philosophy (read rules section; explanation below is optional but helpful)
- Zen of Python
- Write analysis post that includes why these ideas matter and what you found most interesting/your main takeaways from themes discussed
WEEK 1 (TUESDAY, MAY 21)
Introduction
- Overview of class
- Review of survey results
- What do you want to build?
- Which track are you interested in picking?
Assignment for week 1:
- Think about your final project (due July 23) and your possible track (choice due June 18)
- Read: Getting started with HTML and CSS
- Read: Basic intro to HTML/CSS for journalism students
- Read: Responsive design (focus on fundamentals, key concepts, what this entails)
- Read: Adaptive Vs. Responsive Layouts
- Read: Inspect the Web with Your Browser’s Web Inspector
- Analysis post
- Create Codecademy account and send your profile page to instructor (example)
- Download and install Sublime Text 2 (all platforms)
- Download and install GitHub for Mac or GitHub for Windows
WEEK 2 (TUESDAY, MAY 28)
Content and presentation
- View source/Browser inspector
- Document-Object Model (DOM)
- HTML
- CSS
- Responsive and adaptive design
Assignment for week 2:
- Complete tutorial: Codecademy HTML & CSS for Beginners track, including projects
- Create a prototype homepage (e.g. for a personal site) using HTML and CSS
- Analysis post
WEEK 3 (TUESDAY, JUNE 4)
Scripting and databases
- The DOM revisited
- Intro to programming concepts and using JavaScript
- Client-side scripting
- Server-side scripting
- Databases for web applications
Assignment for week 3:
- Complete tutorial: Codecademy JavaScript courses 1 and 2
- Getting started with programming and project
- Introduction to functions in JS and the first project
- Finish JavaScript exercise from class: add styles using CSS and captions that show/hide along with the photo using JavaScript
- Create an account on GitHub
- Install GitHub for Mac or Windows
- Bring your laptop to class on June 11 so we can install MAMP or XAMPP
- Analysis post
WEEK 4 (TUESDAY, JUNE 11)
Scripting, databases, servers, different code environments
- Review JavaScript/jQuery concepts and gallery homework exercise
- Intro to server-side scripting and databases
- Intro to web servers and server stack
- Development, staging and production environments
- MAMP (Mac) and XAMPP (Windows)
- PHPmyadmin
- Git/GitHub
- How to set up self-hosted WordPress on your local machine
Assignment for week 4:
- Complete mid-term assignment: Purchase domain, hosting space and set up WordPress
- Complete tutorial: Codecademy jQuery course 1 and 2
- Analysis post
WEEK 5 (TUESDAY, JUNE 18)
Site customization
- Loops and arrays
- More on version control with GitHub
- Intro to themes and plugins
Assignment for week 5:
- Completely Codecademy PHP courses 1, 2, 4, 5 (skip 3)
- Read WordPress codex entry excerpts to better understand customization options. Focus on fundamentals, key concepts and general steps.
- Theme development: read through “Template files” intro and stop at “Template file list”)
- Child themes: intro and “Why use a child theme?”
- Writing a plugin: intro
- Post formats: intro and “supported formats”
- Post types: “post types” and “custom post types”
- Custom fields: intro
- Analysis post
- Pitch post: 200 words on what you want to do for your final project site, why and who the audience is
WEEK 6 (TUESDAY, JUNE 25)
Diving into development
- Guest: Andy Nacin, a lead developer of WordPress.org
- Codex/documentation
- Diving deeper into themes and plugins
- Post formats, custom post types, custom fields — oh, my!
Assignment for week 6:
- Find and read code and documentation on GitHub for WordPress themes (example)
- Analysis post
- Update pitch post, including some ways you could use the different available options for your project
- Work on project
WEEK 7 (TUESDAY, JULY 2)
Command line and more WordPress
- A walk-through of command line basics
- Brief intro to APIs
- Discuss projects and, generally speaking, what customizations are planned
- Show example of how to create a custom post type
Assignment for week 7:
- Complete tutorial: Learn Command Line the Hard Way
- Complete tutorial: Try Git
- Read intro to APIs
- Analysis post
- Work on project
WEEK 8 (TUESDAY, JULY 9)
Hands-on APIs
- Uses
- API wrappers
- Examples
- Practice
Assignment for week 8:
- Complete tutorial: Codecademy Sunlight Foundation API tutorial using Python
- Analysis post
- Work on project
WEEK 9 (TUESDAY, JULY 16)
Project management
- Agile vs. Waterfall
- Rapid prototyping
- A/B testing
- Work on projects, ask questions and show nearly-finished sites to instructor
Assignment for week 9:
- Read: Agile manifesto
- Watch: Agile best practices
- Analysis post
- Finish project
WEEK 10 (TUESDAY, JULY 23)
Final project
- Explore sites, take notes
- Discussion
Assignment for week 10:
- Write a critique with constructive feedback for each site and send to instructor by Thursday, July 25 at 9 p.m. The instructor will then compile the critiques, remove names and send by Friday night.
- Make adjustments to your project based on feedback over the weekend. Send update message to instructor when changes are finished by Sunday, July 28 at 5 p.m.
WEEK 11 (TUESDAY, JULY 30)
The wider world of web development
- Washington Post newsroom visit
- Introduction to additional common tools
Assignment for week 11:
- Devise self-learning plan to use after the course ends, including goals and timetable; share Google doc with instructor
- Analysis post
- Complete project explainer or journalist profile
- Complete end-of-course survey
WEEK 12 (TUESDAY, AUGUST 6)
Leveling up
- Review self-learning plans and next steps
- Feedback and discussion of goals
- Discuss end-of-course survey