Preamble
- Course Title: Form & Genre: Digital Hacktivism Lab (MEDST 758)
- Lecture: Mondays, 7:00 PM – 8:50 PM, G Building, Basement Lab, Rm G-04
- Office Hour: Mondays, 9:00 PM – 9:30 PM, G Building, Basement Lab, G-04
- Dates: 31 August 2015 – 21 December 2015
- Instructor: Roy Vanegas
Description
“A seminar and hands-on workshop in web, app, and physical computing specifically applied toward activist, hacktivist, and cause-related efforts. The course looks at theory and case studies of digital activism, while also teaching skills in project-based units.”
Prerequisite
There is no prerequisite for this course, and no prior programming experience is required. It is assumed, however, that students are proficient with the Windows, Mac, and/or Linux operating systems.
Learning Outcomes
Upon successful completion of this course, you will understand...
- how to work with basic electronics;
- how to program the Arduino microcontroller;
- how to employ sensor technology in hardware- and/ software-based applications;
- how to author web pages using HTML and CSS;
- how to write rudimentary JavaScript;
- and, how to maintain a dynamic web site.
Schedule
- Where: G Building, Basement Lab, Rm G-04
- Day: Monday
- Dates: 31 August 2015 – 21 December 2015
- Time: 7:00 PM – 8:50 PM
Note: the topics listed below will be covered in the order listed, time permitting. It’s possible that some topics will be overlooked.
Week | Topics | Homework (for following week) |
---|---|---|
One 31 August |
|
|
Two 10 September |
Presentations for final project |
|
Three 21 September |
|
|
Four 28 September |
|
|
Five 5 October |
|
|
Six 19 October |
HTML |
|
Seven 26 October |
More HTML |
|
Eight 2 November |
CSS |
|
Nine 9 November |
More CSS |
|
Ten 16 November |
More CSS |
|
Eleven 23 November |
Special topics, as requested by students. |
|
Twelve 30 November |
Special topics, as requested by students. |
|
Thirteen 7 December |
Open lab |
|
Fourteen 14 December |
Open lab |
|
Fifteen 21 December |
Final presentations |
|
Code/Schematics
Any code or schematics that I need to share with you, including code I write during class, will be added to this section for you to download.
Software Requirements
All the required software for this course is listed below. Most of it is free and available for Mac and Windows.
Integrated Development Environment
At the heart of all our hardware-based projects is the Arduino microcontroller.
Browsers
Download all the browsers available at Browse Happy, and get Firefox’s Developer Edition here. I use Chrome and both versions of Firefox in class.
Text Editor/IDE
You’ll require a text editor to write your source code. You may use Sublime Text or WebStorm. The former is a simple editor, the latter a full integrated development environment, or IDE. Sublime Text is free (indefinitely), but requires a $70 license fee to remove occasional purchase reminders. Use these preference files with Sublime.
WebStorm, free for students, is an advanced tool for web developers. It’ll prove useful as a text editor at the outset, and will become more valuable as you grow into a more sophisticated web developer.
Fonts
Here are a few typeface alternatives — all licensed under the SIL OFL — to the stock issue, fixed width fonts included with Windows and Mac:
A Link Checker
The W3’s Link Checker isn’t software you download, but rather a utility that verifies links on a web page so you don’t have to. Bookmark it.
A Compression/Decompression Utility
If you’re using Windows and you don’t have a compression/decompression utility, download 7-Zip, which is free and open source. Mac and Linux/UNIX users already have free compression utilities installed at the command line.
Grading Standards
Simply put: work hard, own up your learning, and commit every effort to producing your most outstanding work. You’ll receive an “A” for your effort.
For not observing the aforementioned, however, you’ll receive a grade below an “A,” which is an indicator that you’re not entirely focused on your academics. In the words of a colleague: “So while it’s easier to get an A in a graduate course for simply fulfilling the requirements, it is also easier to fail for doing truly sub-standard work.”
Divisional, Program, and Class Policies
- Come to class. Attending lectures is important, because everyone needs to share in the experience of learning and interacting with each other, including me. It also shows a commitment to your education and a respect to everyone in the class. Aside from emergencies, everyone should attend every class — on time. Excessive absences and/or latenesses is a direct affront to your learning, your peers, and your teacher. Irrespective of why a student was absent, she/he is responsible for any material missed.
- Get involved. Class participation is an essential part of your success and that of your classmates’. Participating includes keeping up with readings, producing and presenting assignments and projects, attending critiques, and contributing meaningfully to class discussions.
- No food in class. The smell of food is very distracting, even offensive to some, and can linger in a class room for a long time. Eat before class.
- Leave behind a clean classroom. Our room is used by others, so it must be left clean and ready for the next class.
- No drinks near computers — including your own. I’ve seen it too often: A student places a coffee near a computer, then spills it all over a new $2500 machine. Drinks in covered containers not near a computer are allowed.
- Computer backups. Hard drives are cheap, and backup methods are simple — especially on a Mac. There is no excuse not to backup. Backing up your data will ensure that a hard drive or other mechanical failure will not also consume your semester’s work. Use Time Machine if you’re on a Mac, or File History if you’re using Windows.
Resources
Validators and Linters
- The HTML Validation Tool validates your HTML as valid HTML5 code.
- The CSS Validation Service validates your CSS source.
- Keeping in the tradition of C’s lint tool, JSLint is a strict JavaScript syntax linter (checker).
- JSHint is a more lenient JavaScript linter.
Sublime Text
- The official Sublime Text documentation.
- The unofficial Sublime Text documentation.
- A tool that explains and helps users to create a Sublime Text preferences file.
Arduino
- The Arduino home page is your jumping off point for tutorials, forums, and electronics-related purchases.
- The Makey Makey is an invention kit that simplifies interfacing unorthodox sensors, such as bananas or pasta, into your electronics projects.
Electronics
- Based in Colorado, Sparkfun is especially friendly to DIY electronics and to a digital hacktivism culture.
- Newart element14 is an electronics supplier with 24-hour chat and same-day shipping.
- Octopart is an electronic parts search engine.
- There’s a Micro Center three blocks from Queens College. This is the most convenient place to acquire many common electronic parts.
- DigiKey is a massive online electronics store, oftentimes carrying parts that other places don’t.
- Mouser is also a giant online electronics retailer, this one with superb customer service.
- Radio Shack is pricey, and, as of 15 July 2015, lacks on online presence, but is useful for many electronic parts — if you’re willing to wait for shipping.
- Adafruit offers a vast array of electronics, shipping from NYC, and many helpful video tutorials.
- Make is a print magazine with an online presence that sells DIY projects and offers online tutorials.
- Forrest Mims Engineer’s Mini Notebooks contain electronic formulas, project schematics, and sensor tutorials, and are excellent reference books for beginners and seasoned electronic technicians alike.
- Leeds Radio, which recently moved to The Bronx, sells vintage electronics and specializes in vacuum tubes.
- Set up in the back of a typical Canal St shop, 269 Electronics provides both a typical and unusual offering of electronics.
HTML
- The Sitepoint HTML Reference is a reference mainly for HTML4.01, but is very helpful, nonetheless.
- HTML5 Doctor is a tutorials/blog about HTML5.
- Web Fundamentals is a set of tutorials and tools from Google.
- The HTML5 Boilerplate provides users with a generic template for web projects, and is configurable online.
CSS
- Eric Meyer’s base/reset CSS is a reliable way of cancelling out browser styles.
- Chris Coyier’s CSS-Tricks provides CSS-based tutorials and — of course — tricks.
- Sitepoint’s CSS Reference provides useful explanations of CSS2.1 concepts (and some early CSS3, also).
- Can I Use a CSS, HTML, JavaScript, or other web-based syntax in new code?
- A CSS3 gradient generator that helps with the unwieldy CSS3 gradient syntax.
- A specificity calculator that is useful in reinforcing the concepts of specificity.
Students with Disabilities
Click the following link to read about Queens College’s committment to students with disabilities: http://www.qc.cuny.edu/StudentLife/services/specialserv/Pages/default.aspx
Contact and Office Hours
My email address is roy dot vanegas at gee cee dot cuny dot edu. However, I rarely ever answer emails nowadays. For help, you’re strongly advised to see me in person before or after class. (My office hour is after class from 9:00 PM - 9:30 PM.) We can also meet via Skype.