Teaching Programming

71% of code clubs work on their projects independently. This philosophy does not work to actually teach the programming to either elementry school students or college students.

Oxford Handbook of Reading: Covers how people learn how to read. Our programming instructional model is nothing like reading. “The sound of words really matter”, miss interpreting a word requires reparsing a full sentence. Jean Piaggate is the founder of constructivism: you have to bulid your own knowledge in your own brain. Logo creator: “by explaining something you take away the opportunity for a child to discover it”.

Two schools of thought delibert explination and practice versus open exlortation and gathering enthusiasm. “Why minimal gudience doesn’t work” by Kirschistel advocates against exploration. Mechnical taught solved the problems in 1/5 the time in tuaght examples and carried over into new problems. Short term memory can hold 7 +/- 2 items, research from the 50s. More recent research is between 4 +/- 2. Trunking allows the translation of words to intenral symbols, reducing the total number of slots. Cognitive Load is when working memory is too full.

Exploration group had too high cognative load while learning trying to solve the problems. “You don’t become an expert by doing expert things”. Pedagocicial debate: exploration has been over emphasised, direct instruction is needed. Speaker is pushing for students to read the source code aloud. Group who read code aloude every week were able to better complete the work. “The effect of reading code aloud on comprehension” - Swidan & Hermans’ig.

“The case for case studies in Pascal” - Linn & Clancy ‘92: Reading expert code with an explination reduced cognitive load and performed better than those who were just handed the code. Explicit instruction works well.

23% of code clubs use any kind of assesment. A brief assesemnt reinfroces learning and allows a teacher to know what knowledge has been laerned. “It doesn’t matter if people are having fun while learning”. “Children already know learning is not fun” – “Learning is hard work.” Skill is a moitvator, not the other way around.

Summary

“Not real programming” - Don’t be those people. What languages are more or less programming? bit.ly/pl-views. History of programming says they need to explore only, without a mentor. Research now shows we need to give them tools to reduce cognative load. @Felienne / felienne.com

Recommends Goodnotes for creating drawing for slides.

Empowering People to build a Digital Bank

Nubank - SW Engineers from the bank are presenting. Braziliian Fintech was founded in 2013. Intended to provide services to rual clients in Brazil.

How can grwoth be kept healthy: Organization oursevles in horizontal teams. Platform provides common infrastructure: responsible for k8s, kafka, etc. Vertical off of them are product verticals. Primarily hirer people who aren’t aware of their language . They organize regular tech forums to share knowledge. Engineers can move around between teams, however they must apply to move between the roles; takes a few days or weeks.

InfraOps / Ops Hero pattern: Doesn’t scale as the teams grow. Platform team provides IaaS, foster SRE culture, and define a declarative way to define infrastructure. Create default alerts for the platforms. Build and maintian abstractions over the infrastructure. Engineering Productivity: DevXP from Virta. https://talk.fission.codes/t/engineering-effectiveness-at-twitter-peter-seibel-2015/146

Advocates for RFCs, homogenous codebase with common libraries, and architectural decision reports.

Observability culture: they use grafana, prometheous, thanos. Incident response: incident, post-mortem, celebrate. Crash: point person is trying to solve the problem; comms is who to talk to about the problem. They prefer to use a thread for recording what is happening. Post-mortem they use a blameless post-mortem culture: includes detection and resolution time; business impact & timeline, and follow up. They store post-mortem documents in a Git repository. Post-mortem review meeting once a month. Drink beer, what they learned, action items. It’s effectively a lunch and learn to encourage a positive culture.

They mix bulkheads and database sharding. Global ingress layer figures out how to proxy to the shard a customer is located in. They built internal tools to work against all 12 internal shards. They wrap aws and kubectl, abstracting out the underlying system managemnet.

Generative Site Specific Poetry Walk

The robot is interactive and use non-traditional (!screen) interfaces. Uses all the sensors and APIs for data input.

Immersive Theater: Sleep No More is recommended. Interpretative dance retelling McBeth and a Hitchcock film -> put on a mask and explore a building. Speaker encourages going to a coffee shop and talk about the expierences to share with expierence. Emergent behavior: A simple set of rules which have unexpected pattenrs which emerge. Splunky is a good example of that. Her Long-Black Hair by Janet Cardiff is a framing narrative, with positional reality.

“Twitter bots are a really good skinner box” - “Every time it tweets it’s like a pigeon pushing a button”. Andrej Karpathy “The Unresaonable Effectiveness of Recurrent Neural Networks” is a recommended blog post. Effecitvely they are Markov Chains. They have a very short term memory due to the number of perviously words it looks at. If they consider too many words then they are too predictiable, too short and they create gibberish.

Kate Compton: https://tracery.io, https://cheapbotsdonequick.com GPT2 - CharRNN, trained on several of GBs of Reddit. Open source, pretrained with Terrabytes of text.

Ross Goodwin who built a generative text network around poetry.

Too many inputs result in a feeling of randomness. Final result used GPS and movement data. Used movement speed as an indicator for how engaged the user is. Faster = less engaged, slower = more engaged.

“The way you interact with a system meaningfully affects your emotional relationship with it” - Use all the tools at your disposal to create an immersive expierence.

finding bugs without running or even looking at code

Class: Formal Methods

Ways to find bugs:

  • Reviewing PRs
  • Manual and automated testing
  • Static Analyzers

Problem: Require person or tool is looking at the code or the code is running.

Rubber ducking results in finding bugs. “Writing is nature’s way of letting you know how sloppy your thinking is” - Dick Guindon. It is important to write stuff down in a way that is not code. Speaker likes to write things in the way that the computer may automate. Alloy Analyzer is a model checker; a system to describe a design in a formal way. It will verify a correctness property holds or provides feedback on the result.

Example: Permission Systems

Uses a fact based language to generate a set of items.

Chord Protocol is a distributed hash table.

Takeaways:

  • Write thigns down
  • Model existing systems
  • Model new systems

Resources:

  • Alloy Tools Book – It’s the pirmary resoruce for learning Alloy
  • Architecture of Open Source Applications book, specifically the chpater on CORS
  • Hillel Wwayne - TLA+ & Alloy
  • learntla.com

Alda and Closure

Problem with contemporary music software: Mouse oriented, cubersome to express music, difficult to express your concepts.

Strange Loop with Parasitic Spicies

There is a spicies weaveles able to attack pretty much every invasive spicies. Invasive species are those which cause economic or environmental destruction, either plant, insect, or bird. Many of the invasive species are human introduced. There are many plants & animals released to control various invasive species. Parasitic Insects are where one organism benefits and the other is harmed.

Wasps are heavy hitters for parasitic control. Parasitoid Insects: will kill the host as apart of it’s lifecycle. Parasitoids have a population relationship with the target insect. Similar to recursion steps.

Herbivor insects could be consider paraistoids. Nichalson-Bailey relationship can be generalized making the assumption this is correct. It can take as long as the seed banks survive to get a target plant population under control.

Github: alfalimajuliett