Home Computing Teaching Bushcraft Games Writing About
Sabbatical Update 1
I'm currently on sabbatical and have been deeply immersed in professional development and research. I intend to post these updates about once a month, sharing interesting learnings.
Connections and collaborations
The ACM is the Association of Computing Machinery. It’s the world's largest educational and scientific computing society.
I’ve been reading, parsing and communicating with members of SIGCSE - the ACM’s special interest group for computer science education. This learning has been deeply satisfying. I look forward to summarizing and presenting “best practices of K-12 computing education”. Needless to say, ChatGPT, AI, and large language models have captured the attention of this community.
Core learning tools
Moving on to the classroom tools, I've been focusing on making Git and Visual Studio Code (VSCode) more accessible for our students. VScode is a code editor and Git is the industry standard version control system that helps keep track of changes in code amongst many people. With the new materials I’ve developed, I'm confident our students will be committing and pushing code like they were born to do it - and be better prepared to work with modern tools in University and the real-world. I should also mention Git is a superb platform to use as a portfolio of student work and learning.
Working with the IB
As for my collaboration with the International Baccalaureate (IB), I'm still deeply involved in fine-tuning the new computer science curriculum. While I can't spill all the beans just yet, I'm eagerly awaiting the day I can share these substantial updates with you.
A personal update. We’ve added a new member to our household: Obi-Wan, a 9-week-old chocolate Labrador. He’s both a delight and a handful, keeping me active when I’m not buried in research or code. He’s snoring at my feet as I write this; a little bundle of love.
The next big chunk of learning for me is machine learning, artificial intelligence, and building a large language model that can run locally at my school (does not need an internet connection to work). The discussions I’ve seen at every level of the IB, ACM, and in the popular press has reinforced in me the need to capture and use this technology effectively for our benefit. Lot’s more to say about this.
The future of high school computing
Large language models like ChatGPT mandate we change the way we approach high school computing.
This article will discuss the importance of differentiation between software engineering and computer science in secondary (high school) educational settings and the impact of large language models on the former. Without correct understanding of computing, we can't fully appreciate how LLM's change it.
In the 2020 Computing Curricula recommendation, the Association for Computing Machinery (ACM) states that within the domain of computing, there are five primary disciplines. The reason it is important to understand this is because while there are some shared characteristics between these disciplines, they are different enough to be taught as distinct disciplines.
- Computer Engineering (CE)
- Computer Science (CS)
- Information Systems (IS)
- Information Technology (IT)
- Software Engineering (SE)
To acquire a deeper comprehension and appreciation of these disciplines' distinctions and interconnections, please refer to the following documents:
- Overview of Computing Fields
- Field Characteristics
- ACM 2020 Computing Curricula Recommendations
For some more serious approachesThere is a lot of noise and hype around AI in education - I tried to find respected institutional research to help frame LLM's within education. to AI in education research, please refer to the articles below:
- Artificial Intelligence and the Future of Teaching and Learning
- Artificial intelligence and the Futures of Learning
- The Position of Artificial Intelligence in the Future of Education: An Overview
High schools (and even some universities) often blur the lines between software engineering and computer science, using these terms interchangeably and without recognizing their essential distinctions When your students are applying to university please - I'm begging you - insist they read the actual courses they will be taking. . This conflation creates an ambiguous academic journey for students entering the computing field. While there is some overlap between the disciplines, clearly defined tracks are important in guiding students along the right trajectory.
In numerous educational institutions, students are exposed to programming (akin to software engineering), robotics (related to computer engineering), and occasionally resource management and abstract data structures (pertaining to computer science). Often, the overarching terms used for this education are "computer science", "technology" or "computers".
To make the distinction clearer and prepare students for the evolving world of computing, it is essential to design two distinct tracks within high school computing:
Track 1: Software Engineering
The significance of this track stems from the transformative impact large language models (LLMs) like ChatGPT have on problem-solving through programming. Students should be taught the fundamental coding concepts such as variables, control structures, and data structures. However, they must also learn to harness the power of LLMs in solving problems. By integrating LLMs, students can explore innovative ways to create solutions. Essentially, software engineering should focus on basic programming, computational thinking, and the astute utilization of LLMs. I include tools like co-pilot, tabnine, and YouCompleteMe, which use LLM-like technology to vastly improve programming output.
Track 2: Computer Science
The second track should concentrate on the foundational aspects of computer science. This encompasses theoretical data structures, advanced mathematics, and computing theories. The core areas of study within Computer Science include artificial intelligence, computer systems and networks, security, database systems, human-computer interaction, vision and graphics, numerical analysis, programming languages, software engineering, bioinformatics, and the theory of computing.
With the advent of LLMs, it is imperative for the education system to adapt and prepare students for the dynamic computing landscape. While LLMs present extensive possibilities for problem-solving, it is also crucial to nurture the next generation of computer scientists who will forge cutting-edge tools. Equipping students with the right skills and knowledge will be an important differentiator for students entering college and universities.This article was supported with the use of chatGPT. I used the prompt "please provide your opinion on this article" and then I pasted in the article.
Project management tools
What a mess. Pricing models are all wrong. Trello seems to have the most common sense...
The best advice I've heard about project management tools is they should help you manage your projects, and stay out of the way for everything else. I'm sure there is some witty corollary here...That is, the extent to which a project management system is useful is directly linked to how well it does that one job it should do.
I investigated several project management tools, first opting for locally hosted, open-source projects (my preferred solutions for most problems). I got open project working, but the UI felt sludgy / kludgy. I then joined monday.com and love the UI / ease-of-use but their pricing model doesn't accommodate 1 single user. There is a minimum for three person teams - which is expensive.
I settled on Trello. Which has everything I want and a pricing model I like.
My project management plan for my sabbatical is on Trello.
Customers will only buy your product if they believe that the value they’re receiving is greater than the price they’re paying; otherwise, why would they pay?
A rare and welcome opportunity to deeply recharge, learn and reflect...
Next year (school year 2023 - 2024) I will taking a sabbatical (proposal here).
14 years at my current school (American School of Warsaw), 22 years in education = time for some reflection and a recharge. Many of the technical skills I use and teach every day I first learned more than 20 years ago. Technical languages, software development practices, and development tooling has changed quite a bit in the last 20 years! With the rise of large language models and their ilk, it looks like the next 20 years will be even more interesting. I don't think the practice of teaching has changed as rapidly as technology but it also has benefited from years of researchI wonder how much has changed about imparting knoweldge, skills, and lessons in the last 20 years....
Other than technical upskill / refresh I am also looking for some time for deep reflection. I am a fan of a book by Daniel Kahneman, Thinking Fast & Slow. Taking the time to consider and thoughtfully and deliberately act is wise. I still feel quite full of motivation, ambition and drive. But at 53 years old, I'd like to move deliberately and maximize meaningful impact.
By three methods we may learn wisdom: First, by reflection, which is noblest; Second, by imitation, which is easiest; and third by experience, which is the bitterest.
A mostly terrible time
On being a parent to a teenager...
Being a parent brings the greatest joys and deepest pain. Recently our teenager has been struggling with things many teenagers struggle with On a good day being a teenager is hard... and it's just painful to see someone you love struggle. At the same time I appreciate and value struggle; some things you just need to learn the hard way. I suppose at that moment, just showing up and loving you kid is the best you can do. My instinct is to protect, prevent, and cover my daughter from pain and painful experiences. But in that difficulty arises strength and courage; and it is something each of us must find ourselves.
If your goal is to avoid pain and escape suffering, I would not advise you to seek higher levels of consciousness or spiritual evolution. First, you cannot achieve them without suffering, and second, insofar as you do achieve them, you are likely to be called on to serve in ways more painful to you, or at least demanding of you, than you can now imagine. Then why desire to evolve at all, you may ask. If you ask this question, perhaps you do not know enough of joy.
The latest curiosities, projects, and workings. This is a semi-regular update of things I am currently working on / learning about / curious about...
- Laravel - I'm writing a crm-type-app for small business folksThis is really about learning Laravel and that ecosystem.
- Wargaming for better decision making - I'm finding a group
- I moved all web stuff to a dedicated web server, sill loving Linode pretty hard
- Getting sabbatical plans finalized
- Changed CSS of my site using Edward tufte-inspired CSS. That man is one of my heroes.
- Grading and marking papers - my students hand-write most of their stuff, and it takes a long time to process this
- Secret Projects A, B and C
- Helping mom get organized to move to a new place
- Desigining a "tank-identification party" with my friends
Success usually comes to those who are too busy to be looking for it.
Setting up a dedicated email server, capable of sending and receiving email on behalf of other domains is not easy for those not accustomed to such matters...
I've been wrestling with postifx, MX records, DMARC and other such nonsense lately. Oh, the pull to simply pay someone to do the work for me is great! However I am determined to setup a dedicated email server for all my various domains. This learning is not easy and requires effort. I meet failure often, in fact we are becoming rather good friends over this whole thing.You know, THAT kind of friend.
However, in each unsuccessful attempt I learn something new, and my goal of owning the system remains clear. I really understand how main.cf works, I really see how messages are routed. I learn the guts of /var/log/mail.log I'm learning, and if you don't mind me saying, I love it.
The English language . . . becomes ugly and inaccurate because our thoughts are foolish, but the slovenliness of our language makes it easier for us to have foolish thoughts.
Steady and true. Steady and true?
Being brave and being brave. Doing the right thing. The whole nonsense of "the greater good" for the greater good - which, to be honest, is for the greater good. A sisyphean task; should we surrender to the wants of others or live in the self-centeredness of our own ego?
The answer lay in the wise words of Ken Wilber
I think he's wise.
who posited the truth of things is in both the ascendent and the descendant. That is; to shun the descendent in the name of godly virtue is an error. But also, to practice gaia Sex Magik without abandon is also an error. That balance seems a prescription best filled regularly.
Dedicated servers for dedicated things
I use a couple of VPS providers for Digital Bill. I'm learning with the flexibility and affordability of a VPS it makes sense to dedicate one server for one task. Read on for more...
I run a web server and an email server (MTA, MUA and MSA) on one virtual machine. I have learned this is probably a mistake. I'm slowly changing my setup so I have one server do one thing; an email server should just do email. A web server should just do web stuff. The problem is the more services running on a server, there seems to be a disproportionate rise in complexity when an issue emerges. I would imagine for an experienced and seasoned system administrator, this is obvious. But I am learning, and curious, and always exploring things. Today that's what I've learned.
Different than oop? Read on...
I've learned about the Entity-Component-System (ECS)
Obligatory chatGPT / wikipedia definition: ECS is a pattern for game development that provides a way to organize and structure game logic. It is a way of designing games that separates the data (components) and behavior (systems) of entities.
In an ECS, entities are objects in the game, such as characters or enemies. Components are data structures that define the properties and attributes of an entity, such as its position, health, or sprite. Systems are responsible for updating and manipulating the components of entities.
The separation of data and behavior in an ECS allows for more flexible and modular game development, as it is easier to add or change components and systems without affecting the rest of the code. It also allows for better performance and scalability, as systems can be optimized for processing specific types of components.
Overall, the ECS pattern provides a clean and efficient way to structure game logic, making it a popular choice for game development, especially for large and complex games.
Entity Component System (ECS) is a software architectural pattern mostly used in video game development for the representation of game world objects. An ECS comprises entities composed from components of data, with systems which operate on entities' components.
ECS follows the principle of composition over inheritance, meaning that every entity is defined not by a type hierarchy, but by the components that are associated with it. Systems act globally over all entities which have the required components.
Entity: An entity represents a general-purpose object. In a game engine context, for example, every coarse game object is represented as an entity. Usually, it only consists of a unique id. Implementations typically use a plain integer for this.
Component: A component labels an entity as possessing a particular aspect, and holds the data needed to model that aspect. For example, every game object that can take damage might have a Health component associated with its entity. Implementations typically use structs, classes, or associative arrays.
System: A system is a process which acts on all entities with the desired components. For example, a physics system may query for entities having mass, velocity and position components, and iterate over the results doing physics calculations on the sets of components for each entity.
The behavior of an entity can be changed at runtime by systems that add, remove or modify components. This eliminates the ambiguity problems of deep and wide inheritance hierarchies often found in Object Oriented Programming techniques that are difficult to understand, maintain, and extend. Common ECS approaches are highly compatible with, and are often combined with, data-oriented design techniques. Data for all instances of a component are commonly stored together in physical memory, enabling efficient memory access for systems which operate over many entities.
Need a procedurally generated country?
Every once in a while one of my students hits the ball out of the park...
Not much sure how much better you could do than this:
DEIJ - part one
Obligatory chatGPT reference:
Diversity refers to the variety of differences among individuals within a group or population. This can include differences in race, ethnicity, gender, sexual orientation, socioeconomic status, age, physical abilities, religious beliefs, political beliefs, or other ideologies. Diversity can also include differences in personal experiences, values, and perspectives. The goal of diversity is to create an inclusive environment that recognizes, respects, and leverages these differences to create a more equitable and equitable society.
Within this lay extraordinary scope. I've always thought to measure & evaluate each person equally, irregardless of their gender, sexuxal orientation, race, SES, age, etc... The truth is I've met truly beautiful human beings from every corner of life, and the obverse is also true.
I believe to know someone, that is, who someone is takes time. That careful measure and often conversation and time are required to know someone. That the enemy of truth is haste. That a glimpse does give us perspective. That when I rush to judgement, when I hurry to act I often err. This is why the slow work movement appeals to me so; as a seeker of truth, it takes time.
There can be parts of someone I love and parts I don't care for. That nuance, discernment and careful thinking can find a person.
What could be more diverse than all of us?
Current thinking about chatGPT
How should a high school computing teacher use chatGPT?
- Ensure students understand the technical boundaries
- Teach students to ask precise questions (with follow-up questions if necessary)
- Teach students to evaluate answers
- As teachers we should encourage students to ask all questions via a text interface (so we can capture questions) and fine-tune the model to reply. The goal is to have a "reasonably good" assistant that can support students as they work through content required by the syllabus. The input for questions should be textual / copy-paste / and spoken word.
Writing a report card comment generator
Saving time whilst providing accurate information about a students progress isn't easy, but certainly worth it...
I wrote a report card generator. The GitHub repo is here. It's version 0.1 but I used it and it saved me some time. There are many things to add and edit, but perfection is the enemy of good (I'm not sure I got that quote right).
I'm hoping to eventually offer it as a web service for students and parents to use so we can co-create a story about student learning.
Multiple versions of PHP on the same web server
looks like a job for PHP-FPM...
For better or worse I administer my own web server / web-services. I actually quite enjoy this, but I'm not a professional, which means sometimes I learn things the hard way, and sometimes I make mistakes. I recently installed an invoicing system, which needed PHP 8.1+. Most of my web applications run on 7.4, specifically mediawiki. I would prefer it if everything was on 8.1 and I'm slowly getting there.
I learned about a nifty new tech PHP-FPM, which enables (among other things) multiple versions of PHP on a per-site basis. Which is cool. The end goal is to (of course) use only one version of PHP but for now I am enjoying the tinkering.
I've decided to take part in #dungeon23, a distracting and fun project to build a little bit of a dungeon everyday. But I've decided to approach it a bit differently...
As I am a fan of procedurally generated content (and making procedurally generated content), I've decided to build different systems and eventually combine them so people can have rich, varied and different dungeons and settings. The link to the github repository is here. I'm following a basic schedule here:
• Sunday — Settlement description, a village or a town. Could also be a bandit camp if that strikes your fancy
• Monday — Environment description. Think the local weather, geology, flora and fauna
• Tuesday — More in-depth settlement description
• Wednesday — Culture description of something fun or interesting about the local people. Something to make them stand out
• Thursday — NPC description, someone important or interesting on the island
• Friday — Faction description of either a new or existing faction. Be sure to make ties between factions and peoples
• Saturday — A rumour about something from the past week
Mastering uncertainty: A predictive processing
Why do we seek out and enjoy uncertain success in playing games? Game designers and researchers suggest that games whose challenges match player skills afford engaging experiences of achievement, competence, or effectance—of doing well...
Yet, current models struggle to explain why such balanced challenges best afford these experiences and do not straightforwardly account for the appeal of high- and low-challenge game genres like Idle and Soulslike games. In this article, we show that Predictive Processing (PP) provides a coherent formal cognitive framework which can explain the fun in tackling game challenges with uncertain success as the dynamic process of reducing uncertainty surprisingly efficiently. In gameplay as elsewhere, people enjoy doing better than expected, which can track learning progress. In different forms, balanced, Idle, and Soulslike games alike afford regular accelerations of uncertainty reduction. We argue that this model also aligns with a popular practitioner model, Raph Koster’s Theory of Fun for Game Design, and can unify currently differentially modelled gameplay motives around competence and curiosity.
Full article (locally hosted) here.
Linked article here.
A warm day, the last day of 2022 and that magic of nature...
Walking along the embankment of the Wisla; unseasonably warm weather and yet the unmistakable signs of winter. In the distance you can see the Wistula river.
There is a bear with a reputation for being strong and intimidating, but something is wrong...
The bear had verifiable reports of Great Deeds. The bear had big muscles, and was physically huge. At one point, the bear's territory was massive; entire nations lived under his rule. He had untold and unimaginable riches. His music, song, and dance were elevated to the highest places. His science and industry were potent.
All of this led to great pride for the bear. He would rightly walk with his head high and his chest out. He could exercise influence. He could will something and make it happen. Smart, strong, and competent minions worked hard to actualize the bear's goals. People feared the bear, and this was his source of power and control over many people. Some people respected the bear, some people (comfortable and warm) ignored the bear.
But somewhere, along the way, perhaps as he became old, the bear became sick. So enamored with his power and past, he didn't support and make ready young leaders to replace him. He didn't adapt or change. He fought wars that had no business being fought. He fell into his cave; afraid of losing his power?
He could be great, of course, but he isn't, anymore.
setting up a podcast
Is a lot of work. But...
In the myriad choices and sea of information we are forced to clarify greatly our goals, objectives and ideas. This process of clarification is truly wonderful.
On coming together and being in connection...
Celebrating Christmas, giving and getting gifts, connecting with family, listening to music, eating food, and appreciating the holiday season. The best I can do is to describe the area around Christmas; the outline of a shape that has none. The coming together.
Building an LMS (or virtual learning experience) - part 3 of 3
Setting up high quality digital resources takes a long time, but once we've set it up, it provides value for a long time.
My first moodle course is almost complete, introduction to programming languages. This has been a long process, but in the daily editing and revision I am pleased with the overall outcome. I'm sure more activities and resources will be added as students provide feedback, but now this course is "ready enough" for learning. I set up a badge for students to earn when they are done, and I have three assessments students must complete to demonstrate they understand this material at the right level.
I continually read how important building community is for online courses. I want this course to be as self-directed as possible, but I get how automated assessment misses subtle and nuanced points about the topic. Building this course has helped me focus on what I want the learning experience to be like; I suspect I will use this course in conjunction with my day-to-day teaching - but I want it structured so virtual students can derive maximum value from it.
The good news is the first course is the most difficult (time intensive). But once created, I can re-use elements in other courses. And of course, once I create a digital asset, I can reuse (embed) it in other courses and other digital spaces.
Building an LMS (or virtual learning experience) - part 2 of 3
On the importance of H5P...
H5P is a plugin for existing publishing systems that enables the system to create interactive content like Interactive Videos, Presentations, Games, Quizzes and more. The problem with formal and structured learning on the internet is that it remains mostly read-only (or watch-only, or listen-only). H5P helps to solve this by enabling interactive assessment for almost any content. Please click here for many interactive examples.
This is a huge deal, but it wasn't until moodle and other LMS's incorporated H5P that teachers could track assessment for digital learning. This means the kind of learning students can experience and the kind of assessment data a teacher can have are exceptional. No longer do we just "watch a youtube and discuss" but we can add assessment and track that assessment for different topics.
H5P helps us help students evaluate their understanding of a topic.
Building an LMS (or virtual learning experience) - part 1 of 3
It's not about the technology, it's about the learning...
This is an entreatment I have oft repeated; focus on the verbs around learning rather than the nouns of technology. As I rebuild a virtual learning experience I am asking myself "How can I make this best for my students"
I'm building out some moodle courses - my hope is my students will be use this resource to independently learn about different topics within high school computing. I curate material for them and ask them to learn it. But the key differentiator here is assessment. Anyone can watch a video, but to what extent do they understand it? By using forums, H5P assessment, and built-in moodle quizzes I can evaluate student understanding (and students can evaluate their understandings). I'm still looking for a way to embed jupyter notebooks and auto-graders for code.
...but whatever plugins and features I include all need to direct learning toward encouraging student interaction and collaboration, providing support and resources, and organizing content and activities.
The key points here are:
- Have clear learning goals: It's important to have a clear understanding of the learning goals and objectives for the virtual learning experience, and to design the experience around those goals. This might involve creating a lesson plan or course outline that outlines the topics and activities for each unit or module.
- Use a variety of teaching methods: Virtual learning requires a different approach than in-person teaching, so it's important to use a variety of teaching methods to keep students engaged. This might involve using video lectures, interactive activities, and small group discussions.
I have to think "to what extent will this course be an independent learning experience"?
Giving students as much of a choice as possible is important, freeing me to focus on helping my students to solve problems - where there is the biggest bang for the buck for my students.
Displaying courses in grid format on moodle homepage
After much searching I was lucky to get a helpful reply from a friendly moodler. Read on...
On the front page of moodle when using the boost theme, there is a linear list of courses. If you want a grid of courses, you can use the suggestion from here, a plugin named filter codes. I tested this on moodle version 4.1 and it works perfectly.
just trying to make it to vacation…
With two days left until christmas vacation, we are all trying to get to the end of the week with grace, humour, and high-energy
Sadly, I have little of all of it. Many of my students are sick, and my energy levels are quite low. Ugh.
Procedural fantasy weapon generator
If you ever needed to procedurally generate a fantasy weapon with a history, backstory and special abilities, here's your code!
Here is the file on github, enjoy. I had quite bit of fun making this. Here's some sample output:
Long ago, during the age of Destruction, Gnomish smiths forged Yosyur Wargebas's exquisite crossbow. The wood on this weapon is constructed in a spiral-shaped combination of dark wood and exotic wood, it is clear careful and extraordinary craftmanship went into the creation. This weapon is a masterpiece of craftsmanship, and is a veritable work of art. You have +2 on any rolls to pick up romantic partners while holding this weapon. This weapon is sentient. Moving your hand near it, you can feel a vague sense of neutral uncertainty. For 30 years, this weapon was used as a table ornament in the modest home of Prince Fumbledick, who was unaware of its importance.
Long ago, during the age of Light, Dwarven smiths forged Vosgrolin Bloodshield's flaming scimitar. Elegantly crafted in a spiral-shaped combination of semi-precious gems and rare metals, it is clear careful and extraordinary craftmanship went into the creation. This weapon is aflame, and does 4d6 fire damage. This weapon is sentient. Moving your hand near it, you can feel a vague sense of neutral pessimisticness. This weapon was once stolen by a goblin. When the litch who owned the weapon found the goblin, he punished the goblin severely, which is why goblin soup is now a popular dish amongst evil wizards and litches.
Long ago, during the age of Doom, Dwarven smiths forged Erirnoick Orehead's exquisite whip. Elegantly crafted in a helix-shaped combination of rare stone and semi-precious gems, it is clear careful and extraordinary craftmanship went into the creation. This weapon is a masterpiece of craftsmanship, and is a veritable work of art. You have +2 on any rolls to pick up romantic partners while holding this weapon. This weapon is sentient. Moving your hand near it, you can feel a vague sense of unaligned uncertainty. This weapon was once wielded by a young Kawian apprentice, who later became a fearsome warrior.
As far as dinners go,
An hour drive through the first real snowstorm, a spectacular meal, two young effervescent boys, a fire in the backyard amidst the blowing snow, wonderful company and engaging conversation...
We enjoyed a wonderful social connection with friends last evening; a warm home - good food and soup on a cold night. There was much to discuss, and we covered many topics. Ostensibly we were there for the 5th birthday party of one of the boys but really, just to see friends.
After the soup and food, after the fire outside in the snow, after the conversation - with our daughter asleep in the back seat of our car, I just felt...so filled...
Good company does a body good, indeed.
chatGPT part 3: how do I know you know?
Out-of-school coding assignments are no longer as important as being able to understand the code. The return of oral exams?
As a computing teacher I use standard written assessments with my students. Questions include different assessment objectives such as "state", "describe" and "explain". I also use small code problems where students must solve a problem and write an answer in pseudocode. There is an internal assessment that students write; worth 25% of their final grade students must solve a problem for a real client. This is mostly independent, and a place where students could use outside tutors to solve a problem.
For any work outside of class, I will add oral component to the assessment.
According to chatGPT,
Some key steps for structuring an oral exam for computer science include:
- Determine the goals and objectives of the exam: The first step in structuring an oral exam for computer science is to clearly define the goals and objectives of the exam. This will help to ensure that the exam is focused and that it effectively evaluates the student's knowledge and understanding of the material.
- Identify the key topics and concepts to be covered: Once you have determined the goals of the exam, you can identify the key topics and concepts that will be covered. This could include specific programming languages, algorithms, data structures, or key theories or ideas in computer science.
- Create a structured format for the exam: To ensure that the exam is well-organized and focused, it's important to create a structured format for the exam. This could involve dividing the exam into different sections, each focused on a specific topic or concept, or using a specific format (e.g. Q&A, presentation, problem-solving) to evaluate the student's knowledge.
- Develop a list of questions: The next step is to develop a list of questions that will be used during the exam. These should be focused on the key topics and concepts covered in the exam, and should be designed to evaluate the student's knowledge and understanding of the material.
- Plan for student evaluation and feedback: Finally, it's important to plan for student evaluation and feedback. This could involve using a grading rubric to evaluate the student's performance, providing written or verbal feedback to the student, or allowing the student to ask questions or provide feedback on their own performance.
Overall, the best way to structure an oral exam for computer science is to carefully plan and organize the exam, focusing on the goals and objectives of the exam and the key topics and concepts that will be covered. By following these steps, you can create an effective oral exam that effectively evaluates the student's knowledge and understanding of the material.
chatGPT part 2: how we change our teaching and student learning
A high school student asks, "what will I do for work with chatGPT around?"
My seniors students have discovered chatGPT. They (like me) were stunned when they saw it. One student asked me why they should study software engineering when there is a tool like this.
I agree, this tool changes things, but while it can provide snippets of code, I don't think it can write whole systems with various input, processing and output. Much like visual studio code copiliot, I see systems like chatGPT offering support for experienced programmers.
The key thing is evaluation. How will we know the answers we get from chatGPT (and copilot) are correct? I spoke with our school director, always intellectually curious, who suggested teachers ask students to evaluate a reply given by chatGPT. I think this is where we need to be in relation to chatGPT: a smart assistant who needs to be watched carefully.
That being said, it looks like intelligent agents are going to become better (much better) at being assistants. This seems to be a plausible near-term future.
Our job is to teach our students well enough so they can evaluate / analyze the output to determine if the solution is correct / best fit for the problem they are trying to solve.
chatGPT: teaching computing
What is the answer when asking an AI to please describe the most effective techniques and methods of teaching high school computer science?
There is no one-size-fits-all answer to this question, as the most effective teaching methods will depend on the specific goals and objectives of your course, the abilities and needs of your students, and the resources and materials available to you. However, there are some general principles and best practices that can help you create an effective and engaging learning environment for your students.
First, it's important to create a clear and organized syllabus that outlines the goals and objectives of your course, as well as the specific topics and concepts that your students will be learning. This will help your students understand what they can expect from the course and how they can prepare for success.
Next, it's important to use a variety of teaching methods to engage and motivate your students. This can include interactive lectures, discussions, hands-on activities, and group work. Using a variety of teaching methods can help keep your students engaged and interested in the material, and can also help students with different learning styles to succeed.
It's also important to incorporate real-world examples and applications into your teaching, to help students understand how the concepts and skills they are learning can be applied in the real world. This can help make the material more relevant and meaningful to your students, and can also help to motivate and inspire them.
Finally, it's important to provide regular feedback and support to your students, to help them understand where they are succeeding and where they may need to improve. This can include providing individualized feedback on assignments and exams, as well as offering extra help and support outside of class. Providing this kind of support can help your students feel confident and supported in their learning, which can in turn help them to succeed in your course.
Overall, the most effective techniques and methods for teaching high school computer science will depend on your specific goals and objectives, as well as the abilities and needs of your students. By using a variety of teaching methods, incorporating real-world examples and applications, and providing regular feedback and support, you can create an effective and engaging learning environment for your students.
Yea, about that.
Sabbatical learning - part 2
How to best set the stage for new learning?
Part 1 here. With a sabbatical scheduled for next year, I am excited and anticipating some good work to be completed. Being able to coalesce many years of experience to renew learning engagements and refresh my understanding strikes me as a golden time.
I am not only going to work on "professional Bill" but I will also attend to "personal Bill", where I intend to:
- focus on exercise, diet and mindfulness
- focus on my garden and backyard - long neglected
- focus on hobbies
- focus on friends
I will be reaching out to friends who have taken sabbaticals to learn from them; what they did well, what they didn't do well. I don't intend my learning to stop, but this might be the last time I have for long-term break until I retire.
I can't wait!
As I prepare for my sabbatical I am building mountains of curiosities and interests. "I wonder how XYZ" works. Why is XYZ like that". These types of wonderings prime the pump for engagement and interest in the work ahead.
Coming together and eating
So simple, so profound and so togethering. How eating together brings us together...
When I was earning my superintendents license in NYC my supervising administrator instilled a simple truth: feed your people. This resonated and resonates with me as a highly effective means of creating bonds, trust and connection. We just had Thanksgiving yesterday and I was struck how simple it is; good food, relaxed atmosphere, and people ...just connect... There is quite a bit more to leadership, but feeding people carries with it a physical and metaphorical benefit I really love.
I think there is a certain vulnerability and assurance when we eat - something so basic - I don't know why food doesn't figure more prominently in our day-to-day meetings.
Enjoying the moment
Cooking large meals can be fraught with anxiety. Here's how I battle it
Nothing especially tricky here. We've 14 people coming over for a slightly delayed thanksgiving, and today is the big day!
- We spent time to carefully plan what, when and how of the meal prep
- We pre-cooked the creamed spinach yesterday
- We got some things ordered via caterer (pies and a green salad)
- We've already started setting the table a day prior
Other than that, honestly engaging with "what's the worst thing that could happen" is a fun way to manage anxiety around large meals, and I find myself relaxing through meal preparation and enjoying the process of cooking (and preparing food for people I love).
A quote from the Joy of Cooking:
We can offer reasoned counsels and repeat the lessons of experience and tradition, but the truth is that if the table is attractive and clean, the food and drink honest and good, the company amiable and interesting, and the host generous and calm, an affair can be a resounding success no matter where the glasses go or who is sitting where. And that is our last word on entertaining.
Sabbatical learning - part 1
The plan for learning
If a good replacement can be found, I'm approved for sabbatical leave next year. My plan for learning includes:
- Design and construct curriculum to substantially improve student usage of git (a version control system) and the IDE visual studio code
- Design and construct curriculum for OOP Python
- Design and construct curriculum for advanced Python
- Design and construct curriculum using Jupyter notebook
- Design and construct curriculum for artificial intelligence / machine learning / advanced topics
- Rebuild every learning engagement and assessment in the two year IB computer science course (this is hundreds of learning engagements and 30+ assessments)
- Design and construct curriculum for Rust
I'm already doing some of this stuff, but this sabbatical will help me by granting me the time to invest deeply in learning and reflection. Exciting stuff.
Truly a wonderful learning opportunity...
This weekend, we are immersed in a Lego robotics competition. Students and coaches have come from other international schools to compete in a robotics challenge. The nature of the challenge is to program a robot to perform different manipulative tasks of various difficulties (within 2 minutes and 30 seconds). For example student robots need to push the red section of the windmill.
This will then trigger a different piece to fall, which must be collected for different points. The cool thing about this project is how many different times student-groups can attempt these challenges. It's ultimate design in my opinion, where a student will try / fail / try / fail many different times. This constant cycle of iteration is really at the heart of learning, construction and design - and is just such good stuff.
Procedural generation as a teaching approach
In computing, procedural generation is a method of creating data algorithmically as opposed to manually, typically through a combination of human-generated assets and algorithms coupled with computer-generated randomness and processing power (ref).
The amazing thing about procedural generation is that infinite unique possibilities can be created with little work from humans (ref). I've been interested in procedural for a few years, and would encourage you to take a peek at the following resources to learn about procedural generation:
- This is an excellent introductory article
- Dwarf Fortress (an incredibly complex game that is largely procedurally generated)
- No Man's Sky (this a wiki article describing how procedural generation works)
What is cool about procedural generation is how easy it is to start with procedural generation. In the example code below, we can get the following output:
- Discovered in the small village of Tr'lor
- Hatched in the ocean of Greenest
- Born in the small village of Mirkwood
# procedural generator to write a brief history
origin_1 = ["Born", "Hatched", "Invoked", "Discovered"]
origin_2 = ["in the land of", "in the wilds of", "in the forest of", "in the ocean of", "in the small village of", "in the modest hamlet of"]
origin_3 = ["Tr'lor", "Kor'mer", "Kobiyashi", "Greenest", "Mordora", "Gondor'e", "Rivendell", "Mirkwood"]
story_part_1 = random.choice (origin_1) + " " + random.choice(origin_2) + " " + random.choice(origin_3)
I have some students working at high levels of complexity and other students working with more basic levels, as seen above. But for all of them, this is a fun approach to deconstructing a complex system, identifying the patterns within the system, and introducing the correct randomness to the system to make it unique.
Procedural generation gets us close to modeling and simulation where a student must understand a system in order to create a model of it. In my opinion, modeling and simulation is close to the the very best learning we can get.
Procedural generation goes into the stratosphere when students apply machine learning to highly complex systems.
update from Poland
A Russian missile strike in Poland...
Welcome to the occasional update for the academic year 2022 - 2023. I’ve lived and worked in Warsaw for almost thirteen years and these are my perspectives about current events in Poland.
We learned yesterday (Tuesday) there was a Russian missile strike in Poland. The village is located less than 10 km from the Polish-Ukrainian border. It is inhabited by about 500 people, 2 people have died.
There is much we don't know but we know the missile was russian-made, and it exploded in Poland.
According to Polish press, General Waldemar Skrzypczak stated:
It was probably hit by Ukrainian anti-aircraft weapons and misaligned, or it was misprogrammed and, as a result of various errors, went where it saw a different target. Or she got lost and flew until she ran out of fuel, the general estimates.
(almost all words in Polish have a gender associated with them, hence the word she)
To say the least, things are a bit tense in this area of the world. IF this is an attack, this would trigger article 5, which states:
“The Parties agree that an armed attack against one or more of them in Europe or North America shall be considered an attack against them all and consequently they agree that, if such an armed attack occurs, each of them, in exercise of the right of individual or collective self-defence recognized by Article 51 of the Charter of the United Nations, will assist the Party or Parties so attacked by taking forthwith, individually and in concert with the other Parties, such action as it deems necessary, including the use of armed force, to restore and maintain the security of the North Atlantic area.
This is essentially Poland asking for formal help from the alliance, and falls under a key NATO idea “an attack on one of us is an attack on all of us”. Many things to unpack here:
- Russia is losing the war Ukraine. badly.
- Russia's military has been pushed back to pre-February 24 borders, and the Ukrainian military has made stunning gains. If you are interested in non-political reading of the war, I cannot recommend understandingwar.com highly enough.
- Napoleon famously quipped: Never interrupt your enemy whilst he is in the midst of making a mistake. Putin is making a doozy.
- …but there's still a war…
- missile attacks continue, and just yesterday there were more attacks on Kiev, and Russia fired over 100 missiles.
- Following a pattern in recent weeks of lashing out far from the front after battlefield losses, Russia fired long range strikes at the capital Kiev, where air raid sirens rang out, two explosions were heard and columns of smoke rose into the sky. The mayor of Kiev said Russian missiles hit two residential buildings (ref).
- Russia made an uncharacteristically rational decisions by retreating from Kherson
- Russian military action has been irrational, disorganized and remarkably inept.
- The manner in which the Russian military retreated from Kherson was more careful and competent than what they have done in the past
- Since this conflict began weapons, supplies and help have been pouring into Ukraine from Poland
- but the missile hit a grain storage in a tiny village, nowhere near anything of strategic importance
- There are also tens of thousands of American (and NATO) troops / equipment / missile defense in Poland
- Seems to me the last thing Russia wants if to trigger a war with NATO
- Considering their stunning failure in Ukraine, a war with NATO would be unimaginably stupid and result in a catastrophic defeat of the Russian military
- Considering their stunning failure in Ukraine, a war with NATO would be unimaginably stupid and result in a catastrophic defeat of the Russian military
- Please understand: nothing unites the Polish people like an attack
- In Poland, as a rule, there is bickering, complaining and division but when the need arises, the Poles unite at remarkable speed and in remarkable solidarity.
- In Poland, as a rule, there is bickering, complaining and division but when the need arises, the Poles unite at remarkable speed and in remarkable solidarity.
We simply pay attention, listen carefully, and get on with our lives as best we can.
Different categories of games in education
Nuance and discernment, baby
I've used three different kinds of games in my classroom.
The purpose of this blog post is to help teachers understand the differences, similarities, and characteristics of the three types of games.
COTS - Commercial, Off the Shelf game. I've covered COTS games for a while. COTS games are designed for the mass market - they are designed for enjoyment, challenge, and fun. COTS games can often cost many millions of dollars to make, and a hit game (AAA title) can generate hundreds of millions of dollars. COTS games are increasingly being released for the personal computer and consoles. COTS games offer:
- High production value (very high quality graphics and sound)
- Low technical problems and very strong technical support
- Strong user communities (fan sites, active forums, etc...)
- Often these games have very active modding communities
- Work on a fairly new machines; older computers (more than 3 years) might have problems.
- Run locally (from the internal hard disk)
- Have exceptionally good gameplay
- Very good tutorials, which check for understanding
- Adjust difficulty based on the players skills
- A game kids want to play at home
Edutaintenment Many teachers are familiar with these titles - Millies Math House, Reader Rabbit, Sammy's Science House The hallmark of these games are kid-friendly graphics with gameplay that follows a "solve these problems and get to the next fun thing to do". Sometimes players are asked to do something like bowl for math problems.
The general feel of the games is really fun math or reading worksheets. These games are fun, and build basic skills. They are valuable and good learning tools. In my context of games in education, these games generally don't fit well. They are a little to oriented to the drilling model (but who says drilling has to be no fun?). Characteristics of edutainment titles:
- Marketed exclusively for schools / education
- Content-specific (titles focusing on math, reading, spelling, foreign language, etc)
- Marketed for specific age or grade levels
- ESRB ratings are often intended for general
- The back-story of the game is minimal
- Gameplay is generally segmented and measured around learning objectives
Serious games Serious games are a relatively new phenomena (although people have been seriously playing games for a long time). Here's wikipedia's view on the matter; I like what they say. I think of serious games a single-topic, highly specific semi-simulations. Serious games have similar profiles:
- They are usually web-based
- They usually have a very specific theme (peace in the mideast, health sim)
- They are not meant to be in-depth simulations, they are meant to model the most important dynamics of a system
- They are short-term games
- They are deliberately designed to teach, explain an issue, or clarify the dynamics of an issue
Of course, playing a game invites a healthy dissociation and leans heavily towards recreation. As much as I have tried over the years to integrate incredible student passion playing games and learning, I have failed.
If you really want cream-of-the-crop, high-level learning with games, ask kids to develop models and simulations. It takes a long time to do this well, but learning is magnificent.
saying goodbye to an idea
This is actually a thing...
After more than 20 years of development, I have shut down moderncommand.com, a text-based game built on pennmush. I haven't touched code on moderncommand.com in more than 10 years. Github repo here.
Modern Command simulates running a contemporary nation-state. You assume the role of a Prime Minister (or President), and make decisions that effect the lives of millions of people in your country.
Technology, social, political, military, and economic issues all reflect events in today's news. You will control and manipulate this world just like real life leaders do; you will issue orders, sway opinions, budget resources, provide a vision and structure for your apt minions to do their work. You will negotiate, order, ask, sign, give, take, listen and talk.
Here's the final announcement. My avatar's name was Boris:
Announcement: Boris shouts, "Thank you, Modern Command."
Announcement: Boris shouts, "you have provided me with many hours and days of escape, enjoyment, and fun"
Announcement: Boris shouts, "it is time for me to move on, but you will always have a special place in my life"
Announcement: Boris shouts, "I am saying goodbye"
Announcement: Boris shouts, "the enjoyment of creating and crafting and making"
Announcement: Boris shouts, "was made possible by you"
Announcement: Boris shouts, "so long, and thanks for all the fish."
GAME: Shutdown by Boris
Going down - Bye
The purpose of this blog post is to reflect on the grief of saying goodbye to an idea. Moderncommand was a dream for me, made real. I suffered a little bit from perfection; waiting until the game was “just right”. But I was proud of the systems I wrote and the time and effort I put in to make a good game.
The game was a dream and it's time to say goodbye - this frees me to embrace other ideas and other stories. But the feelings of grief are real. I think when you have an idea you also have dreams about the idea; what it could be, what life would be like with the idea.
I don't think you can fully move on until you say a proper goodbye.
No peace without balance of power
Personally and politically, this seems like it may be true.
Power is possession of control, authority, or influence over others (source). There are different kinds / types of power, and different contexts with which it exists.
Peace is not the absence of conflict; peace is about a real balance of power between and amongst groups. We cannot negotiate through a position of weakness, but rather strength.
I live in Warsaw, Poland. As the war rages on in the Ukraine I see how power (coalitions of power and alliances of power) can create peace, but only when there is a balance of power - that one group is not dominate over another. For Ukraine, the only path to true peace is to fight. I think this may be true for all of us.
The design cycle works
Considered and deliberate approach to design leads to high quality solutions. The obverse is also true.
My 9th and 10 grade (ages 15 and 16) students are working the design cycle as they solve a problem through programming. The problems are all unique, and fit the student's skill / capacity window. An example of some the projects are below:
|How to find the perfect guitar?||A web-based application to help people find a guitar based on certain criteria|
|Which sport should you play?||A web-based application help people decide what sport they might enjoy|
|Dungeons & Dragons character builder helper||A web-based application to help people build a D&D character|
The students have begun to really think and understand their problem. As they dig into the problems, I note they are changing their success criteria and more carefully adding features based on research into solutions. This process - of inquiry into a problem and understanding the problem deeply - reinforces the power of design.
In education, we talk about transfer learning, where students can transfer learning to novel scenario or situation. A key question I like to ask is:
What do I want my students to know / be able to do in 5 years, 10 years
This kind of approach to solving problems is extraordinarily powerful, and a good thing™ to have in schools. Students who do not attend to this process generally do not have high quality solutions.
Tramping in Kabaty
savoring (and stumbling) through nature.
Went for an early-morning tramp in the woods in the Kabaty woods. Stunning area in the heart of Warsaw with plentiful wildlife and beautiful flora to enjoy. I brought my normal kit with me; my pathfinder canteen with a small folding titanium stove. I had planned for a nice walk and perhaps a stop to make some tea. Instead though, I walked almost all the way to Kabaty; almost 45 minutes one way. It was cold, and I regretted not bringing a small backpack with me; my hands were cold as I carried the canteen.
I saw a beautiful woodpecker, red nose and jet-black body. He didn't want to let me look at him for a long time, so I only caught a brief look. The sound of the other birds singing was serene and beautiful. I saw one, maybe 2 other people during my walk (it was early).
I was wearing my normal hiking boots with normal socks. I wasn't even half-way through my tramp when I recognized the classic sensation of a blister on my right foot. Chastising myself, I thought my shoes were broken in enough to prevent blisters. I suspect the shoes are fine, but a winter of light walking has made my feet a bit thin.
Big learnings: backpacks are best for tramping in the woods, a bit of foot powder and shorter walks are in order to break in my feet for the upcoming camping / bushcraft season. And of course, nothing beats a tramp in the woods.
The original hum
A sound before our mother's heartbeat?
Lithe and moving, lost and ecstatic. There was nothing but the dance. The music flowed through him and he through the music. a perfect connection of sound and movement. He flowed as he flowed, as the music took him, each person did; each with their own call to the sound.
But everyone on the dance floor was lost (and found) in the sound. The descendent; the earth, the ground, the body were triumphant. It was just perfect movement.
It started adequately episcopal.
A Proper Wedding (with People In Formal Attire). A lovely couple, a nice setting. A chuckle and tear as vows were exchanged. Toasts were made. Dinner was enjoyed and some wine was drunk.
(Some wine was drunk, indeed).
And the traditional party favorite songs, and the traditional party dancing, mostly constrained and happy.
It wasn't until a few minutes before the last song. Ties had been discarded, shoes had been cast aside, when it just. simply. started. The beat began and people just became lost in the movement, the moment and the move. Made of red light, a thread emerged on the dace floor and oscillating and the guests just had to follow it; they had the surrender; then came the joy. And then the ecstasy. The bodies began moving and couldn't stop if they wanted. The light from the thread spread out and everyone who was dancing coalesced.
The music and dancing consumed them. And as it consumed it sought ground; with feet, with the earth. In a moment they all knew the first sound. Each person knew the hum. The body. The sound of life.
..and he became, for a moment, fully alive
A wonderful way to learn software engineering
Authentic student projects; choice, choice, choice.
I teach two different courses primarily concerned with software engineering;
- Designing Solutions Through Programming
- Solving Complex Problems Through Programming
In both courses I offer students a choice about what problem they want to solve. As long as the problem isn't too easy or too difficult I approve the project. This creates agency which well-serves my students. I find I get increased engagement, excitement, a sense that students are working a “real” solution which matters. From AMLE:
Student agency relates to ways that students can intentionally influence their own circumstances (Bandura, 2006). Agency can also be defined as a “student’s desire, ability, and power to determine their own course of action” (Vaughn, 2018, p. 63). Agency depends on “intentionality and forethought to derive a course of action and adjust course as needed to reflect one’s identity, competencies, knowledge and skills, mindsets, and values” (Nagaoka et al., 2015, p. 6). These elements suggest areas within which teachers can support student agency: through curriculum, instruction, assessment, and the ways in which they structure learning opportunities (source).
This is though, more difficult to manage. I like to use templates that students can alter and modify to build solutions. We deliberately and carefully learn about each part of a template so students can understand the code, and not just copy-and-paste chunks without understanding how it works.
I plan on writing more about this, but this overall structure, where we teach students how to code, walk them through a template, and then build an authentic application allows them to transfer their learning to build applications and then “think software engineering”.
The two types of forests
How should we think about forests?
As we tramped through kabaty forest I was reminded there are two types of forests; one where man decides how it should look and one where nature decides. This one is the former; the forest is beautiful, but is unmistakably touched by humans in every way. We would ideally like a more diverse forest floor; with evidence of decomposing tree's and a more wild, unkept look. I was taught the average lifecycle for old-growth forests was about 400 years. When man steps in to interrupt that natural cycle it can take a few hundred more years to get back into the natural rhythm.
There is debate about how to best manage forests. There is often discussion about harvesting forests, utilizing them responsibly, or just letting them be. As dead trees decompose, a very specific ecosystem develops; one in which very specific bacteria and insects thrive. These bacteria and insects give rise to a connected ecosystem that continues the growth cycle of the forest, creating topsoil that then in turn nourishes more growth, etc… Old growth forests are increasingly rare in our world, and deserving of every bit of protection we can offer them.
This is one aspect of bushcraft I find appealing; leave no trace, never cut live wood unless absolutely necessary, and to work with nature as opposed to against it. The wild isn't something to be tamed; man's insatiable desire to destroy it is.
The early morning is magic. Quiet, still, and a time to focus prior to the cacophony of the day.
I've always been an early bird. Lately I've been getting up around 4 or 4:30. I get so much work done.
I should clarify: I don't mean work for work. I mean making progress on things I care about. Giving myself time to focus on personal goals and make progress on growing in a way I like.
There is a cost to this of course. Going to bed early I miss time with my wife, who is a bit of an evening starling. We still connect - but I suppose I get my quiet time in the morning and she gets hers in the evening. There's a balance in that.
To the morning, to the start of things, to the time of focus and clear thought, free of interruptions, I salute you.
Letting go / picking up
Sometimes we need to let things go to make room for new ideas.
I have made a list of projects I am letting go. I'm doing this so I have have space / room for new projects and ideas I want to work on. I have feelings of nostalgia and genuine loss as I let go of these older projects, but I am also feeling excited about working on projects I feel have value and interest for me.
So, without any further ado, I'm letting of of the following projects:
- balanced gaming (a site where I wanted to engender a conversation about balanced gaming for schools, parents and students).
- modern command (a text-based game simulating the command of a modern nation-state, powered by the pennMUSH server).
- interactive fiction
I'm picking up:
How do we measure students computational thinking?
This PDF answers the question.
Building a computer science wiki
I've been very busy online lately, just not here 😊 Please do take a look at my computer science wiki. I'm building it for my high school, middle school, and IB students. Once it is filled-out enough, I will probably ask the internet for some help to add to it. Please enjoy, and check out the list of recent changes.
Linux server with lots of students - assigning individual read / write for students in /var/www
I use (and love) linode for my web hosting, email, database, and other linux needs. I'll be using linode for my web applications class next year (about 15 students). I had a problem thinking how would I enable students to write to a web directory (var/www) without giving them all SUDO access (and allowing them to write into another students directory).
This took me some time to find a solution, and it is beautifully simple (of course). Click here to see the thread.
If you make /var/www writeable by its group and add the user to the group, that user will not have to use sudo.
sudo adduser www-data
sudo chown -R www-data:www-data /var/www
sudo chmod -R g+rwX /var/www
The user should then be able to edit /var/www/ files without hassle. The first line adds the user to the www-data group, the second line clears up any files with messed up ownership, and the third makes it so that all users who are members of the www-data group can read and write all files in /var/www. If you are logged in as you need to log out and log back in for the group membership to take effect. I confirm this works.
Six rules for asking questions in computer science
The more complex code is, the longer it takes to understand and debug. If it is poorly written code, a multiplier is added to the time required to read it. I have worked with my students to build a "must do before asking questions" list in computer science.
1. Google your question
2. Re-read your code (or function). It can be helpful to read this backwards
3. Use debugging tools
4. Ask the person next to you
5. Read error messages!
6. If you have to ask a teacher for help, make sure you ask a very specific question about a very specific topic
Great questions get great answers. Bad questions get, well, not-great answers.
Increasing complexity == increasing time to read
I need some advice about a common question: "can you look at my code really quickly"?
I am starting to work on increasingly sophisticated programs with my students. My students ask me to help them diagnose a problem, suggest alternatives, or figure out what is broken in their code.
My problem is reading their code takes time, thinking about what they are doing takes time, and suggesting a good alternative takes time. This isn't something I can do in 30 seconds.
How do you manage student requests for support and assistance when their code is very complex and requires more than 5 or 10 minutes to read?
connecting new learning to learning in the past
Today, I reviewed and refreshed my understanding about objects, and object instantiation.
I have always clearly understood creating, modifying, and deleting objects and their attributes. Today, though, I learned a new term: object literal notation and object constructor.
In my PHP work, I've seen "constructor" term, and truthfully, never fully understood it. After review and practice today, I see how it works.
It's funny, I always "hook" my new learning onto something I learned in the past. In this case, my work building text-based games was instrumental in my understanding of objects. @create foo; @set foo=thing/value, etc...
I have forgotten how much I enjoy /just coding/ and hacking. It is a real pleasure.
Computational thinking, Minecraft and a 5 year old?
According to wikipedia, the primary characteristics of computational thinking are decomposition, data representation, generalization/abstraction, and algorithms.
Specifically, computational thinking is a problem solving framework where: Analyzing and logically organizing data Data modeling, data abstractions, and simulations Formulating problems such that computers may assist Identifying, testing, and implementing possible solutions Automating solutions via algorithmic thinking Generalizing and applying this process to other problems ...are used to approach problems. How then, can we use minecraft to help a 5 year old (my daughter) start to understand these concepts?
I think the best way is to build a trap for monsters. Firstly, she would have to use cause-and-effect thinking. She would also need to break the trap into it's different parts. She would need to design a trap, and test it. In broad strokes, we will approach like this:
- Define the problem (zombies, skeltons, and creepers)
- Understand the component parts of a trap
- With the component parts, she will design a trap
- She will test the trap
- She will generalize ways the trap can be used in other situations
Ok, I'll be honest, this isn't a good example of computational thinking. The classic decomposition, data representation, generalization/abstraction, and algorithms are not really present. But this would get us on a good road, wouldn't it? What do you think?
Yea! I learned something that I actually used!
I suppose it is mildly depressing that I am excited about learning something that I can actually use. That must mean I normally learn things that are useless.
What is computational thinking in K-12 space?
Any look at computer science in the K-12 space leads inexorably towards the notion of computational thinking. My elevator speech on computational thinking is "thinking to computer". But there are many other, far better sources we can find below:
From Google comes this excellent answer
Computational thinking (CT) involves a set of problem-solving skills and techniques that software engineers use to write programs that underlie the computer applications you use such as search, email, and maps. Here are specific techniques.
Decomposition: Breaking a task or problem into steps or parts.
Pattern Recognition: Make predictions and models to test.
Pattern Generalization and Abstraction: Discover the laws, or principles that cause these patterns.
Algorithm Design: Develop the instructions to solve similar problems and repeat the process.
From the CSTA:
“CT is an approach to solving problems in a way that can be implemented with a computer. Students become not merely tool users but tool builders. They use a set of concepts, such as abstraction, recursion, and iteration, to process and analyze data, and to create real and virtual artifacts. CT is a problem-solving methodology that can be automated and transferred and applied across subjects. The power of computational thinking is that it applies to every other type of reasoning. It enables all kinds of things to get done: quantum physics, advanced biology, human–computer systems, development of useful computational tools.”
Computational thinking is thus a problem-solving methodology that can interweave computer science with all disciplines, providing a distinctive means of analyzing and developing solutions to problems that can be solved computationally. With its focus on abstraction, automation, and analysis, computational thinking is a core element of the broader discipline of computer science and for that reason it is interwoven through these computer science standards at all levels of K–12 learning Page 9 of the CSTA K-12 computer science standards.
From Jeannette Wing, regarding as the originator of computational thinking:
Computational thinking is a fundamental skill for everyone, not just for computer scientists. To reading, writing, and arithmetic, we should add computational thinking to every child’s analytical ability. Just as the printing press facilitated the spread of the three Rs, what is appropriately incestuous about this vision is that computing and computers facilitate the spread of computational thinking. Computational thinking involves solving problems, designing systems, and understanding human behavior, by drawing on the concepts fundamental to computer science.
Computational thinking includes a range of mental tools that reflect the breadth of the field of computer science.
What is computer science in a K-12 school?
Computer science isn’t learning to use excel. Computer science isn’t about understanding system administration and packet shaping. It’s not about using simulations to better understand biology.
I think K-12 schools can get confused about the difference between computer science, information technology, and educational technology. They are distinct.
Computer science is the scientific and practical approach to computation and its applications. It is the systematic study of the feasibility, structure, expression, and mechanization of the methodical procedures (or algorithms) that underlie the acquisition, representation, processing, storage, communication of, and access to information, whether such information is encoded as bits in a computer memory or transcribed in genes and protein structures in a biological cell An alternate, more succinct definition of computer science is the study of automating algorithmic processes that scale.
A computer scientist specializes in the theory of computation and the design of computational systems source here. There are many reasons K-12 schools don’t “do” computer science well. I suspect one of the larger reasons is the confusion about simple definition. I've seen "computer class" as a catch-all.
From Running on Empty comes an excellent description of why computer science is difficult to define and implement in K-12 schools: Consistent with efforts to improve “technology literacy,” states are focused almost exclusively on skill-based aspects of computing (such as using a computer in other learning activities) and have few standards on the conceptual aspects of computer science that lay the foundation for innovation and deeper study in the field (for example, develop an understanding of an algorithm).
As I learn and explore computer science in K-12 space, I would be curious to hear your thoughts about computer science in K-12.
How do we understand transformation & SAMR?
I love SAMR because it articulates a clear model of technology integration. From a respected colleague and friend comes a question about researching successes with transforming learning with technology. His specific question is "what could I research to understand transformative teaching and learning as it relates to SAMR". The best way to do this is to interview teachers who have changed the way students learn with technology. This is important, so please pay attention. We aren't looking at teachers who are "using more technology", we are looking at teachers who have changed their model of instruction, utilizing digital tools.
A few examples:
1. A middle school social studies teachers used to teach geography using paper maps, now he uses digital maps. Transformative? No.
2. An elementary school science teacher used to teach the water cycle, but now students are engaged in project-based learning about "me and my world". Transformative? Yep.
3. A high school math teacher used to teach basic geometry on a dry-erase board, but now has kids exploring area and shape using a simulation. Transformative? Probably, but if they are just playing, then probably not. The key point here is that transformative is about the verbs and not the nouns.
Here are some questions you could ask that would guide your thinking about transformational practice (used gratefully from this source) :
1. Did the assignment build capacity for critical thinking on the web?
2. Did the assignment develop new lines of inquiry?
3. Are there opportunities for students to make their thinking visible?
4. Are there opportunities to broaden the perspective of the conversation with authentic audiences from around the world?
5. Is there an opportunity for students to create a contribution (purposeful work)?
6. Does the assignment demo “best in the world” examples of content and skill? I posit that even the course "educational technology" is dangerous. As if there is a split between the two (there isn't). Hope this helps.
Oh man. Leonard Nimoy is gone. What a loss, what a great loss.
Sublime - is just so…good…
Well. I haven't been this enamored with a piece of software in a long time. Sublime - a text editor - has won my heart. The last time I got this happy about text editing was back in the day with UltraEdit. Someone put some love into this software.
Pain Value Analysis & Problem Analysis
I'm learning Service Operations in ITIL. I encountered some really interesting ideas about problems and pain in IT, and wanted to share them.
"...instead of just analyzing the number of incidents/problems of a particular type in a particular period, a more in-depth analysis is done to determine exactly what level of pain has been caused to the organization / business by these incidents / problems. A formula can be devised to calculate this pain level, typically, this might include taking into account the number of people of effected, the duration of the problem, and the cost to the business (ITIL Service Operation manual page 100)".
I'm also learning how to best analyze how and why problems occur - and some tools for getting to the very root of a problem. The technique you use depends on the specific problem you have, but here's the list I'm learning:
1. Kepler and Tregoe analysis
4. Fault isolation
5. Affinity mapping
6. Hypothesis testing
7. Technical observation post
8. Ishikawa diagram
9. Pareto analysis
10. Chronological analysis
One of the reasons I so value these ITIL courses is because many of the problems we face in school IT have already been well-addressed and solved by other industries. I remain even more committed that learning and adopting ITIL and best-practices for managing IT in schools is the right way to go.
Technology, learning and choice…
Slate has wonderful article about a professors choice to use (or not to use) technology in learning. The article resonates with me on many levels. As I reflect on the SAMR model of technology use and learning, I see many cases where technology use really doesn't benefit student learning. And I believe this question, does this use of technology benefit student learning must be central in our thinking to use it.
I've also seen technology use that fantastically improves on the way students learn - but this has more to do with instructional design rather than the actual blinking thing. There is nothing automatically better about learning when we throw technology in the mix. We must carefully judge and balance the benefits of technology in learning. This requires time, testing, and a clear vision of your learning outcomes.
A last point about distraction. As I work in ed-tech, I see more and more how distraction and divided attention fractures and fragments learning. I believe a great gift teachers can give to their students is the experience of deep thinking.
To spend a significant amount of time deeply knowing a poem or a part of a song is to know the "truth of a thing". And isn't that why we teach and learn? Sometimes I worry that technology makes knowing the truth harder. There are all kinds of yucky implications about a generation of kids who blink from one thing to the next, but that's a discussion for another article. Great article in the ongoing conversation about technology use and learning.
Social Media and PLN’s: a lot of a little
#cdl_mooced I'm currently learning via a fascinating MOOC Coaching Digital Literacy.
The unit I am working through is about social media and PLN's (personal learning networks). For the record, I love personal learning networks, and have benefited tremendously from my involvement in them. I've been a social media user for a while, but I don't really think they work for me as a PLN.
What I see in social media (twitter, facebook) is a lot of a little.
After reducing the "signal to noise" problem*, I see people post links to tools, without any deep thinking or consideration of context. It's pretty easy to post an infographic, link to a blog, embed a youtube video, but it's much harder to meaningfully change student learning with that same link.
Social media makes it very easy to share, but does that equate with better? I'm unsure. Where I have seen social media shine is when a very specific content area is linked to another very specific content area. For example, when a third grade teacher "follows" another third grade teacher. Or when a 10th grade English teacher "follows" another 10th grade English teacher. Posting a link, a website, or some great web 2.0 tool might help, but I don't think it meets the definition of being connected. My bias is rooted in my growing conviction that focused, mindful attention is the best way to learn and remember.
This weekend, I'm on my way to Istanbul, Turkey where I will meet with other IT Directors from the Central and Eastern European School Association. We all work in similar schools, with similar issues, challenges, and successes. This is my primary PLN, and one which I derive great value from. This face to face contact, this focused, uninterrupted time where we are learning with each other is like solid gold for me. And it is this that is missing from social media. Social media makes connecting quick, easy, and ephemeral. And that's the problem I have with it. I'm curious to hear your thoughts about this. *
Bill's social media signal to noise maxim: the ratio of cat pictures to actionable useful content determines the value of social media as a learning tool.
Was Queen Elizabeth II repaid for the tea that was thrown into Boston harbor during the tea party?
Click here for my findings (PDF)
Goals for this upcoming year
Our first week is under our belts. We are supporting MAP testing, and school trips have started. I finally feel like IT has some breathing space - but not much. I think once MAP testing is complete, and the "normal school schedule" (whatever that means) has started, we will be able to start moving forward, and not tend to our "getting to normal". There are many exciting initiatives in our school. In no particular order,
High School iPad pilot
Physical education iPad pilot
New student information system (powerschool)
New web-based admissions system
Major upgrade to our web-based professional development system (which is working great)
Start of a new project, HR system
Process-MAP all the inter-system synchronization issues (how does powerschool talk to our finance system, to Moodle, to Google, etc...)
We also have a technology coach team that should coalesce a bit more, a we had two new coaches last year. I’ll be looking for more “lighthouse learning” from the coaches, and I think they could do it with their eyes closed.
In all of these, I see my goals to support organizational excellence and increase student achievement. I will be focusing on:
1. Getting Powerschool off to a great start. In ITIL lingo, Powerschool is in “service transition” - a fragile time when a service must be carefully nurtured, supported, and “tended to”. Our goal is get Powerschool to a “service operation”, where the operations, roles, and benefits of this service are realized, part of our institutional culture, and the service levels are being consistently met.
2. Get our web-based admissions off to a good start. Just like powerschool, this system is in transition, and we’ll want to do a bunch of hand-holding until it matures and becomes operational.
3. My personal goals will be to become certified in ITIL Service Design and ITIL Service transition. My overall goal is to become ITIL expert-level certified.
4. I will also be strengthening my mindfulness practice, and encouraging students and teachers to use mindfulness as a tool to better learn with technology.
5. Finally, I will be strengthening my skills as a leader. I am reading books, talking to mentors, looking for other IT leaders I would want to emulate, and reflecting on my own leadership practice as I continue to strive to improve.
Welcome to a new school year!
Welcome back! I am excited to begin a new year.
As I was reflecting about our school, and our technology & learning program, a thought continued to return; we have absolutely everything we need to succeed here at the American School of Warsaw. Solid internet access, reliable and stable computers, tons of software, enough technical and learning support, all the pieces are here. We have a winning team of professional, smart, passionate, committed people who care about kids and learning.
My hope is at the end of this year, we look back and know we've pushed the needle forward for our students. That via our collective effort to support student learning, our students have stronger academic achievement, that every single kid has been inspired to excel. I know we can do this. I know we can improve student learning (and achievement) through the effective use of technology at ASW.
Let's set a high bar for ourselves. Let's take a risk and reach high. I can't wait for our students return to school.
Vacation - needing it
I am on vacation, and loving my time to be with family and friends. To let go, relax, recharge, and think about a bigger picture is a fantastic opportunity.
Don’t use excel for important work
Computer Science professor Daniel Lemire talks about why folks shouldn't use excel for important work.
Lemire states, "They [spreadsheets] are at their best when errors are of little consequence or when problems are simple.". He also writes (and I agree) "Spreadsheets make code review difficult. The code is hidden away in dozens if not hundreds of little cells… If you are not reviewing your code carefully… and if you make it difficult for others to review it, how do expect it to be reliable". When I get a spreadsheet from my business office, I spend more time understanding the formulas than I do the business problem.
I agree with Prof. Lemire's points, but I also see a language problem in changing. In short: people use spreadsheets because they are easy and accessible AND they lack computational thinking skills to build (write) a program in a more organized, coherent way. Probably, people "know" excel and there is a cost to learning and mastering something new.
In schools, I see excel spreadsheets being used to run virtually all parts of an organization (HR, accounting, purchasing, etc..). I think people use spreadsheets because they are easy and well supported, AND they do not know how to program.
I think Prof. Lemire's point is well said, and his post moves me to do more to help kids learn about programming and computational thinking.
From the BBC: Computers can impact on children’s ability to learn, says union
From the BBC comes word from Northern Ireland. (please read this in your best Irish brogue)
1. Bah! Damn kids an' their computers, no time to focus, and they canna learn!
2. Eh, I remember when WE were small lads. Now THAT was a time to focus an be ON TASK
1. Oh yea...
2. Jeeeeeessssssuuuusss, we could stay focused for 30 hours a day doing something we hated while being whipped
1. Sounds like you were at an easy school. We were focused for 200 hours every hour, and if your attention wandered for even a moment, you'd be taken out and tossed over a cliff
2. oh yea, the old "focus cliffs of doom?"
1. aye, thems the one.
(end Irish brogue)
I support the notion and idea that focus and attention are in danger with technology. What I reject is this silly idea that If we keep doing what we have always done, everything will be fine. Technology (and other cognitive tools) have changed (are changing) the ways our kids think, communicate, recreate, and learn. It is a significant and major change, and will continue to challenge old ways of thinking about cognition and learning. This is at the heart of SAMR, and our thinking that learing must be different when you use technology.
But here's the thing.
I am a proponent of mindfulness in schools. Not hippy-tree-hugger stuff, but rather teaching our kids how to focus and think using the tools of mindfulness. We cannot pretend our context has not changed. It has, and we must adapt.
Interesting article and online discussion about “teaching computers”
An interesting read that discusses different cultures between programmers and users. If anything, this article helps me remember the "spotify" world students live in today makes teaching computer science more of a cultural challenge.
I originally found this link in a very interesting online discussion about programming education making a comeback in primary education.
I am becoming more interested in the Computer Science Teachers Association efforts to teach computational thinking in schools (ISTE also has some excellent resources on the same topic: computational thinking).
As I reflect on what kind of technology education schools should provide, these articles and resources just seem right.
I am curious what you think about computational thinking and how K-12 schools should "teach technology".
PD, ed-tech conferences and student learning…
This article far better expresses my thoughts about conferences and student learning. I post this after asking if big ed-tech conferences make a difference in student learning. #edtech
Well worth reading.
Silence is success in IT
We are completing MAP testing. This involves setting up four rooms with about 25 computers each and ensuring networks, networking, client software, and system settings are prepared for testing. We also ensure the tests, students, and data is correct prior to testing. We use older laptops to facilitate testing, our MAP coordinator ensures the testing schedules are distributed and proctors are trained.
Setting up for MAP testing isn't rocket science. But everything went especially well. No client computer computer problems, no data issues, everything worked really well, and it was quiet.
This has happened before. When we transferred to google apps for education. Everything went well, and it was just quiet. Kind of a funny thing about IT, we only hear from people when something isn't working.
There is a tremendous incentive in IT to design services well. Sort of a "measure twice cut once" kind of thing. When things are working well in a school IT department, things are quiet. When technology as a service is managed well, life is easier for everyone in a school.
We still have issues, but these come through our trouble ticket system, they are prioritized and addressed.
ISTE Essential conditions are just…right.
Getting technology "right" in schools is difficult. I've seen more cases of poor implementation than good implementation. My touchstone question is "how is student learning better?".
There are a cluster of "things" you have to get right when you want to use technology to improve student learning. The ISTE Essential Conditions elegantly articulate what schools should do if they want to use technology to improve student learning.
In my experience, these conditions are correct, and serve as a good reflective standards when schools ask "are we doing this right"?
PDF here in case of link rot (which I doubt from ISTE, but you never know).
Edtech Conferences - worth it?
I recently tweeted: Does participating in #learning2 (or any big ed-tech conference) make a difference in student learning? I've always been "meh" about them...
Are they worth it?
1. I've always felt these conferences were of dubious value. When I pay for staff to go to them, I usually get a standard bell curve one or two staff who had a life-changing experience, and one or two staff who were bored to tears and everyone else falls in between. My personal experience echoes this observation. Kids aren't benefiting.
2. I believe teachers grow best through self-reflection, peer coaching, and good professional evaluation. I'm not sure how ed-tech conferences facilitate this. Sure, teachers can learn about tools, and they might learn about some ideas for project-based learning, but how much of that is making a difference in the learning for kids? Is the learning return worth the time and money invested?
3. I see a wide variety of presenting skills at these conferences. Although this is related to point 1, the content and delivery can be variable. The keynote speakers are often more known as keynote speakers, and less as authentic innovators of classroom learning. I've been to many edtech conferences, and all the keynote speakers are compelling, but then there is that whole "our context and your great idea" problem.
4. One of the failings of these conferences is their focus on Nouns over Verbs. The conferences attract advertising and make money by selling advertising space. Many sessions are dedicated to advertisers who do not discuss how learning can be different, but by perpetuating the horrible myth that the tool is magic and will change things! This, by the way, is a disease in educational technology, that the tool alone will fix what’s wrong with learning. It never has.
5. If the goal is to learn new things / try new things, why not try a speedgeeking session? I think about locally produced organic produce being much better for you than crap made thousands of miles away. Back to point 2, I believe teachers learn best when they are engaged with a colleague and are learning with them (see also: plc). There is less of a translation cost when you learn locally.
6. The problem is that sometimes (sometimes), a teacher goes to one of these conferences, and the stars align, and there is star-trek sound effects, and they return profoundly changed. Sometimes that happens. Maybe we need to pay more attention to preparing our teachers to attend these conferences to increase the likelihood of Eureka.
I am curious what the 2 regular readers of this blog think about the big Ed-Tech conferences. Are they worth it?
Dungeons and Dragons for 6th graders?
Today an earnest, excited 6th grade (12 year old) boy asked me if I would help him lead his Dungeons and Dragons club. He had somehow found out that I like D&D, and really wanted to play.
Why does this make me feel uncomfortable? I told him I didn't have time (which is true) but maybe we could make a simulation club, and build games and simulations. He was cool to the idea.
Anyone out there have any advice? I still have this belief that there is a pejorative association with D&D. I still enjoy playing - but only five or six times a year. But is this an acceptable thing for kids in a school as a school sponsored activity?
Animal dissections should not be computer simulated
I am participating in an interesting discussion about the role of simulations and dissection. My thoughts are below:
There is a huge difference between a computer-simulated dissection and a real one. Simulations are great because they:
a. allow us to abstract an idea, piece of knowledge, or thought-object;
b. allow us to easily and quickly manipulate objects in a simulation to see what might happen;
c. allow us to model complex systems (see serious games as an example);
d. help us model and manipulate an environment.
If we support the use of simulations over real-life dissections, we should at the minimum include a discussion about the kinds of knowledge that using simulations support. The key point here is that simulation allow users to change and manipulate variables, and then observe an outcome based on the changes they made in the simulation.
A simulation is not a series of videos or images, which is what I see most "frog dissection" simulations sites. Please know there is a difference between watching a movie of a frog dissection and simulating a frog dissection. I found many dissection sites that seemed to be a series of linked flash videos that showed different stages of a normal dissection process. For example, this site: http://www.whitman.edu/academics/courses-of-study/biology/virtual-pig is a series of images that describe what students should look for when they dissect a pig. Likewise, a cow eye dissection (eww, gross) http://www.exploratorium.edu/learning_studio/cow_eye/index.html is not a simulation, but a "click next and look" activity. This site http://www.biologyjunction.com/frog_dissection.htm is good because it has photographs and diagrams, but there is nothing "simulationy" about it.
This site http://www.mhhe.com/biosci/genbio/virtual_labs/BL_16/BL_16.html has interactivity, and could qualify as a good resource. Also http://www.froguts.com/demo/ is passable, but neither of these sites reach to the standard of a simulation in my opinion. Online resources need to be more than just watching a movie or series of movies; they need to include meaningful interactivity (see https://www.explorelearning.com/ as a good example). For the record, the gold-standard for online resources are resources which allow students to create simulations. I had originally wanted to try to stay away from the debate about dissection and stick with "what is a simulation".
Personally, I disagree profoundly with the notion that a computer can replace a live dissection exercise. Organisms are gooey, slimy, and not "clean and tidy", as a computer would present an animal dissection. I also believe the affective element of dissection is part of learning (but I'm an IT guy, not a biologist nor an ethics expert) IMHO, technology would detract from learning if our goal in learning was for kids to understand the digestive system (and it's place in other systems) of a real frog.
To underscore my point, the real value of a simulation is to allow users to change and manipulate variables, and then observe an outcome based on the changes they made in the simulation. 😊 this is not what most animal dissection sites (that I could find) do.
Expression Engine 2.8 is out!
Expression Engine 2.8 is out. Really cool feature set that will save time and make it easier to develop great web-apps for schools.
My latest use of Expression Engine is for a professional development request system. Works like a charm!
Hacking in High School: yes, but….
A substantive article by Pete Herzog about hacking in High Schools.
I hope you read this reply, Mr. Herzog. You are so right about this. I think the key point is what schools do with hackers (geeks) when we find them.
Many times we have "caught" students doing stupid stuff like installing key-loggers, running port scans, writing bash scripts and changing /etc/hosts in amusing ways. When we catch them, we discipline them but then we invite them to learn. And this is my key point. We need to teach kids to be responsible and ethical digital citizens, but also teach them how to hack. And as you say, be "motivated, resourceful, and creative" learners.
I liken this to "geek fishing". Schools generally don't do a great job of fostering an environment of open exploration, discovery, hacking, and making. We have a curriculum to think about, after all. But when we discover a hacker / geek in our school, we have a duty to encourage them and grow them.
As I reflect more on this blog post, I think what should change in schools is our attitude towards hacking; to invite it, encourage it, and recognize the value this type of challenge / curiosity-based learning brings to learning. We also need to help kids make good decisions.
Membership in Computer Science Teacher Association
As I was learning about computer science curricula in the K-12 sphere, I discovered the Computer Science Teacher Association. I've joined, and I am learning a great deal about the value of their membership. I'm currently reviewing their suggested K-12 Computer Science standards, and learning more about computational thinking. I'm looking forward to learning more about how this organization can help me understand how best to plan, implment and assess computer science curricula in the K-12 world.
Is anonymity bad?
Interesting article written by Chris Poole about the merits of anonymity online. I remember when anonymity was the de-facto identity on the internet, and I've watched it change slowly with facebook. As a teacher, I've watched students exhibit truly exemplary behavior online, and I've also seen horrible behavior. Like in real life, just amplified.
I believe anonymity is the great "freeing mechanism" of the internet, one of the truly great things about "online". Gender, age, culture, and socioeconomic status all fall-away as barriers to participation in a free exchange of ideas. At it's heart, I think that is what the internet is; a venacular of idea. In an anonymous forum, the strength of an idea alone carries weight. Of course expressing the idea is important, but without the garbage that traditionally encumbers us.
So I see evidence how being anonymous online can be hurtful. I also see how it be very helpful. A few quick examples:
1. Stack exchange. Basically anonymous. The best ideas and responses to questions are voted to the top of the list.
2. Slashdot. Basically anonymous. Comments are moderated, but in a weird way.
3. Google Moderator. Not very anonymous, but has the same basic idea of voting for an idea.
4. Reddit. Anonymous. The thing about Reddit is the question being asked. So on the front page, the basic question is "what will create the most clicks?". But on subreddits, like /r/linux, answers to questions are voted on, with the best rising to the top.
There are obvious flaws with anon-think (see the Wisdom of Crowds). But that we should shun anonymity, or treat it pejoratively strikes me as myopic.
Parents, students, teachers and Moodle: who see’s what??
Moodle is a learning management system designed to support the learning / teaching relationship between a student and a teacher. Our middle school shares the student username and password with parents because we recognize parents want to support their students. Please know the window we use with parents is different than the window we use with students. So when a parent logs into moodle using thier student credentials, they will see a system designed for teachers to communicate with students. We believe part of middle school learning is to take responsibility for their own learning (in fact in our school vision says in part "we see the future reflected in our students' independent thinking"). In the high school, we do not grant access to Moolde for this very reason; the relationship is between the student and the teacher.
In cases where there is real academic trouble or difficulty, then of course, this rule can be bent. But overall, Moodle is about facilitating, supporting, strengthening the conversation between teacher and a student.
An introduction to SAMR
Here's a youtube video I made a while ago that describes SAMR in depth, with a specific example how learning is different when we look at technology use through the SAMR model.
Technology Integration—Will We Know It When We See It? A New Taxonomy
What a great article about SAMR, principals, and thinking about technology integration. The article, Technology Integration—Will We Know It When We See It? A New Taxonomy, ends with this quote:
As leaders it is important to keep in mind the purpose of technology and how it can transform the classroom. We need to remember that, just as it is in the classroom with students, there is a range of experience and comfort in our faculties when it comes to learning about technology. As with Bloom’s taxonomy, we must take them from where they are and support them along the continuum.
Good stuff. PDF here, in case of link rot.
Just finished Code Academy Intro to PHP
I just finished the CodeAcademy PHP introduction. Not bad, I have to say. I've been dabbling in PHP for many years, and I learned some new things, which is cool. I finished in about two days (total time, probably 6 hours).
I found the learning environment to be good. A few user interface quibbles, but overall, the teaching and assessment was spot-on. I liked the feedback when an answer was incorrect. I found the scope and sequence to be good. I think a more robust summative assessment would of been nice. I also think some different types of assessment would of been neat (look at this code, where is the error).
Amazing, the last time I formally learned about PHP, I used a book, and manually typed in the code. This was much different.
Does everyone need to learn to code?
Very interesting NPR show entitled: Computers Are The Future, But Does Everyone Need To Code?
I answer yes. Learning to code is a new kind of literacy. I think the faulty premise that NPR assumes is we should be preparing everyone to be a professional programmer. Not understanding rudimentary HTML, SQL, conditionals, loops, and objects is a new part of a new kind of reading and writing. Not knowing these things diminishes our ability to express ourselves, to speak in a new language. Creating is inherently empowering. In many ways the analogy of coding as a new foreign language is apt. Some things I heard and my response:
"If you are tax preparer, you don't need to code to do your job"
I disagree. Facility with programming (or as ISTE nicely notes, computational thinking) richly serves tax preparation. We have cognitive tools to automate processes, check for common errors, and facilitate communication. Why couldn't a tax preparer use a simple content management system to accept commonly requested information from clients? It's hard to imagine an occupation where technology could not support, replace, or enhance the task.
"Everyone should be an auto mechanic"
This again points to the premise that everyone should be a professional programmer. I don't think they should. But I assert that everyone should know how to read and write "in computer". I would argue that in addition to safely driving, you should know how to change your oil, change a tire, understand how a car operates.
However, the auto-mechanic analogy is weak. Computers are the lens through which we learn, communicate, and have fun. A car moves from point A to point B. The analogy between auto-mechanic and programmer doesn't hold water because reading and writing is exponentially more important than driving. This goes to the heart of my point about this NPR story; computational literacy is something everyone should know about.
What is interesting is the increasing abstraction I see in programming. Like the NPR guest said, I grew up with that blinking command line. It was an exhilarating experience. Now, programming with tools like scratch neatly teach students about conditionals, loops, objects, and other programing primitives.
Every kid should know this stuff.
Mindfulness in schools: a good article
From KQED comes this good article about mindfulness in schools. (open PDF here).
My favorite quote:
“When we look at low performing schools it’s not that these children are unable to learn, it’s that very often they are unavailable to learn.”
I only have one quibble with the article. I do not like using the word multitasking to describe what children pretend to do (it's not multitasking, it's rapid task switching). And if you want to really learn about the excellent psychological research about task switching, use task switching or attention as a starting point.
What does it mean to be accountable?
One of our school themes this year is accountability. This is a good thing, in my opinion.
In my experience in education, accountability is a pejorative word but it needn't be. I imagine accountability to be ultimately about results. And here is a key point; results can be broad, nuanced, qualitative and still be valid, but they still need to demonstrate a student has learned.
When people ask me "how do you know technology works in education", I answer "ask the teacher who uses it". I trust teachers to know when technology tools work with student learning (but I verify).
When I think about accountability in the context of educational technology, I look at learning outcomes and learning artifacts related to a technology inspired lesson. As we in the ed-tech community know, many times students make spectacularly snazzy presentations and demonstrate ZERO knowledge on the learning standard. It's hurts me when I see this.
Accountability is about "show me the learning".
We are adopting Dr. James Stronge's TPES teacher evaluation system at our school. There are 6 standards, 5 inputs and 1 output. The 5 inputs are:
1. Instructional planning
2. Instructional delivery
3. Assessment of/for learning
4. Learning environment
And the 6th standard, related to output is:
6. Student progress
All of these standards are measurable, and when used thoughtfully, improve accountability to student learning.
I've included the wikipedia entry below about accountability because I like what it say about the relationship between accountability and accounting. What is the saying, "what matters is what you measure".
What do you think about accountability in educational technology?
In ethics and governance, accountability is answerability, blameworthiness, liability, and the expectation of account-giving. As an aspect of governance, it has been central to discussions related to problems in the public sector, nonprofit and private (corporate) worlds. In leadership roles, accountability is the acknowledgment and assumption of responsibility for actions, products, decisions, and policies including the administration, governance, and implementation within the scope of the role or employment position and encompassing the obligation to report, explain and be answerable for resulting consequences.
In governance, accountability has expanded beyond the basic definition of "being called to account for one's actions". It is frequently described as an account-giving relationship between individuals, e.g. "A is accountable to B when A is obliged to inform B about A’s (past or future) actions and decisions, to justify them, and to suffer punishment in the case of eventual misconduct". Accountability cannot exist without proper accounting practices; in other words, an absence of accounting means an absence of accountability.
Digital Learning: a video that gets close to SAMR
Great youtube video: be here now
I am still surprised how little time I spend here and now. I often think about the future, or perseverate about the past, leaving me little time to be in the here and now. I remain convinced teaching our kids (and modelling) about mindfulness must be part of a technology program.
ITIL: Services in a K-12 School
For external customers (students, families, and prospective families) :
Learning with technology hardware tools
Learning with technology software (and web-based-applications) tools
Learning management service
Information service covering school activities, athletics, and school-life
Information service covering academic progress and progress towards standards
Information service covering school community activities
Interactive admissions services
Interactive re-enrolment services
Interactive enrolment services
Information services for prospective families
For internal customers (teachers, administrators, professional support staff) :
Interactive information service covering student information - including progress towards meeting standards
Information service covering internal school information
Interaction services for calendaring
Customized reporting services
Interactive admissions services
Interactive re-enrolment services
Interactive enrolment services
Tech Coaching vs Tech Coordination
It boils down to nouns vs verbs. An integrator is more centered around nouns (specific stuff that blinks). A coach is more centered around verbs (teacher instructional practice and student learning).
For example, an integrator makes sure that active board functions properly, and the teacher knows how to use the board. A coach works with teachers how to differentiate instruction using the activeboard.
Another example, a math coach does not come in with math worksheets and leave. Nor does a reading coach bring in books and leave. They are intimately connected with supporting student learning by coaching and developing teacher competencies.
Instructional coaches are different than technology coaches. A technology coach is concerned with learning, teaching and the cognitive tool of technology.
An instructional coach look more holistically at student learning and the instructional practice.
There is management of technology resources in both the coaching model and the coordination model.
MOOC’s, learning, and teaching, oh my!
From the Old Gray Lady: http://www.nytimes.com/2013/12/11/us/after-setbacks-online-courses-are-rethought.html?hp&_r=0
I watched with interest the fervor around online courses and online learning. As usual, the technology skeptic and the technology evangelist in me battled.
From the Skeptic:
This is a money-saving initiative. Solely using computer assisted instruction doesn't work (but blended models show promise). Teaching and learning is more than mere presentation of content. With no proven procedure to validate student learning (via a teacher), how do we know our students know? Won't MOOC's further create distance via the digital divide? Don't MOOC's only really help certain types of learners? Don't we know that lecturing is only so effective? Aren't the instructional delivery models limited in an online course?
From the Evangelist:
How else can a motivated learner access instruction from world-class faculty? Isn't this a noble experiment, where many people, working together, build a collective understanding? Doesn't this help us cull high-level content and present it coherently? With proper gamification, can't we make this style of learning much more engaging? Isn't this the "mother of all differentiated learning"?
I end with this question about learning and teaching. I always believed the ultimate goal of education was to teach students how to think. How does an electronic system understand how you think?
hint: it's more than passing a test.....
Geeks on the difference between training and learning
Great video and talk about the difference between training and learning.
iDiots: a clever commentary on what we may become
Without much further comment:
Reform ECPA: Tell the Government to Get a Warrant
I've just signed this petition, and I urge you to, as well.
Americans are deeply concerned about NSA surveillance.
But the NSA’s not the only problem. An outdated law says the IRS and hundreds of other agencies can read our communications without a warrant.
That law, known as the Electronic Communications Privacy Act (ECPA), was written over 25 years ago, before the services we use today even existed.
Right now, several bills in Congress would fix this by updating ECPA to require a warrant, but regulatory bodies are blocking reform in order to gain new powers of warrantless access.
We call on the Obama Administration to support ECPA reform and to reject any special rules that would force online service providers to disclose our email without a warrant.
ITIL Certified and Management in Schools
I just earned my Foundation certificate in ITIL. As I learn more about managing technology for enterprise I see the benefit and value of bringing these best practices into the school. I believe schools traditionally do not manage technology well. There are many reasons schools don't "do" technology well.
1. Our outcomes are a little fuzzy
Schools don't have a bottom line that is easy to measure. When we try to only use a norm-referenced or criterion-referenced test to measure learning, we reduce what learning is. As such, clearly defining outcomes, benefits, and easily measurable products (in a management output-model) are tough. I'm not saying it can't be done, but it's fuzzy.
2. Leadership in schools is difficult
Schools are classically under-staffed at an administration level. How does one administrator effectively evaluate 30 staff members? Coupled with intense pulls from parents, district and state mandates, lack of training in project management (and IT management), the stage isn't set well for leadership to be successful.
3. Management isn't a "thing" in schools
Management isn't a language we speak in schools. Outcomes, milestones, measuring, metrics, Demming Model, KPI's, RACI, and value aren't part of our nomenclature. I'm not sure why, but there isn't a culture of management in schools. I don't look at "the union" as the reason schools don't have strong management, I think just historically this is the issue.
4. No one really understand how technology works
It's odd, because this is a chicken and egg problem. Clearly defining measurable outcomes from student technology use can be done (via the Service Strategy and Service Design parts of ITIL). But schools don't do this because they don't have expertise or knowledge managing technology. I have personally heard many principals, superintendents, and directors say they simply don't understand how technology works, or how it impacts student learning.
My final thoughts on this?
Management frameworks like ITIL and PRINCE 2 project management has immense value in organizations, especially when there isn't a real culture of managing. I'm not a shill, but after 15 years in this business, I clearly see the value and benefit of implementing more structured approach to management in schools.
ITIL Lifecycle Processes
ITIL Lifecycle Processes
For my own study notes, and to help anyone out there who wants it.
Service Portfolio Management
Business Relationship Management
Service Catalog Management
Service Level Management
IT Service Continuity Management
Service Validation and Testing
Service Asset and Configuration Management
Release and Deployment Management
Continual Service Improvement
(ITIL® is a registered trademark of the Cabinet Office)
ITIL in Education
Wouldn't it be great if there was a framework schools could use to effectively manage technology? Wouldn't it be great if there was a group of battle-tested best practices we could use to ensure technology delivered the benefits we desired? Wouldn't it be great if other industries, focused like a laser on results, developed a group of procedures to ensure technology was delivered as a service to support the mission of the business?
I've been in the ed-tech business for a while now (since 2001 formally). I've seen several different scenarios how technology is managed in schools:
1. None. A computer is (sometime literally) placed in a room and left for a hapless teachers to plug and in and gather dust. I've also been in schools where interactive whiteboards are put into classrooms (a school-wide implementation) and teachers are left to their own devices. This doesn't end well.
My kids want to use Unity3D for a science project
From an excellent 6th grade science teacher comes this question. My answer is beneath. I have a couple guys in 6th grade who are dead set on doing a science fair project involving video games. Both guys want to use a program called Unity 3D.
How in the hell do I turn this into a project with an authentic research question such as "What affect does __________ have on _________?"
If you have any suggestions or could help me point these kids in a different direction, I would be most appreciative. This is tricky to get right. In a nutshell, you have to be much more strict about the instructional design than with other activities your kids might want to try. The problem is sadly universal. The boys will absolutely light up about this project. They will go full-nuclear in their enthusiasm, energy, and time with this. But at the end, there is a very good chance they will not meet your learning goals.
They will tell you, brimming with excitement, "look! we made this guy's arm move, and we put in the radioactive monsters that blah blah blah". And you will ask, "have you met these learning goals? And they will pause. And there will be this uncomfortable silence, and then they will say "look at the tank we built!". This is the same thing when kids build a powerpoint presentation that is all fluff, and no content. So if you are willing to hammer them with oversight (and I mean a daily check-in against an obnoxiously clear rubric), then I say go for it.
Also, please know this project will take longer than other projects because the kids are going to want to do everything, all at once. One last thing: If your kids do choose to use this learning tool, and they manage to model their science project as a simulation, it will be a very powerful learning experience. I can't think of a better way to learn than to create a simulation or a digital representation of an idea. I'm curious how you will proceed.