Skip to content
View colevandersWands's full-sized avatar

Organizations

@elewa-academy @blocks-to-text @lab-antwerp-1 @learning-as-code @DeNepo
Block or Report

Block or report colevandersWands

Block user

Prevent this user from interacting with your repositories and sending you notifications. Learn more about blocking users.

You must be logged in to block users.

Please don't include any personal information such as legal names or email addresses. Maximum 100 characters, markdown supported. This note will be visible to only you.
Report abuse

Contact GitHub support about this user’s behavior. Learn more about reporting abuse.

Report abuse
colevandersWands/README.md

Evan Cole

What if best practice was common practice?

email@evancole.be


Open Education

AI can now write and explain code, but people still need to understand and maintain code. To adapt, programming education must center code comprehension, discussion, and review instead of writing. Coincidentally, research finds this is also the most effective way to learn programming. My open educational resources form a coherent approach to comprehension-first programming education centering self-study, easy content authoring, and offline study.

Curious about using or contributing to any of these resources? Send me an email!

Click to learn more about my open source projects

De Nepo: Open Ed: A collection of evidence-based resources & tools for computing education. Some highlights:

  • Study Lenses (demo, source, spiritual successor): A plugin-based learning environment for generating comprehension exercises from code. The following tutorials are designed for Study Lenses.
  • Welcome to JS: A practical introduction to programming focusing on program comprehension and communication skills.
  • Inside JS: A deeper look inside JavaScript including expression-level debugging, unit testing, DOM I/O, and reverse-engineering.
  • Behavior, Strategy, Implementation: Explore and practice a wide variety of approaches for solving & reviewing coding challenges.
  • Separation of Concerns: Learn how to plan and collaborate on a software project with code-splitting and file/folder conventions based on the code's role in the program.

Software as a Second Language: A new project to organize and package De Nepo materials for program comprehension, designed around four levels of time investment:

  1. Quick Wins: Teaching or study techniques you can pick up in under an hour.
  2. Tools: Guides for adopting tools like Study Lenses that help understand any code you are working with.
  3. Content: Lesson plans, exercises, and references that can be incorporated into an existing curriculum.
  4. Curriculum: Guides & resources for redesigning programming curricula around comprehension-first learning objectives.

InTechgration: I am helping them to adopt/adapt De Nepo materials, and giving Instructional design & curriculum packaging advice for WDX-180

Blocks to Text: Thoughts about helping learners transition from blocks to text. Also an experiment in hosting essays+slides+demos in one GitHub organization.

JS for Open Computing Education. A presentation from FOSDEM '19 with some principles for designing realistically open computing education. The code is wonky, the ideas are solid.

  • slides, repo (forked because I accidentally deleted mine 🤦)

Micromaterials: Open learning resources that are focused,free, give automated feedback, and (ideally) generate endless practice.


Research

I create methods and tools for research translation in computing education, helping promising advances in research reach learners and educators everywhere. My specialty is translating findings and prototypes from CER into classroom-ready prototypes for adult technical education.

Interested? Reach out! I'm always open to new projects as an outside collaborator or a researcher.

Click to learn more about my research.
Computing Education Research as a Translational Transdiscipline + video

The field of Computing Education Research (CER) produces important insights into learning and notable interventions, yet due to the research/practice divide these do not have the desired impact on learners or practitioners. Even within CER, Computing Education (CE) learning theories have limited influence on learning designs due to the theory/design divide, which is unfortunate given that the goal of CER is to impact learners and broaden access to computation.

There is a lack of an overarching model defining CER as a unified field and providing a framework for discussion. While there is discussion around many of the core activities and practices in CER, we have yet to come across a holistic characterisation. We introduce a model of Translational Computing Education Research (TCER) that helps to understand and discuss CER as a field, bridge the divides and provide internal structure, while also making the field more approachable for interdisciplinary and non-academic collaborators. In our TCER model, theory and design are equally important but weighted differently depending on an activity’s position along the research/practice continuum.

In addition to the future exploration and exploitation of the presented TCER model, we propose further characterising CER as a field, applying the TCER model to understand past and contemporary CER, applying the model to address current challenges in CER, imagining what the field can become, as well as exploring the potential for translational research programmes to maximise the broader impact of computing education research.

Codeschool in a Box: A Low-barrier Approach to Packaging Programming Curricula The tech industry is a fast-growing field, with many companies facing issues in finding skilled workers to fill their open vacancies. At the same time, many people have limited access to the quality education necessary to enter this job market. To address this issue, various small and often volunteer-run non-profit organisations have emerged to up-skill capable learners. However, these organisations face tight constraints and many challenges while trying to design and deliver high-quality education to their learners. In this position paper, we discuss some of these challenges and present a preliminary version of a curriculum packager addressing some of these issues. Our proposed solution, inspired by first-hand experience in these organisations as well as computing education research (CER), is based on a combination of micromaterials, study lenses and a companion mobile application. While our solution is designed for the specific context of small organisations providing vocational ICT training, it can also be applied to the broader domain of learning environments facing similar constraints.
Explorotron: an IDE Extension for Guided and Independent Code Exploration and Learning + video

We introduce the Explorotron Visual Studio Code extension for guided and independent code exploration and learning. Explorotron is a continuation of earlier work carried out to explore how we can enable small organisations with limited resources to provide pedagogically sound learning experiences in programming. We situate Explorotron in the field of Computing Education Research (CER) and envision it to initiate a discussion around different topics, including how to balance the optimisation between the researcher-student-teacher trifecta that is inherent in CER, how to ethically and responsibly use large language models (LLMs) in the independent learning and exploration by students, and how to define better learning sessions over coding content that students obtained on their own. We further reflect on the question raised by Begel and Ko whether technology should structure learning for learners or whether learners should be taught how to structure their own independent learning outside of the classroom.

Automated Questionnaires About Students’ JavaScript Programs: Towards Gauging Novice Programming Processes + qlcjs libarary

Students sometimes manage to produce functionally correct program code while having a fragile understanding of the related learning goals. Such unproductive success could be intercepted by an educator who asks questions that target the structure and evaluation of the student’s program using the constructs and identifiers in the code. We provide a tool that automatically generates multiple-choice questions of seven different types for this purpose. We integrated these questions into a web-based program writing exercises, which we also publish as a part of this work, and successfully used them on an introductory programming course. In our pilot evaluation of the tool, we found that the students who answer these questions repeatedly incorrectly are likely to drop out, have more challenges while writing a program, and resort to tinkering behavior.

  • by Teemu, inspired by Study Lenses

Sessions and Panels at the Migration Summit '23

And, my notes



Professional

Evidence-based instructional design is key to operating an efficient programming course. I can help you reduce costs while still improving learner outcomes by adjusting learning objectives to avoid common challenges, by using educators' time more effectively, by promoting structured collaboration in class, and by advising strategic investments in content.

Email me to learn more about my services in curriculum design, content creation and train-the-trainer.

Click to learn more about my professional work.


Fun

I've always loved language, linguistics and reading more than I liked playing on computers. So when I program I think more about the writing, the language and the rhetorics than what I'm building. I also think rhetorical situations are a great starting point for teaching programming.

My main computery hobby is snippetryWhat can you do with under 40(ish) lines at a time?

Let's talk, together we can build things we could never imagine alone.

fun links
alert(eval(eval((recurseval = 'eval(prompt("yolo", recurseval) || recurseval)'))));

If Hemingway Wrote JavaScript has influenced my programming life more than any other single source. How to Draw a Bunny is in second place.

I recently discovered Dwitter.



You may have heard this before:

  • "if all you have is a hammer, everything is a nail"

Now try this on for size:

  • "if everything is a nail, you'll always reach for your hammer"

Wait. How could you have a hammer if everything is a nail? And wouldn't you be a nail too‽



Many years ago this question captured me:

  • What does it mean to be an expert in a discipline?

I got stuck at "discipline". It's not so hard to define existing disciplines, but how do you know when you're looking at a new one? or at a hidden discipline?

"Discipline" started to make sense when instead of looking for a single thing, I saw combinations of these two things:

  • Questions
  • Ways to find answers for those questions

I now think of disciplines as conventional combinations. Disciplines have a conventional type of question, and conventional methods for answering them.

So what does it mean to be an expert in a discipline? I think it means you've developed the intuition to ask certain questions and are very good at certain methods for finding their answers. no more, no less.


Where do unexpected questions come from? And how can you find an answer to a question no one understands yet?

Conventional disciplines may have constrained themselves to asking questions for which they already now how to search answers.

But what if you reject known constraints and set new ones? You'd have to ask unknown questions and find unexpected ways to answer them.


  • "Alone, you can only ask the questions you can think of, and search for answers in ways you can think of."

Try replacing "question" with "problem", and "answer" with "solution":

  • "Alone, you can only find the problems you can think of, and solve them in ways you can think of."

Listening and empathy are the keys to finding problems you couldn't know exist. Collaborative design is the way to find answers you never expected were possible.

  • "Together, we can find the problems we didn't expect, and solve them in ways we never never imagined."

Here's the question I've spent a few years trying to answer:

  • "How can we make the best ways of teaching programming the easiest?".

Rephrased as a problem:

  • "There are empirical best practices for teaching programming, but those are not common."

Hold on. What does it even mean to teach programming? Maybe it means first teaching students to ask questions that can be answered with code.

I certainly haven't found the answer yet, but I do have lots of ideas. Let's compare notes.


🐧 🇧🇪 🇺🇸 🐧

Pinned

  1. DeNepo/study-lenses DeNepo/study-lenses Public

    see your code many different ways

    JavaScript 11 7

  2. DeNepo/study-lenses-demo DeNepo/study-lenses-demo Public

    a demo of the Study Lenses learning environment

    JavaScript 1

  3. DeNepo/welcome-to-js DeNepo/welcome-to-js Public

    Take your first steps into programming by learning to read, trace, analyze, explain, and write interactive programs in your browser.

    JavaScript 12 159

  4. blocks-to-text/top blocks-to-text/top Public

    Home page for Blocks to Text

  5. fosdem-2019 fosdem-2019 Public

    Forked from kolysg/fosdem-2019

    JS for open computing education

    JavaScript

  6. snippetry snippetry Public

    What can you do with under 40(ish) lines at a time?

    JavaScript