**This is an old revision of the document!**

Hacker Culture

MDST 2012

it seems to me sometimes I've entered some inverted zone, some mirror world where the dorkiest shit in the world is completely dominant. The world has dorkified itself.—Mercer in Dave Eggers, The Circle (2013)

What is this course about?

Are we all hackers now? This course plays with a kind of identity that began among geeky tinkerers and a murky criminal underground, only to be adopted by management consultants and CEOs. How has hacker culture helped form our technological lives? Do hacker formations like Wikileaks, Anonymous, and open-source software represent a new kind of politics, or a rejection of politics as we know it? How does this culture manage boundaries of access and power in the online economy? We will explore the contested figure of the hacker in the past, present, and science-fiction of the Internet.

This course includes assigned sources, class discussions, guest speakers, and a significant component of hands-on practice. All levels of technological prowess are welcome, but expect to learn some skills and to help teach others. Hacker culture is not a spectator sport.

Instructor

Nathan Schneider (“Nathan” or “Professor Schneider”)
nathan.schneider@colorado.edu (tips)
Armory 1B24 (if Covid ever ends!)
Office hours Wednesdays 3-4 pm or by appointment
Website: nathanschneider.info

Objectives

  • Gain familiarity with the varieties of meaning and mystique surrounding hacker culture
  • Acquire some hacker skills and the confidence to acquire more independently
  • Apply lessons from and against hacker cultures in entrepreneurial practice

What are the expectations?

We will use three platforms to carry out our work for the course:

  • Canvas is an open-source learning management system developed by a for-profit company, Instructure. It is currently our campus's official LMS, and we will use it for a variety of tasks, from announcements to grading.
  • Docs.plus is a new, open-source, collaborative document tool based on Etherpad Lite, which integrates documents and WebRTC-based video-chat. We'll use it to co-create resources for our course.
  • Hypothesis is a non-profit, open-source annotation platform that enables users to annotate the Web. Each week we'll use this to annotate and discuss the assigned sources.

Objective 0: Contribute

Computers count from zero, so hackers do too.

Students are responsible for contributing to discussions both in class and through annotations. No attendance will be taken in class. However, showing up and participating in all scheduled meetings will help you get the most you can out of the course, and absence is not particularly compatible with participation. Most weeks will follow a common pattern:

  • The first meeting, plan to have completed the assigned sources for in-class discussion. Be ready to raise insights and questions from the sources. If we have a guest speaker, be prepared to ask excellent questions. Annotations on the assignments are due at this time. One strategy is to take great notes on Hypothesis, print them out from your profile page, and bring them to class.
  • The second meeting, be ready for a more practice-oriented DiscoTech. Plan to have done some preparatory work on that week's Exploit—the skill we'll be learning together. We'll share our ideas, however preliminary, and we'll work on them in class.

For successful annotation, aim to add a note or two to each reading, and go deep on at least one per week. Replies to fellow students count (although you won't see them in our Hypothesis group page). Over the course of the semester, aim for about 200 annotations total.

Evaluation of annotations occurs twice—at the midterm and at the semester's end. Various bounties for in-class participation will present themselves throughout the semester.

Objective 1: Hack

Each week, each student should contribute an Exploit—a hack that addresses the week's topic in a creative way, reflecting technical ingenuity (though not necessarily expertise) and engagement with the week's sources. Exploits are due in Canvas by sunrise on Saturday morning.

The format of the exploit can vary based on the assignment. They might be primarily visual or primarily textual, or code. Show, don't just tell—provide screenshots, source code, and other forms of evidence. If they are not self-explanatory, include a README text that explains the nature and rationale of the hack.

Exploits need not and should not be lengthy; their value is in the adventuresomeness of their thinking, not their girth. Just be sure to engage with at least one assigned source from the week. Also: do not break the law.

Objective 2: Teach

Hackers learn from each other. Each week, usually during the second meeting, a group of students will present to the class about a hacker skill related to that week's topic and Exploit assignment. This presentation will generally precede some time for a DiscoTech, so aim to offer something useful—a skill that fellow students can choose to use as part of their own Exploits. Each presentation should be no more than 10 minutes long, with slides and/or a live demo. Slides should be turned in on Canvas before the class period of the presentation begins.

Following the presentation, student presenters will start the DiscoTech with an exercise for the class, using whatever format they like to invite participation, collaboration, and the sharing of ideas.

Objective 3: Master

Become a goon. The final project for this course is to write an illustrated, 1,800-to-2,000-word report on a real-world hack that for a relevant establishmentarian organization. Pick a hack that particularly fascinates you.

If the hack in question is of questionable legality, write as an FBI agent, perhaps. If the hack is just a brilliant piece of technology, write as a stiff for a big computer company trying to figure out how to capitalize on it. In any case, with clear language and documented research, explain the nature of the hack, its significance, and a recommendation for what your organization should do about it.

The final product itself should be a convincing hoax in the voice and visual character of the organization it supposedly represents. For examples of what this could look like, peruse reports from Cisco or FireEye, or Wired's Hack Briefs.

This project includes a built-in debugging and revision process, as well as a one-minute presentation on the last day of class.

Bounties

Grades are not especially conducive to hacking, but we need some equivalent in order for this course to be legible to the university. Therefore, work will be rewarded with bounties. These are functionally the same as grades, but perhaps giving them a different name will prevent them from killing the learning process in the way that grades normally do. The maximum bounty awarded for each portion of the course is as follows:

  • Objective 0: 20 points
    • critical thinking and prolificacy in online annotations (10 points)
    • geeky enthusiasm, insight, and attention to others in class (10 points)
  • Objective 1: 30 points
    • clear explanation of the Exploit along with supporting evidence
    • creative implementation and stretching of skills
    • sophisticated engagement with at least one of the module's assigned sources
  • Objective 2: 20 points
    • accessible and fun introduction to a skill and its significance (5 points)
    • how others can go about learning it—what basic steps, what resources? (5 points)
    • cultural context and history, documented in research with both scholarly and primary sources (5 points)
    • well-planned, effective DiscoTech exercise (5 points)
  • Objective 3: 30 points
    • complete beta version and participation in debugging with substantive comments on two fellow students' betas (5 points)
    • revised final (20 points)
      • 1,800-to-2,000-word length, written clearly and with instructive illustrations
      • comprehension of the hack and convincing, accessible analysis of it
      • impressive and documented research with both scholarly and primary sources
      • sophisticated engagement with at least two assigned sources
    • one-minute presentation, with a compelling slide, on the last day of class (5 points)

Bounties will be compiled in (more or less) real time on Canvas for easy access. The final grade will be calculated by adding up the bounties each student has earned. Based on the stated bounty structure, grades will be awarded as follows: A (94-100), A- (90-93), B+ (87-89), B (83-86), B- (80-82), C+ (77-79), C (73-76), C- (70-72), D+ (67-69), D (63-66), D- (60-62), F (0-59).

Terms and conditions

  • This syllabus is a living document and may be revised during the course. The current, binding form will be maintained on Canvas, and any changes will be explained in a Canvas announcement.
  • Turn in all assigned work using open formats, rather than those that require proprietary software. These include .txt, .md, .pdf, .odt, .docx, .svg, etc. Examples of closed, proprietary formats include .psd, .pages, and .keynote.
  • We respect one another's privacy and freedom to explore. Content shared in the course, in class or online, will not be shared beyond it without permission.
  • We adhere to basic university policies regarding accessibility and academic integrity; we take responsibility for understanding them and the relevant procedures. Verbum sat sapienti est.

Schedule

Each week's readings are due at 3 p.m. that Tuesday and Exploits are due on Saturday at 9 a.m. All other due dates are at 3 p.m. Mountain Time:

  • Project proposal: April 1
  • Project beta version: April 20
  • Debugging comments: April 22
  • Final presentations: April 27
  • Final project: April 29

What topics will be covered?

1. Version history

Exploit: Do something worthwhile with an old machine. Dig up an old, obsolete machine and have fun with it. What's lying around your house or dorm collecting dust? What neat software have most people forgotten about? What can it do that a fancy smartphone can't? Pay a visit to the Media Archaeology Lab on campus and play around. Show us what you can do with a neglected tool.

2. White, black, gray

  • Edward Snowden, Permanent Record (Metropolitan Books, 2019): Part II
  • Charlton McIlwain, Black Software: The Internet and Racial Justice, from the AfroNet to Black Lives Matter (Oxford University Press, 2020): 28-43, 55-58
  • The Mentor, “The Conscience of a Hacker (aka Hacker Manifesto),”​ Phrack 1, no. 7 (1986)

Exploit: Compose a testimony or manifesto. Using appropriate typography and layout, or posting it to an appropriate place, create a testimony or manifesto that introduces your hacker philosophy to the world. Identify yourself any way you like or not at all. Seek to recruit, warn, alienate, terrify, or inform readers. Let the medium be part of the message.

3. Hacktivism

Exploit: Set a valuable piece of information free. Lots of data and knowledge are caught up in places that aren't accessible—in offline archives, behind paywalls or private intranets, trapped in someone's mind. Following the hacker dictum that “information wants to be free,” let something loose in a way that will facilitate its flow. Post it online in an appropriate spot, or share it with those who will, or find a liberating offline place for it, like a flyer or a megaphone. Be sure to explain what makes the information valuable and how what you do with it is meaningfully liberating.

4. Disintermediation

Exploit: Devise a tool that disrupts a gatekeeper. What is in the way of something worth doing? What systems do you encounter that are needlessly cumbersome or inefficient? Who is leeching profits without contributing any useful value? Come up with an idea—you don't have to implement it, especially if it's risky—that would clear the way. Bypass a government, master the university bureaucracy, or skirt around a corporate middleman. Get the goods.

5. School

Exploit: Teach yourself a bit of a computer language and make a program that does something neat. It might seem scary or fancy, but it's completely possible to start learning how to code online, and lots of hackers are more or less self-taught. Whatever you know already, use this Exploit to learn a new programming language or trick. You can do something as simple as the classic “Hello World!” or make your own chatbot. Try the elegant language Python on CodeAcademy, or get visual with JavaScript at Khan Academy, or play with MIT's Scratch. The Hour of Code project has tons of activity ideas on top of that.

6. Identities

Exploit: Create an identity. Who you appear to be can change what you can do. Try on a new online mask—on a social network, for instance, or across a few. Form a profile, take on a character, and see what happens. What can you do that you might not otherwise try? Share screenshots or other documentation of what your identity allowed you to do.

7. Remix

Exploit: Make a remix. Take something out there and turn it into something else. Mash up music or video into something surprising, or rewrite a book. Create a bit of knock-off shanzhai. Make some fan-fiction. Save a website's HTML code to your computer and mess with it. Explore the possibilities of free culture, or what culture would be like if it were really free. Show us what you can come up with.

8. Play

Exploit: Build a world. In the spirit of Jemisin's world-building, hack an imaginary world that doesn't exist yet. Make a map, tell a story, provide a timeline, or offer some other picture of your world. What does this world allow you to explore that the “real” world does not? What is the same, and what is different? What does that world reveal about this one? These "laws" from a practicing game designer might help.

9. Craft

Exploit: Practice self-optimization. Work on your development as a hacker by hacking yourself. See math where you didn't before. Measure some aspect of your life, routine, mind, or body, and test strategies for optimizing it. For inspiration, consider resources like Lifehacker and Hacker News. What are you optimizing for, and why? Produce data based on your experiment and present it so the rest of us can better hack ourselves.

10. Order

Exploit: Submit a bug report or question to an open-source project. Critical to any open-source project is the participation of the community. For those of us who are not amazing software engineers, one of the best (and most rewarding) ways of participating is through feedback. Identify which software that you use is open-source—Canvas, Docs.plus, and Hypothesis are a start—and try to find where the developers communicate with users. (It's usually in the Issues section of the project's GitHub page.) Write to them with a bug you've noticed or a feature you'd like to see. Keep in mind Raymond's essay on questions to help ensure your recommendation is usefully phrased and well researched.

11. Anonymity

Exploit: Get someone who doesn't know who you are to do something. Use your identity created in the previous module, or try another, or use no identity at all. This can be online, over various kinds of networks, or in meatspace. Take a stranger to lunch, or get a stranger to send you a dollar. Make a friend, or not. But exercise your capacity to influence the world without doing it as you.

12. Security culture

Exploit: Audit your communication practices and identify improvements. Review some of your regular practices, digital and otherwise, and locate potential security vulnerabilities. Do some research about the nature of potential threats and how they might be mitigated. Check out software listed at AlternativeTo, PRISM Break, or PrivacyTools if the dangers are digital. Try out a few patches, and determine whether they're worth the trouble.

13. Weary giants

Exploit: Improve or subvert a government process. Look for old-world inefficiencies, combat them with hacks. Where are governments needlessly burdening people? How do bureaucratic processes waste time and resources? Explore the field of civic tech. Apply your hacking skills toward devising a strategy that solves the problem, whether those in power like it or not.

14. Gentrification

Exploit: De-co-opt something. Notice something fresh, original, grassroots, and authentic that has been transformed into something palatable, profitable, and safe for a dominant class. Reverse the process. Identify forgotten radicalisms, incite people to re-embrace them, and renew their dangerousness to the powers that be. Reflect on the consequences of doing so.

15. Mastery

Debug the final project with peers and conclude the course.


What should I be checking out to keep up with hacker culture?