cuny-programming
Lessons and notes for CUNY Graduate School of Journalism “Programming for Journalists” class.
A Note on Learning
This course is an attempt to not only introduce you to programming, but to strip away the mystery behind how the Internet works, how files are created, how websites are stored and served, and to introduce to you the development process behind most web apps and projects. We will use tools and systems that you will come across in most newsrooms today. The goal is to make you familiar with the underlying processes so that as these tools inevitably evolve and change over time you will have the base understanding that will allow you to adapt to these changes.
Homework & Workshops
This course will be structured around short exercises demonstrating various concepts and methods in markup, styling and programming. There will be reading and guided exercises assigned for homework and plenty of in-class practice. The homework assignments are meant to introduce you to terms and concepts while the workshops are meant to help you practice and troubleshoot while you have the help of instructors.
Programming can be tedious and you will get frustrated at times - don't let that scare you. Even the most seasoned programmers make minor mistakes. The trick is knowing how to problem solve so you can catch those mistakes quickly. This will likely be the most valuable thing you learn in this course.
HTML/CSS Weeks 1-5
- 1 Introduction, Tools, What is a Website? (2/1): Introduction to the class, go over class objectives and why coding is important in journalism. Then we will make sure everyone has the programs necessary for the next 15 weeks downloaded and accounts set up (Sublime, Slack, iTerm, Git). The last part of the class will focus on how website files get served and basic page setup. GIT Lab: Get set up and running locally.
- 2 HTML & Wireframes (2/8): Introduction of HTML as a markup language, how to write it and common tags needed for building a page. GIT Lab: Learn how to add/commit/push.
- 3 CSS & The Inspector (2/22): Introduce how to use CSS and how to write it and include it on a page. We also introduce the console and how to inspect sites and check changes. GIT Lab: Continue practicing add/commit/push
- 4 Positioning (2/29*): Today we go over the various properties that control the positioning of elements on your page, using the homework from last week as a base. GIT Lab: Continue practicing add/commit/push and learn pull.
- 5 Design Basics & Workshop (3/7): Learn about a few design basics that inform good graphic design. The second part of class will be a workshop where students will re-create a page from scratch using markup and styles they have learned in class. GIT Lab: Continue practicing pull/add/commit/push
JavaScript Weeks 6-15
- 6 What is JavaScript? (3/14): Discussing JavaScript as a language, how it was created and it’s current place in modern web technology. We will go over what it is used for and how it can be incorporated into journalism projects. We will also discuss its relationship to the Document Object Model and how to add it to the students’ websites.
- 7 Arrays, Objects & Loops (3/21): Continuing with basic JavaScript vocabulary, we cover various ways of storing data and variables for use in our code, and how to loop through them to perform actions. We will apply our JavaScript knowledge so far to the writing of a tip calculator, using git to pull files.
- 8 Introduction to Frameworks (3/28): Discussing the difference between JavaScript and the various frameworks available to use to manage complex actions more efficiently, focusing specifically on using jQuery. We will download the jQuery library, add it to the students’ websites, and practice some basic methods. During the last part of class we will re-write our app from the week before in jQuery and learn how to create a new branch in git and manage it within a repo.
- 9 Data Types & AJAX (4/4): This week we will go over a few more jQuery methods that we have at our disposal students will present to each other. The second part of class we'll discuss two of the ways to store data - XML and JSON - and how to use AJAX to grab data and display it on our page.
- 10 Templating with JavaScript(4/11): We will introduce another JavaScript framework, Underscore, that has useful methods for organizing data. We will use an example dataset to practice some of these new methods.
- 11 HTML5 and Video (4/18): Going over new tools in HTML5, including how to include video on a page. A workshop session will have students build out a page using tools they have learned in class - starting with a video file and a dataset.
* Meghan is out, Jue will sub in
NO CLASS on Monday, Feb. 15 - Presidents' Day
NO CLASS on Monday, April 25 - Spring Recess