Sense & Scale

A site to explore cultures, cities, and computing at varying senses and scales. Updated by Ar Ducao, with content from classes at NYU, MIT, CUNY and more.

  • UNDER CONSTRUCTION! All dates are subject to change. Please feel free to suggest a (feasibly bookable) speaker to Prof D.

    +
  • (Formerly known as Made in the Machine: Cultural Practices, Sociopolitical Analyses, and Techniques in Digital Fabrication, Making, and Manufacturing)

    DM-GY 9103 G
    1/28/2021 – 5/10/2021
    2:00 PM – 4:50 PM Eastern 
    Online Loc: Online 

    Recent innovations in digital fabrication have made its technologies much more cheap, sophisticated, and accessible for people of many experiences. In this class, we will explore some of these innovations, their sociopolitical histories and impact on the fabric of society, the equitable access that they promise, the techniques and affordances that they enable, and the future directions that they imply. This will be a project-based class, but as much emphasis will be put on cultural and critical analysis as on technical learning. Learn more at http://senseandscale.info > DFab.

    Class sessions will involve case studies, critical sociopolitical discussions, and discussion of fabrication methodologies, with guest speakers as possible.

    Students can optionally access a makerspace in this class, but since the class will be remote, this will not be required. Basic experience with a fabrication technology or system is also recommended, but not required. Examples of fabrication technologies include:

    • 3D printing
    • Digital cutting (laser, waterjet, vinyl, etc)
    • CNC milling
    • CNC routing
    • Digital wire bending
    • Computational sewing or knitting
    • Mass or contract manufacturing (OEMs, ODMs, etc)

    + , ,
  • Announcements

    • If I forget to start recording when a guest speaker begins, please remind me to press “RECORD!” Thanks in advance.
    • The TCS department is asking students to fill out this survey on asynchronous learning options for future semesters: https://nyu.qualtrics.com/jfe/form/SV_0jmCuZC2cEavqjX
    • Guest speakers from Session 18 (Multi-sensory reading) have sent a few more links from their talks; see the Agenda on Session 18’s page.
    • I will publish the final project brief in the coming days. Considering the current situation, the final project requirements will likely be a bit simpler than the midterm. If you have any thoughts or suggestions, please feel free to add them to the class suggestion form.

    Agenda

    Assignment

    • REQUIRED Phase 2, Blog Post #7: Reflect on the experiences and insights shared by Yvonne Muthoni, Lander Bosch, and Joshua Ogure. Suggested questions to address in your post:
      • Yvonne Muthoni’s work: What are some of the issues that Open for Business highlights for LGBTQ+ workers, particularly in African countries? How does Open for Business work with tech companies? What is “pinkwashing?” (Refer to the reading above for more information.)
      • Lander Bosch: How do different environmental factors affect child wellbeing? What are some of the factors and metrics that are used to measure child wellbeing in the built environment? What kinds of technologies does Lander use to research this issue?
      • Joshua Ogure: How do technology, cultural competence, and local trust mix in Josh’s work? Why is it important to map slums? Why is it important for slum community members to take the lead in this kind of work?

    Extra Credit

    • Blog Post: In 20 minutes of overtime in today’s course, I gave a short presentation of basic data analysis from my collaboration with Lander and Joshua (a study organized by UN-Habitat). Discuss the use of biometric data to understand vulnerable populations like schoolchildren in Kibera slum. By using Human Subjects protocols and Informed Consent/Assent processes, we did our best to respect the privacy and humanity of participants, but is there anything we missed? Anything we can do better?

    + ,
  • Dear D&T students,
    Starting on Wednesday March 12, NYU classes will be held remotely via NYU.Zoom until at least March 27. Tandon Dean Jelena Kovačević has also announced that midterm exams (not projects or presentations) are being postponed. To see the latest updates on NYU’s COVID-19 Policy, please visit https://www.nyu.edu/life/safety-health-wellness/coronavirus-information/our-global-communities.html#nyc

    What this means for D&T class

    • Class will be held as normal on March 10, and the in-class attendance policy remains the same for this session. Midterm blog posts and midterm presentations are still due tomorrow. We will try to get through most of the presentations, so please be prepared to present. 
    • Class will be held online on March 12 until March 27. You can check this blog for the Zoom link for class. I will also email you a link.
    • If we don’t get through all student presentations tomorrow, we will hold the remainder of the presentations online on Thursday. However, you should be prepared to present tomorrow. 
    • The attendance and participation policies will apply to online classes until NYU notifies all of us that in-classroom courses can resume.

    What if I don’t feel well?

    • If you feel physically sick, please contact the NYU Student Health Center at (212) 443-1000 and ask to speak with a nurse. You can read more extensive information at NYU Health’s COVID-19 page.
    • If you feel anxious or unwell in other ways, please use the NYU Wellness Exchange to speak with a counselor.
    • Please also contact Deanna Rayment at the Tandon Office of Student Affairs. Her email and phone number are at https://engineering.nyu.edu/staff/deanna-rayment

    A Reminder on Attendance

    As I’ve been saying in class, if you can’t provide me with official documentation for an absence, the NYU Office of Student Affairs (or other official NYU staff group) must contact me directly on your behalf in order for your absence to be excused. Otherwise, be prepared to take a reduction in your grade or do extra credit (for each unexcused absence, a 1500 word essay, or a field trip + video is required as a graded make-up assignment). Please refer to the class syllabus for further details. 

    Stay well, take care, and good luck!

    +
  • Almost all speakers have been confirmed for videoconference calls, but this schedule is subject to change, pending COVID-19 developments. Recordings of these guests will be posted on the Phase 2 Recordings page (password protected).

    +
  • Job Training and Job Placement

    Many of these programs are completely free. Some take a percentage of your salary if it meets a certain threshold (e.g. $60k or more).

    • The Knowledge House Innovation Fellowship is designed to promote technology-based career opportunities for NYC residents in the areas of web development, data science, and design. The fellowships will serve New Yorkers from diverse backgrounds, some with little to no formal post-secondary education or tech experience, and turn them into entry-level programmers.
    • Per Scholas was founded more than 20 years ago with a mission to open doors to transformative technology careers for individuals from often overlooked communities. They offer short programs, certifications, and job placement.
    • Apprentice NYC (from NYC.gov)  is a paid, full-time apprenticeship opportunity that provides classroom-based technical training and on-the-job training that helps New York City jobseekers develop in-demand skills in a long-term occupation with high growth potential. The computer numerically controlled (CNC) machinist track of the program provides 10 weeks of classroom training and 62 weeks of on-the-job training with employers in the advanced manufacturing sector. Makerspace.nyc is one of the training centers for this program.
    • Pursuit.org trains adults with the most need and potential to get their first tech jobs, advance in their careers, and become the next generation of leaders in tech. Their training and job placement programs are FREE but they do take “12% of future income for 3 years upon getting a tech job above $60,000.”
    • Fedcap.org offers a number of vocational training programs: Computer Service Technician, Custodial Training, Security Operations, and more.
    • Yearup.org “enables young adults to move from minimum wage tomeaningful careers in just one year .”
    • NPower is “Creating pathways to economic prosperity by launching digital careers for military veterans and young adults from underserved communities.”
    • Civic Hall offers digital skills workshops, payment is based on a sliding scale. They will also offer additional workforce development education through their planned expanded space in Union Square.

    Additional NYU Resources for learning outside of class

    + ,
  • Summer 2019
    Prof. Arlene Ducao, arlduc [at] nyu.edu
    Wednesdays, 12:15-3:15 PM
    Wallkill State Correctional Facility

    Overview

    This course will prepare students to write basic software and web pages, and it will introduce a full foundation of computer science and design coding concepts that can be applied to many kinds of technical projects. Students will be exposed to Python, HTML, CSS, and the Unix operating system. This course will take place in the computer lab, so concepts will be demonstrated and discussed through hands-on computer exercises and assignments. Concepts include data types, data structures, syntax, tags, elements, attributes, functions, variables, expressions, inheritance, statements, and version control. 

    Learning Goals

    1. Learn basic computer science concepts, including data types, non-decimal numeric systems, data structures, input and output, conditions, and iteration.
    2. Work with an IDE (integrated development environment).
    3. Write basic back-end functionality with Python.
    4. Write basic front-end styles with HTML and CSS.
    5. Learn best practices for writing code that other people can read.

    Schedule

    This is an approximate schedule. It is subject to change based on the general work pace of the computers and the students.

    1. Introduction & Best Practices
    1. Introduction and Best Practices
      • Python: The Way of the Program
      • HTML/CSS: Structure
      • Other: PyCharm, Notepad, Explorer. Non-decimal numerical systems (binary and hex), Boolean logic, data types.
    2. Introduction Continued
      • Python: Variables, Expressions, Statements
      • HTML/CSS: Text
    3. Writing Programs and Building Structure
      • Python: Functions
      • HTML/CSS: Lists
    4. Case Studies: Designs
      • Python: Case Study: Interface Design
      • HTML/CSS: Links
    5. More Structure
      • Python: Conditionals and Recursion
      • HTML/CSS: Images
    6. Input and Output
      • Python: Fruitful Functions
      • HTML/CSS: Tables
    7. Looping Forward
      • Python: Iteration
      • HTML/CSS: Forms
    8. Strings and Styles
      • Python: Strings
      • HTML/CSS: Extra Markup
    9. Case Study and Cascading Styles
      • Python: Case Study: Word Play
      • HTML/CSS: Introducing CSS
    10. More Structure and Style
      • Python: Lists
      • HTML/CSS: Color
    11. Data Relationships
      • Python: Dictionaries
      • HTML/CSS: Text
    12. Wrap Up
      • Python: Tuples and Beyond
      • HTML/CSS: Boxes and Beyond

    Course Books

    Grading

    Grades will be based on weekly assignments, which can be started in class. Grades are calculated as follows:

    • 30% Structure: Are all the parts of the program set up?
    • 25% Implementation:  Are all the parts of the program completed?
    • 25% Style: Have you thoughtfully used comments, variable naming, and function naming so as to help make the code understandable? Is your code organized and well indented? Is your code authored by you?
    • 20% Function:Does the program run on the computer properly? NOTE: This part can take the longest, so for the short assignments in this class, I recommend that you draft out the structure, basic implementation, and style first.

    A Short Style Guide

    Based on several Google Style Guides. We will refer to this guide throughout the semester, and I’ll use it for the “Style” component in grading.

    Optimize for the reader, not the writer
    Codebases often have extended lifetimes and more time is spent reading the code than writing it. Choose to optimize for the experience of the average software engineer reading, maintaining, and debugging code rather than the ease of writing said code. For example, when something surprising or unusual is happening in a snippet of code, leaving textual hints for the reader is valuable.

    • PROGRAM STYLE
      • Import all external packages at the beginning of your program, just after any module comments and docstrings and before module globals and constants.
      • Indentations: Be consistent in your indentations. PyCharm should auto-format your code, but I recommend indenting your code blocks with 4 spaces or 1 tab. Never use tabs or mix tabs and spaces, because this will cause an error when you run your code.
      • Maximum line length should generally be 80 characters. Exceptions:
        • Long import statements.
        • URLs, pathnames, or long flags in comments.
      • Generally place only one statement (conditionals and iterations) per line. However, you may put the result of a test on the same line as the test only if the entire statement fits on one line.
      • Functions: Try to keep them short. Long functions are sometimes appropriate, so no hard limit is placed on function length. If a function exceeds about 40 lines, think about whether it can be broken up without harming the structure of the program.

    • NAMING STYLE
      • Function names, variable names, and file names should be descriptive; avoid abbreviation. In particular, do not use abbreviations that are ambiguous or unfamiliar to readers outside your project, and do not abbreviate by deleting letters within a word.
      • Always use a .py filename extension. Never use dashes or hyphens.
      • Do not use single character names except for counters or iterators.
      • Guidelines derived from Google’s Python Recommendations:
    TypeStyle
    Functionslower_with_under()
    Global ConstantsCAPS_WITH_UNDER
    Global Variableslower_with_under
    Local Variableslower_with_under
    • COMMENTING STYLE
      • Add an explanatory comment above every conditional and iterative statement. Example:
        # Iterate through each person in class
        for y in our_cs_class
      • Use docstrings! We will learn about them in class.
      • Add short inline comments to help explain potential surprises. Example:
        print(eggs + chocolate + plantain_chips) #not printing cheese yet

    Academic Honesty

    All work for this class must be your own and specific to this semester. Any work recycled from other classes or from another, non-original source will be rejected with serious implications for the student. Plagiarism, knowingly representing the words or ideas of another as one’s own work in any academic exercise, is absolutely unacceptable. Any student who commits plagiarism must re-do the assignment for a grade no higher than a D. In fact, a D is the highest possible course grade for any student who commits plagiarism.

    + ,
  • WORKSHOP: Computer Code Concepts
    This workshop will introduce basic computer coding concepts that can be applied to a wide range of applications, from web development, to systems administration, to data science. Concepts include data types, data structures, syntax, tags, elements, attributes, functions, variables, expressions, inheritance, statements, and version control. No computers will be used. And while we will use math today, you don’t need to be fast or even good with math.

    Introductions to Input and Output

    • Introductions: Name, previous experience, goals/interests for today.
    • I/O Diagramming 1
      • Person Exercise: what’s a job or position that uses computer code?
      • System Exercise: how do these folks use computer code with each other?
    • I/O Diagramming 2
      • What are the components in the computer lab?
      • Which components input information?
      • Which components output information?

    What is a Program? (From Think Python 2e, Chapter 1.1)

    A program is a sequence of instructions that specifies how to perform a computation. The computation might be something mathematical, such as solving a system of equations or finding the roots of a polynomial, but it can also be a symbolic computation, such as searching and replacing text in a document or something graphical, like processing an image or playing a video. The details look different in different languages, but a few basic instructions appear in just about every language:

    • input: Get data from the keyboard, a file, the network, or some other device.
    • output: Display data on the screen, save it in a file, send it over the network, etc.
    • math: Perform basic mathematical operations like addition and multiplication.
    • conditional execution: Check for certain conditions and run the appropriate code.
    • repetition:Perform some action repeatedly, usually with some variation.

    Believe it or not, that’s pretty much all there is to it. Every program you’ve ever used, no matter how complicated, is made up of instructions that look pretty much like these. So you can think of programming as the process of breaking a large, complex task into smaller and smaller subtasks until the subtasks are simple enough to be performed with one of these basic instructions. Today, we will primarily focus on different aspects of input and output. We will get to the other parts of computer coding over the summer.

    Numbers Beyond the Decimal

    • Discussion: What does data look like when it is transmitted from one device to another?
    • Binary Lesson
    • Hexadecimal Lesson
    • Boolean Lesson (T/F, and/or)
    • Data Types

    Final Discussion

    • Think Python 2e, Chapter 1: Formal vs. Natural Language
    • Why Python: The future of AI. Scientific programming, but also popular and clean programming language. Other languages (like JS) can have many ways to express the same thing; Python usually only has one way to express something. Impressive for your resume.
    • What do you want to get out of a summer class?
    + ,
  • Announcements

    Agenda

    Assignments

    • REQUIRED Blog post, due Wednesday 4/17: Finish your first interview and post the summary, transcript, and/or any other documentation of the interview. Use your group’s Human-Centered Plan and the abridged Field Guide to Human-Centered Design to guide you in this process.
    • Blog post, due Wednesday 4/17: Please review NYU’s One Zone pages. We will have a two mini-Zone sessions: a Safe Zone and a Faith Zone which were chosen based on availability and gaps in your instructor’s own knowledge. These sessions will not be focused on technology, so please devise one or two questions that will help us to think about LGBTQ+tech and/or Faith+tech.

    +