foundersandcoders / a-pattern-language Goto Github PK
View Code? Open in Web Editor NEWA pattern language for teaching software
A pattern language for teaching software
A quick google search reveals that I'm not as novel as I thought and that others have attempted to apply the idea of design patterns and pattern languages to the design of curriculums:
https://en.wikipedia.org/wiki/Pedagogical_patterns
http://www.ascilite.org/conferences/perth04/procs/pdf/goodyear.pdf
http://digitalcommons.usu.edu/cgi/viewcontent.cgi?article=1050&context=etd
https://ajet.org.au/index.php/AJET/article/download/1344/714
http://www.networkedlearningconference.org.uk/past/nlc2004/proceedings/individual_papers/goodyear_et_al.htm
I will need to put this on the burner and research into what's been done:
A section will need to be added with resources for further reading.
This is one of Alexander's first and most widely cited essays. It's a short and sweet introduction for anyone who wanted to go into his work more: A city is not a tree
@bradreeder I'm slowly wondering whether this separation is helpful? Wouldn't it be better to have everything linkable within the same repo?
This repo doesn't mean much without master-reference
, right? And the master-reference
vision doesn't mean much without these patterns.
I'm thinking we should just have a meta
label for issues like #9 and have them live in master-reference
.
People actively present in the school, current mentors and students should be invited on the first presentation day of a new cohort to come together for a home-made community lunch prepared by a task-group. The period can last 1 hour and a half, to give a leisurely amount of time to clear up before going into project presentations. This time can be made up for by not inviting in an employer to speak in the first week.
This is the format Alexander uses to record a pattern. Where other patterns are referred to they should be hyperlinked:
See full text for examples. A more suitable (and simpler) format is needed for our specific purposes.
When I was given the course facilitator role https://github.com/foundersandcoders/business/issues/113 this resource was the blue-print I originally had in mind for what's now the master-reference.
This project will be an experiment I intend to work on alongside my time in the role. It is a community-centred resource and anyone is welcome to contribute.
It won't be used as a resource for curriculum planning unless it reaches maturation & there is consensus that the methodology developed here would be useful. I've separated it from the master-reference into this repo to reflect that as it can always be merged in later.
@Cleop 's FAC9 mural captures something of what building a communally-led school means to me, that's difficult to put into words. If something like it were reproduced spontaneously every curriculum I'd consider it successful as it couldn't be done unless there was some life
in the classroom.
It warmed me greatly every evening I came in to work on curriculum planning over the holidays, and made me glad of the time I'd spent with FAC9. :-)
The purpose of the pattern-language isn't purely intellectual, it's a hand-manual & shared language that belongs within a context of community building. If the curriculum runs like a machine but it has no heart then the language misses its mark. I'd like the mural in the head of the README.md as I think it serves as a reminder of what to aim for.
I will leave this issue open to provide some context to this repo until I find the time to research #3 .
@YvesMuyaBenda I'm disppointed that I missed your post back in March within the "Research past application of pattern languages to education" issue #3, but it was a fascinating read. Thank you so much for sharing! ๐
I don't want us to take over that issue with, what I hope might become, a long conversation about applying a pattern language to self-directing learning. I think that issue should remain about gathering a variety of examples that we can learn from, of which this is just one. So I am opening this issue here, in the hope that we can ignite something around self-teaching.
I'd like to start off the discussion by pasting what you said into this issue:
Hello!
Pattern languages were among the many randomish things I have looked at, out of curiosity, perhaps a relavant resource is the work of Joseph Bergin, who details patterns for teaching at the level of concepts: Now, from what I have read, this section of foundersandcoders is concerened with patterns at the level of curricular design, but my interest in pattern languages (and it was a quite loose and inexact interest) occured within a time when I was looking at forms of documentating my own self-teaching experiments, so as to make the experiments themselves more efficient, reproducible but also to be easily more recoverable; that is to say, my own focus where probably "patterns for teaching onself such and such"., and were For example, Zed Sahw provides a simple formula of "type it in and make it run", whereas a UBC course on software construction has "to understand code, model it using something like pseudocode, flow-chart. UML-diagrams". Similar to Feynman's, rough paraphrase " I only understand what I constructed", a formula occured to me, if one had a way of systematically constructing an algorithm, then one can reverse the process to understand a piece of code. For example, if the process were, describe the input and output data, write the specifications, from the specification construct examples, from the examples construct the tests, from all of the above write the pseudocode, and froma all that translate the pseudocode into code, then given a fragment of code, one would simply reverse the process and once this process is done be said to understand the code.
I should have some kind of point here, yes? I suppose that would be, from my own vague experiments at documentation, the attempt here to encode a curriculum intrigues me, and I look forward to see what happens. Wait, wait, there is a point: patterns for teaching how to code and patterns for learning how to code might be/should be mirror opposites!
There are many many things that Founders and Coders does very well. Not least, encouraging students' curiosity & arming them with the confidence to attack new things. Most alumni I know are always learning something new in their free time, often in addition to whatever they are learning as part of their job. Our community definitely inspires curiosity.
But I do feel we could do better in terms of arming ourselves with solid, testable methods for self teaching, as well as classroom learning. This is part of what "research afternoon" was originally introduced for, but a small example of student feedback for more can be seen from the curriculum planning session with our latest cohort - see the comemnt about "learning to to learn things" and being taught the art of googling.
Everything you spoke about reminded me very strongly of a conversation I had with Nick Field, who is also from the 9th cohort (like me). We spoke about getting students to: write out their own learning goals, set a hypothesis for how they might achieve that (e.g. "to understand code, model it using something like pseudocode, flow-chart. UML-diagrams"), try it and then reflect. We also spoke about trying to gather advice from previous alumni and record it in some kind of useful way.
@njsfield, I hope you don't mind me tagging you in here. I think this might interest you? @YvesMuyaBenda can you tell us more about your own "vague experiments"? ๐
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.