NYU Prison Education Program: CS Workshop, May 2019

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)

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?