WEB DEVELOPMENT FOR MEDIA
Thursdays, 5:20 p.m. to 7:50 p.m. | Spring 2016
- Instructor: Jeremy Bowers
- E-mail: [email protected]
- Mobile phone: 727-667-0510
- Location: Downtown campus, Mac lab (C226).
- Office hours: By appointment.
Merely using the web and digital tools is no longer enough for today's media professionals. Journalists and communicators need to have a practical understanding of how websites and applications work. This class does not aim to make you a professional coder or require any previous web development experience. We want you to come away with enough coding skills that you can effectively collaborate with web developers and continue learning on your own.
You will learn about web development by diving into Python, HTML, CSS and JavaScript. There will be readings and guest speakers, but the major basis for instruction will be hands-on learning activities. You'll learn how web developers work by identifying a project, breaking that project down into features and then building those features. By the end of the class, you won't just have a functional website; you'll be comfortable with the best practices of good development teams.
By the end of the semester, you should be able to:
• Understand the fundamental concepts and technologies underpinning modern web development.
• Use lean UX and agile product development methodologies.
• Develop, deploy and maintain a model-view-controller-based web application.
• Learn how to learn and use technical documentation and to be self-supporting.
• Effectively communicate technical ideas to non-technical people and non-technical ideas to technical people.
There is no required text for this course. Instead, I will assign readings throughout the semester. You will be expected to read materials before class, as there will be simple quizzes and some topical discussion.
You should have access to a computer, preferably a laptop, where you have a modern web browser. You’ll also need to sign up for an account at http://www.pythonanywhere.com/.
As outlined by the university, missing more than two classes will result in a final grade reduction of one level by itself, beyond any other consequences for missed work. For example, if you miss three classes and make up all of the work, an A will still be converted to an A-.
Absences beyond the initial two will result in further reduction of the final grade. If you are absent for four or more classes, you cannot possibly expect to meet the course objectives and will thus be unlikely to receive a passing grade.
If you have to miss a class session, let me know as soon as possible. Many assignments cannot be completed late because they are indications of your progress. If you are going to miss a class and let me know in advance, we can attempt to reformat your milestones to avoid penalizing your absence unnecessarily.
Respect: You should treat your classmates with respect. I’ll expect this both in your verbal communication with them but also in your non-verbal communication. This means: Pay attention and be empathetic.
Participation: Classes are long. We’ll have breaks for you to rest, but I expect you to be attentive while we’re in session. This means: If we’re having discussion, you’re participating. If we’re working on our projects, you’re writing code or brainstorming. Also: Park your phone and messaging apps. I won’t be talking for long stretches often, I promise. If I am talking, it’s probably important.
Late work: In some cases, I will allow you to make up work. In most cases, we’ll move a milestone and reassign or cut features to make your end-of-class deadline. But some of our assignments cannot be recreated if you miss scrum or if you miss both classes in a two-week cycle. Keep this in mind if you’re considering missing a class.
Instructional continuity: In the event of a weather emergency (or any other widespread emergency) that would close the Georgetown Downtown building, we will plan to meet virtually through online videoconferencing tools. More information will be provided on how this will work later in the semester.
This class will feature four different categories of assignments.
Weekly quizzes: Each quiz will consist of around 5 questions concerning the main themes of your weekly readings. They will not be tricky. If you’ve done the reading, you will not have any trouble. Up to two of these may be made up without penalty if you happen to miss one. You must contact me for details.
Weekly scrum summaries: Each week, students will prepare a short summary about their progress in the class for the previous week. These summaries will follow a simple format: What you did last week, what you failed to do last week, what you will be doing this week and what is preventing you from doing things. These summaries should be about 15 seconds long and will be delivered verbally to the group in our weekly scrum. High grades will be given for reports combining brevity, accuracy and completeness. Low grades will be given for reports that are lengthy, inaccurate and/or incomplete. Scrum summaries are an in-class assignment that will not require out-of-class work. As such, scrum summaries may not be made up if you miss our weekly scrum, which takes place within the first 15 minutes of each class.
Bi-weekly progress assessments: Much of the class will be concerned with hands-on work on your project. Every two weeks, I will assess your project’s progress against the milestones you have created. High grades will be assigned for following good developer hygiene (which we will discuss), well-documented features and steady progress. Low grades will be assigned for code that is sloppy, features that you have not written documentation for and/or inconsistent progress. We’ll be doing a lot of discussion about your progress, and there will be many opportunities to improve your progress before an assessment. These may be moved if you miss class but may not be made up if you fail to move it in advance or if you move it into the next two-week period. You must contact me for details.
Final project: You’ll be defining a project, breaking it down into sets of features and milestones and then building that project in Python, HTML, CSS and JavaScript. This grade represents the ultimate evaluation of your project rather than merely the sum of your weekly progress reports. High grades will be given to projects that are well defined, projects that have appropriately-sized feature groups and milestones, projects that work, and projects that work when I evaluate them at the end of the semester. Low grades will be give to projects that are poorly defined, projects that include too many or too few features, projects that have improperly defined milestones, or projects that do not work. Students must pitch their project topic ideas in writing. The pitches are due at the beginning of class on week 7 (Feb. 25th). I will begin evaluating final projects on the last day of class, and I will finish evaluating them at the end of class. I will not evaluate a project after 10:30 p.m. on the last class day.
Each of the four assignment types will represent 25 percent of your final grade.
- Average of 15 weekly quizzes: 25 percent
- Average of 15 weekly scrum summaries: 25 percent
- Average of 6 bi-weekly progress assessments: 25 percent
- Total score out of 100 for final project: 25 percent
- Total: 100 percent
Graduate course grades include A, A-, B+, B, B-, C and F. There are no grades of C+, C- or D.
- A 100.00 – 93.00
- A- 92.99 – 90.00
- B+ 89.99 – 88.00
- B 87.99 – 83.00
- B- 82.99 – 80.00
- C 79.99 – 70.00
- F 69.99 – 0.00
This class is designed to operate transparently. I will provide you with multiple warnings during the semester if you are trending toward a failing grade.
Georgetown offers a variety of support system that can be accessed on main campus or at the downtown location:
-
MPS Writing Resource Program 202-687-4246 http://writingcenter.georgetown.edu/
-
Academic Resource Center 202-687-8354 [email protected] http://ldss.georgetown.edu/
-
Counseling and Psychiatric Services 202-687-6985 http://caps.georgetown.edu/
If you have documented disabilities, you have the right to specific accommodations that do not fundamentally alter the nature of the course. You should contact the Academic Resource Center at 202-687-8354 or [email protected] or visit their Web site at 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 me.
You are personally responsible for completing this process officially and in a timely manner. Neither accommodations nor exceptions to policies can be permitted if you have not completed this process in advance.
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.
Stealing someone else’s work is a terminal offense in journalism, and it will wreck your career in academia, too. You are expected to work with integrity and honesty in all 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 or the need to credit, see http://www.plagiarism.org for more information.
The syllabus will almost certainly change to accommodate discussion of emerging topics. Additionally, the schedules of guest speakers may require some shifting of the agenda. I will make every effort to provide as much advance notice as possible for any alterations. Check your email a
- Introduction to the class
- What is programming?
- In the Beginning Was the Command Line: https://gist.github.com/jeremyjbowers/fd6c171f17023df91307
- What is Code: http://www.bloomberg.com/graphics/2015-paul-ford-what-is-code/
- Quiz on readings
- How to write code
- How the Internet works
- How a Web browser works
- How to Become A Hacker http://www.catb.org/esr/faqs/hacker-howto.html
- The Virtues of a Programmer: http://www.hhhh.org/wiml/virtues.html
- Quiz on readings
- Introduction to web development norms
- The process of becoming a programmer
- Introduction to Python
- The Agile Manifesto http://agilemanifesto.org/principles.html
- Fix Deadlines, Flex Scope http://gettingreal.37signals.com/ch02_Fix_Time_and_Budget_Flex_Scope.php
- Build Less http://gettingreal.37signals.com/ch02_Build_Less.php
- Start With No http://gettingreal.37signals.com/ch05_Start_With_No.php
- The Quartz Guide to Bad Data http://qz.com/572338/the-quartz-guide-to-bad-data/
- Quiz on readings
- Agile development processes
- User-centered design
- Introduction to our project’s data
- NPR Visuals’ Best Practices https://github.com/nprapps/bestpractices
- Good habits http://hackerjournalist.net/2010/03/13/nicar-2010-talk-good-habits/
- The Zen of Python AKA PEP 20 https://www.python.org/dev/peps/pep-0020/
- Quiz on readings
- Introduction to Python and programming environments
- Strings, integers and floats
- Data structures, dictionaries and lists
- Functions and classes
- Sane data updates are harder than you think, part 1: https://source.opennews.org/en-US/learning/sane-data-updates-are-harder-you-think/
- Sane data updates are harder than you think, part 2: https://source.opennews.org/en-US/learning/sane-data-updates-are-harder-you-think-part-2/
- Sane data updates are harder than you think, part 3: https://source.opennews.org/en-US/learning/sane-data-updates-are-harder-you-think-part-3/
- The Zen of Python By Example http://artifex.org/~hblanks/talks/2011/pep20_by_example.pdf
- Quiz on readings
- Rehash of data structures, functions and classes
- Databases, models and ORM
- The design and structure of a news application: https://github.com/propublica/guides/blob/master/design-structure.md
- Finding stories in the structure of data: https://source.opennews.org/en-US/learning/finding-stories-structure-data/
- Quiz on readings
- Project ideas due
- Rehash of databases, models and ORM
- Routes and controllers
- Your first Python Web page
- Kenneth Reitz’s Code Style http://docs.python-guide.org/en/latest/writing/style/
- What's the Big Idea: http://gettingreal.37signals.com/ch04_Whats_the_Big_Idea.php
- Quiz on readings
- Rehash of routes and controllers
- The Near and the Far as Web pages
- List and detail pages
- The ProPublica news apps style guide: https://github.com/propublica/guides/blob/master/news-apps.md
- Half, Not Half-Assed: http://gettingreal.37signals.com/ch05_Half_Not_Half_Assed.php
- The History of HTML https://www.w3.org/People/Raggett/book4/ch02.html
- What is the Document Object Model? https://www.w3.org/TR/DOM-Level-2-Core/introduction.html
- Quiz on readings
- Rehash of data structures
- Rehash of functions and classes
- Rehash of databases, models and ORM
- Rehash of routes and controllers
- Introduction to HTML, CSS and the DOM
- Rinse and Repeat https://gettingreal.37signals.com/ch06_Rinse_and_Repeat.php
- A Fundamental Way Newspaper Websites Need to Change http://www.holovaty.com/writing/fundamental-change/
- Material Honesty on the Web http://alistapart.com/article/material-honesty-on-the-web
- Material Design https://www.google.com/design/spec/material-design/introduction.html
- Materialize CSS http://materializecss.com/
- Quiz on readings
- WYSIWYG and why we design with code
- Templates, templates, templates
- Relative Readability http://webcache.googleusercontent.com/search?q=cache:s2hdUbC1qWMJ:wm4.wilsonminer.com/posts/2008/oct/20/relative-readability/+&cd=1&hl=en&ct=clnk&gl=us
- The 100% Easy 2 Read Standard http://ia.net/blog/100e2r
- Jinja2 Template Designer Documentation http://jinja.pocoo.org/docs/dev/templates/
- Accessible Data Visualization with Web Standards http://alistapart.com/article/accessibledatavisualization
- Design Principles for News Apps & Graphics http://www.propublica.org/nerds/item/design-principles-for-news-apps-graphics
- Quiz on readings
- Rehash of routes and controllers.
- Rehash of HTML, CSS and the DOM.
- Rehash of templates.
- Altering the DOM with Javascript.
- Epicenter Design http://gettingreal.37signals.com/ch09_Epicenter_Design.php
- From Idea to Implementation http://gettingreal.37signals.com/ch06_From_Idea_to_Implementation.php
- Idiomatic Javascript https://github.com/rwaldron/idiomatic.js/
- Lists: Design and Construction: http://www.edwardtufte.com/bboard/q-and-a-fetch-msg?msg_id=0002QF
- Minard: http://www.edwardtufte.com/tufte/minard
- Sparklines: http://www.edwardtufte.com/bboard/q-and-a-fetch-msg?msg_id=0001lh
- Scaling Counties in a Checkerboard State: http://style.org/iowacaucus/
- Arrested Development: http://apps.npr.org/arrested-development/
- PowerPoint Does Rocket Science: http://www.edwardtufte.com/bboard/q-and-a-fetch-msg?msg_id=0001yB&topic_id=1&topic=Ask+E%2eT%2e
- Quiz on readings
- The basics of data visualization
- What makes a bad chart
- Maps and not maps
- When We Build http://vimeo.com/34017777
- Getting a Job in Journalism Code: https://source.opennews.org/en-US/articles/getting-job-journalism-code/
- The Natives Aren’t Restless Enough: http://thescoop.org/archives/2013/10/01/the-natives-arent-restless-enough/
- Googling for Solutions Can Be Tricky: http://knightlab.northwestern.edu/2014/03/13/googling-for-code-solutions-can-be-tricky-heres-how-to-get-started/
- Leo, The Senate Model: http://www.nytimes.com/newsgraphics/2014/senate-model/index.html
- The Data-Driven Congressional Reporter: http://thescoop.org/archives/2012/12/26/the-data-driven-congressional-reporter/
- Quiz on readings
- Time to work on your projects
- “Done!”: http://gettingreal.37signals.com/ch06_Done.php
- What’s Your Problem?: http://gettingreal.37signals.com/ch02_Whats_Your_Problem.php
- It Shouldn’t be a Chore: http://gettingreal.37signals.com/ch02_It_Shouldnt_be_a_Chore.php
- Quiz on readings
- Time to work on your projects
- Projects due Friday, Apr. 29th at 10:30 pm EST