Editor’s Note: Below is the second of a two-part blog post outlining the myriad class offerings available this trimester at Eagle Rock School. (Please see our October 4, 2015, blog post — Latest Eagle Rock School Classes Explore Everything from Coaching to Carpentry — for part one in this series.)
What we’ve highlighted here is in no way a complete listing of this trimester’s classes. Instead, it’s a sampling of classes that have the intention of engaging the student in their own education. Each is interesting, challenging, and certainly fodder for use in any number of current and future situation. In other words, useful education. These classes are already underway, and the first three listed below are 10-week courses that started in late-September. The rest are five weeks in length.
Cryptography: Prime numbers have puzzled and amazed mathematicians for centuries. They are at the center of beautiful patterns and there is no end to them (and certainly no way to ever fit them all into a book.) Prime numbers are also what protects every piece of information you send over the Internet — pictures, emails, passwords and more. Behind this is a long story of coders and hackers fighting a battle to secure information. The outcomes of these battles have had lasting impacts on our society, and will continue to play a role in how we share information. This class explores the mathematics behind secret messages, and the role they have played in history. The mathematics of this class is a branch called Number Theory that assumes only the knowledge of addition, subtraction, multiplication, and division. Traditionally not taught until college, number theory is an exploration into the heart of mathematics. This class is solidifying student skills in mathematics, and giving them a sense of the love of puzzles that drive most mathematicians.
Theater Tech: Ever wonder what goes on ‘back stage’ to bring a story to life? Our Theatre Tech class is designed to provide students with a basic understanding of the practical application of theatre production. This class is an introduction to the methods of scenic design and construction, properties design and construction, painting, costumes, and performance management. Students learn the skills required to create and problem solve in order to design and implement a setting that truly reflects the intention of a theatrical performance. Skills learned in this class include the operation of power tools and equipment. For the final product, students will be designing and constructing the set for the Eagle Rock School winter musical and will also have the opportunity to learn about and consider stage management positions for that particular production.
Exposure: If a picture tells a thousand words, imagine the power of effectively communicating with your photos and writing combined. In this class, students practice different methods of photography as well as a variety of writing forms to explain their thoughts and feelings on important issues. Here, Eagle Rock students are learning traditional black & white film photography, a variety of writing styles as well as editing of their digital photos. Students are also learning how to educate an audience as they guide them to understand their chosen content. Along the way, they are also studying modern and historically significant photographers.
The People’s History: Here, Eagle Rock students are looking at U.S. history through various perspectives, including African American, American Indian, Asian American and Latino American points of view. They are examining individuals and groups who had an impact on history and their styles of leadership that lead to change. As students better understand their past, they may more clearly understand where they are today, how they fit in, and how it affects them as individuals. A strong focus in this class is on the importance of change that happened as outside groups stepped in and collaborated in such efforts. Students are using their perspectives on the past to explore and possibly construct ideas on how to have an impact today and in the future through their own leadership.
American Sign Language – ASL: In this five-week class, students are opening doors to communicate with the deaf and hard of hearing communities by learning American Sign Language (ASL). The students enrolled in this class are building their vocabulary, hand gestures, and facial expressions to communicate without speaking. Skills in sign language are being learned through games, engaging activities — and lots of practice. In fact, most class days will include no speaking out loud. As an added bonus, students are learning about deaf culture and are communicating with various members of the deaf community to practice their new skills.
Math 4 Life: After graduating from Eagle Rock School, where will students be living? What will they be doing? And, more importantly, how will they pay for everything required of living on one’s own? In this class, students imagine what their life might be like in the future, and then learn how to successfully and responsibly plan for that life. Topics covered include ways to save money, manage bank accounts, create a budget, find an apartment, search for a job, pay for school, buy a car, and file a tax return.
Human Canvas: Imagine a class where students are encouraged to ask questions and seek answers around why people do what they do to their bodies. This class is doing just that by studying the techniques, symbolism and history of tattoo art, piercing, and body modifications. Students are exploring why different cultures adorn the human body. They are also learning henna and theatrical makeup techniques as they study ancient and modern rituals around body art.
Courageous Conversations: Here, students are taking up important topics around racial identity, racism, classism and genderism, asking themselves how they are part of this and how it affects them. The students enrolled in this class are exploring ways to successfully communicate, be respectful and be open to these various topics, and examine tools to be effective while listening and communicating. They started off by developing a recording/video diary about their racial identity (who you are), and then explore one of the topics listed above. Students are then conducting research on the topic and facilitating a way to help others understand their point of view and be able to successfully utilize the tools taught. Finally students in this class will put together all these skills (digital editing, facilitation/communication and learning more about identity) in order to host a courageous conversation in the Eagle Rock community.
Entrepreneurship: In this class students are evaluating the concepts of starting something new by going into business for themselves. Emphasis is on the exploration of feasible ideas of products/services, research procedures, business financing, marketing strategies and access to resources for starting a small business. Class participants are developing components of a business plan and evaluating startup requirements. Alternatively, students are encouraged to build on their knowledge of starting a business venture and direct that knowledge toward solving a global or local issue.
Learn to Swim: This class is for Eagle Rock School students who are non-swimmers, poor swimmers or just want to learn how to use the pool to get a good workout. Whether they are beginners, intermediates or experts, students enrolled in this class are in the Eagle Rock pool (don’t worry, it’s an indoor pool) every day learning about swimming, fitness and nutrition.
La Telenovela: In this class, Eagle Rock students are analyzing and creating their own Spanish-language “soap opera” episodes. Students are gaining insight into telenovela structure, characters and themes by viewing real telenovelas. They then refine their Spanish reading, writing, listening and speaking skills in class. As a final project, students will script and film their own telenovelas in which they play the characters as well as do all of the required behind-the-scenes production work. Students will work on acting as well as filming and directing techniques to produce the final episodes.
Cryptography in a Nutshell
Symmetric Encryption:
To encode:
– Take an alpha (ie a-z) string of characters.
– For each character rotate it 13 places (in the 26 letter set)
To decode:
– repeat the same steps for each character
Congratulations, you have now understand the most basic algorithm for symmetric encryption.
Hashing:
– create a secret value
– take an input string and convert it to binary
– binary XOR the input string against the secret value to create a hash
– store the hash
When you need to verify another input string, follow the same process and compare it against the stored hash.
Since only the hashed version gets stored it’s impossible to know the input value. Crackers can find the input value by brute forcing (ie trying every possible value). If that’s too computationally expensive there are tools to intelligently reduce the problem set. For instance using dictionaries (ex massive collections of cracked passwords found online) or heuristics (ie pattern matching based on common patterns) the likelihood of a good guess is dramatically increased. Unless — of course — your password is truly random.
Congratulations, you know how to implement the most basic hashing algorithm.
Asymmetric Encryption:
– on each end of the communication select a sufficiently large prime number
– each end transmits their prime to the other separately
– find the multiple of the two primes (ie prime * prime)
– transform the data (ex XOR) using the multiple
Each end can encrypt/decrypt the messages using the combination of the two prime numbers.
Since only one of the primes is transmitted publicly, an eavesdropper only has half the required information to decrypt the message. It takes many orders of magnitude of time to factor the two sufficiently large primes from a multiple. So creating them is computationally fast, breaking them is computationally hard/impossible. There are strategies to protect the prime numbers in transit called public key encryption but that’s beyond the scope of this example.
Congratulations, you know how to implement the most basic asymmetric encryption algorithm.
So… Neat but what’s the point?
Teaching the theory of Cryptography is easy. If the end goal is to have a very basic (and mostly useless) understanding.
The application — on the other hand — is incredibly difficult: it takes a deeper understanding of how computation and communication works; algorithms need to be adjusted to be computationally expensive so they can’t be easily cracked; The systems they operate on need to be battle hardened against malicious access so the secrets can’t be stolen; etc…
The Bigger Picture:
Every University that teaches Computer Science teaches Cryptographic theory in one form or another. None of them teach practical application of Cryptography.
In fact, very few Universities (with the exception of schools like MIT/Harvard/Stanford) teach the practical application of programming in general because the motivations of the Ivory Tower of academia are self-serving. Their goals are self-preservation, maintaining relevance/reputation by furthering science, generate revenue by claiming partial/complete ownership of student patents, earning grant funding by publishing papers pertaining to the field.
Teaching Software Engineering as a trade benefits only the students and lacks the secondary/tertiary benefits, therefore it’s looked-down upon by most higher education institutions. As a result, most students that graduate don’t have the skills required to start a job in software engineering post graduation. The smaller subset of students that represent the exception to this rule are intrinsically motivated to learned the trade on their own; via, working on side-projects and self-study (ie autodidacticism). This is the dirty secret of the Software Engineering industry that nobody likes to talk about.
The truth is, Software Engineering isn’t a skill that can learned all at once and put directly into practice. The field is constantly changing and evolving. Self-motivation, self-learning, and a borderline-obsessive focus on adapting to the changing landscape are practically requirements to be a successful developer.
The Danger:
I was able to teach myself Programming, Computer Science, Systems Engineering, and other disciplines for the same reason I can count myself among the small percentage of ERS Alumni. I worked my ass off and I’m a highly (borderline irrationally) intrinsically motivated individual. I established my own reasons/justifications for personal growth and made an effort to prevent outside influences from eroding those values.
I follow news closely and am fully aware that President Obama has a ‘hard on’ about the concept that code will become the ‘literacy of the 21st century’. This idea is naive and borderline dangerous for the following…
Software Engineering is inherently difficult and requires an immense breadth and depth of knowledge.
At the foundation, an effective engineer requires knowledge of:
– high-level math/logic
– computer systems architecture
– networking/communications
– hardware abstractions
– algorithms
– data structures
Basically you’re looking at the core curriculum of a BA in CompSci. All of these concepts can be self-taught in the case of a highly motivated individual who likely grew up using/modifying/hacking their own computers.
To be an ‘effective’ programmer requires much more:
– a solid understanding of programming in one turing-complete language (1 month – 1 year)
– effective debugging/testing (6 months – 1 year)
– workflows/tools (ex source control, documentation generation, automation, deployment) (6 months – indefinite)
– performance/profiling (6 months – indefinite)
– higher level programming concepts (ex design patterns, functional vs imperative vs object-oriented programming) (indefinite)
– software and systems architecture (indefinite)
– specialization and/or domain-specific knowledge (indefinite)
Similar to Cryptography, it’s ‘easy’ to gain a basic understanding of basic programming constructs (ex variables, loops, functions, if/then/else). The requirements to be an effective (read employable) software engineer are much more extensive and highly dependent on an individual’s internal motivations.
Selling students the idea that ‘code literacy’ ala ‘fundamental programming constructs’ is enough to open doors of opportunity is self-defeating.
Best case, it may spark an individual student’s curiosity and build a foundation of intrinsic motivation for future development. In which case the student pursues an education/self-teaching, practices, and eventually learns enough to be effective.
Worst case, the implementation falls subject to Goodhart’s Law.
Coding ability joins SAT/ACT scores as yet another arbitrary and senseless measuring stick to judge a student’s academic competence. Wanna push students to hate programming the way they hate math, because this is how you get students to hate programming.
Not all students will have the motivation and/or desire to become coders; and that’s not necessarily a bad thing. If you want to teach students to ‘think like a programmer,’ teach them how to create mathematical models, teach them how algorithms work in a practical (ie non-mathematical/non-code) format. Then — and only then — start practicing practical application in code.
We’ve already done this at ERS. In ‘Your Impact’ we used data gathering and statistical analysis to model human impact on the environment. In ‘Catapults’ we started by learning how to triangulate measurements, measure gravity, and measure muzzle velocity, we started out small and scaled up our designs to match the expectations of our mathematical models.
I’m asking sincerely, for the sake of current and future ERS students. Resist the urge to align with naive political interests. Try to be intentional about your approach lest you unintentionally extinguish their interest before it can fully take root.
Pingback: Follow the Yellow Brick Road to Eagle Rock’s Take on ‘The Wiz’ - Eagle Rock Blog
Pingback: One Eagle Rock School Instructor’s Philosophy on Education - Eagle Rock Blog