Code, Communication, and Creative Computing — Week 1 Notes
Acknowledgement and Course Context
- Acknowledgement of the Gadigal people of the Eora nation as traditional custodians of the land where the session is held; pay respects to elders past and present and extend respect to Aboriginal and Torres Strait Islander peoples today.
- This message addresses both in-person and online participants and signals an exciting semester ahead.
Instructor Background and Course Philosophy
- Instructor background: science, broadcast interactive TV, app design, user experience, digital games; research focus on creative learning.
- Emphasis of the subject: learning by doing; a practical, hands-on approach aimed at making learning engaging and enjoyable.
- Audience orientation: welcoming both familiar and new students; acknowledges different levels of prior experience.
In-Class Activity: Silent Flashlight Communication (Pair Work)
- Setup requirements:
- Pair up with someone seated at a distance; if needed, communicate with someone behind you or at a different level.
- Each person should have a smartphone with a flashlight.
- Venue intentionally disables Wi‑Fi and cellular communication to force flashlight-based signaling.
- The scenario:
- Two people at a concert with iPhones communicate only via flashlight signals.
- First message: one person says "hello"; the partner responds with the sequence that would correspond to "hello".
- Second message: the other person says "I’m here" using only flashlight signals.
- Rules:
- No hand signals or other forms of non-flashlight communication.
- You may use any signaling pattern with the flashlight; no other channels.
- Activity duration: a couple of minutes for initial signaling; then debrief.
- Example questions explored during debrief:
- Which methods did you use to communicate (e.g., writing in air, flashing strength, pattern shapes)?
- How did you handle the start of communication and keep it distinguishable (e.g., distinct signals for letters, pauses for letter/word breaks)?
- Were there cultural conventions or common patterns among groups?
- Observations from the session:
- People used a variety of methods: writing in the air, varying light strength, and different signaling approaches.
- Some groups used alphabet-shaped signals; others used flas h sequences to indicate letters or syllables.
- Many stuck with an initial chosen method rather than switching mid-message, highlighting issues of error-prone signaling and memory load.
Visualizing Real-World Communication: Codes Across Contexts
- Video example: a concert where people used different signaling approaches (flashes, waving) to communicate.
- Signal strategy ideas discussed:
- Alphabet-based signaling (trace letters in the air with the flashlight).
- Dot/dash style signaling (short and long flashes) inspired by Morse code.
- Use of longer sequences and pauses to separate letters and words.
- Early exploration of coding schemes:
- Alphabet as a code (letters and syllables) versus a more compact signaling system.
- Long exposure considerations if signaling is captured by a camera.
- Key takeaway:
- There are many ways to encode information into light signals; reliability hinges on a robust scheme for distinguishing letters, spaces, and punctuation.
Morse Code and the Concept of Codes
- Historical reference: Samuel Morse and Morse code (dots and dashes).
- Signal design insights:
- Short vs. long blinks correspond to dot and dash; long blink is effectively three short blinks.
- Efficiency comparison:
- The simplified two-signal system (short/long blinks) yields fewer distinctive signals (16) than Morse code’s broader set (52) for letters and punctuation, making Morse more efficient in practice for dense alphabets.
- Morse code alphabet and frequency rationale:
- The letter E is the most frequent in English, so its symbol is a single dot, illustrating frequency-driven encoding.
- Core lesson: knowledge of codes and encoding schemes helps explain how information can be transmitted with minimal signals and maximal clarity.
Why Codes Matter: From Everyday Life to Computers
- Broad definition: a code is a systematic way of transferring information between people and between people and machines.
- Everyday examples of codes:
- Spoken language vs. written language; the relationship between speech and writing.
- Sign language (Auslan) and Braille as alternative codes to enable communication for people with hearing or sight limitations.
- Codes of conduct and safety codes (e.g., beach/skiing safety codes) that guide behavior.
- Barcodes and QR codes as identification and data-carrying codes used in commerce.
- Codes in technology:
- Computers rely on various codes to store and process data (music, numbers, photos, videos).
- The distinction between human-friendly codes (natural language, signs) and machine-oriented codes (binary, hexadecimal, ASCII).
- The broader philosophical point:
- Code underpins communication and information exchange across human-to-human, human-to-machine, and machine-to-machine interactions.
- Practical implications:
- Understanding different codes improves digital literacy, data interpretation, and critical thinking about privacy and security.
Secret and Public Codes; The Role of Cryptography
- Notion of secrecy in codes:
- Some codes are designed to be secret (cryptography) to prevent interception or misinterpretation.
- Notable historical and cultural examples:
- Leonardo da Vinci allegedly used mirror writing as a secret-societal code; theories on why include concealment from powerful authorities or simple left-handedness.
- Fictional and cinematic explorations:
- Sneakers scene: scrabble pieces and hidden messages; multiple forms of signaling and code usage, including written words, braille, sign language, and computer hardware/software cues.
- The idea of a code as a cipher (cryptography) versus a signaling system, illustrating different uses of encoding and decoding.
- Real-world significance of cryptography:
- Cryptography is pervasive in daily life (online privacy, ATM transactions, credit cards, transit cards) and considered one of the most important technologies for security and privacy.
- Encoding and decoding involve algorithms, laying groundwork for later topics on algorithms and data processing.
- Scenario recap: Mark Watney on Mars, attempting to communicate with Earth using a Pathfinder camera that can rotate and transmit data, with a roughly 16-minute one-way latency.
- Latency detail: about 16extminutes for messages to travel one way; round-trip latency is about 32extminutes (if considering two-way turnarounds). In the talk, emphasis is on one-way latency of text 960exts.
- Signaling constraints:
- Only available tools are the Pathfinder device and signaling channels; text messages must be encoded in a way the receiver can interpret despite the delay.
- Encoding concepts illustrated:
- Decimal vs hexadecimal vs ASCII representations used to convey text to the receiving Earth mission control.
- Basic explanation of base systems:
- Decimal (base 10): place-value system; general form N=⨁<em>i=0kd</em>iimes10i where diextaredigits0−9.
- Hexadecimal (base 16): digits 0-9 and A-F; general form N=⨁<em>i=0mb</em>iimes16i where b_i ext{ ∈ } ig\{0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F\igig\}\$.
- Decimal-to-hex example: 0x1A = 1 imes 16^1 + 10 imes 16^0 = 26_{10}
- ASCII encoding example:
- The phrase "HELLO" can be encoded in hex as 48 ext{ }45 ext{ }4C ext{ }4C ext{ }4FcorrespondingtoASCIIvaluesinhex;indecimaltheseare72, 69, 76, 76, 79.
- The mapping aligns with the standard ASCII table used in computing (American Standard for Information Interchange).
- Takeaway from the Martian example:
- Computers and communication across space rely on standard encodings (binary, hexadecimal, ASCII) to represent and transmit text and data reliably over long distances and delays.
- Implication for course focus:
- Understanding base systems and textual encodings is foundational for computing and digital communication.
Numerical Foundations: Decimal, Hexadecimal, and Binary
- Decimal system (base 10):
- Place-based counting with powers of 10: N = igoplus{i=0}^{k} di imes 10^i, ag{decimal}
- Example concept: as you move left, each position multiplies by 10.
- Hexadecimal system (base 16):
- Place-based counting with powers of 16: N = igoplus{i=0}^{m} bi imes 16^i, ag{hex}
- Hex digits: 0-9 and A-F, where A=10, B=11, C=12, D=13, E=14, F=15.
- Example relationship: 0x10 = 1 imes 16^1 + 0 imes 16^0 = 16_{10}.
- Binary system (base 2):
- Briefly noted as the fundamental language of computers (0s and 1s); to be explored in later modules.
- ASCII and memory representations:
- Text characters can be encoded as hexadecimal or binary values using ASCII; example conversion demonstrates how characters map to numerical codes.
Three Complementary Perspectives on Code (Recap)
- Perspective 1: Codes as signals to represent letters in transmission (e.g., Morse-style signaling).
- Perspective 2: Codes as symbols/letters/words used to convey messages, sometimes with secrecy (cryptography) or brevity (compact coding).
- Perspective 3: Codes as rules to represent instructions to a computer (machine-level encoding, programming languages).
- Modules for the subject: Code, Data, and Algorithms.
- Course materials and access:
- Provided via Canvas; includes lectures and tutorials.
- Tutorials have a minimum attendance requirement; sessions are two and a half hours long (2.5 ext{ hours}$$).
- Assessments and timelines:
- Week 4: First formal deadline — pitch your intended project (code prototype concept).
- Weeks 5–6: In-class work or presentation of the project concept.
- Week 12: Final assessments including a lecture and a tutorial; two assessments tied to the code prototype:
- A pitch for the prototype idea.
- Development of the code prototype as a hands-on project.
- Programming language and tools:
- Primary language: Python.
- Other tool options discussed: BBC micro:bit, TunePad, Processing, MakeCode; emphasis on Python to start for consistency.
- Tools are device-agnostic and support multiple platforms.
- Creative learning approach:
- Emphasis on a playful, exploratory mindset; students encouraged to experiment and build prototypes to learn.
- Tutorials provide substantial time (2.5 hours) to explore and develop ideas with tutor support.
- Project philosophy and expectations:
- Projects should be meaningful and personally engaging.
- The goal is to produce prototypes that help you learn more about code, not polished commercial products.
- Tutors are available to help; you’re encouraged to iterate, test, and learn through building.
Practical Guidance for Students
- Start from your interests and passions to select a project area.
- Focus on prototyping as a learning tool rather than delivering a finished product.
- Build a personal learning journey: expect to learn new concepts as you code and create.
- Maintain a playful, experimental mindset to maximize creativity and understanding.
- Remember the broader context: computational thinking, data handling, and algorithmic problem-solving underpin modern coding experiences.