In the programs offered, we address established pedagogy in Computer Science and Applications, and contributions from other subjects including Mathematics, Science and Languages, in order to facilitate teaching and learning for students engaged in this new enterprise. Our approach to pedagogy is expressed imperatively, both as a reminder to ourselves, and as an urgent, cordial invitation and challenge to both teachers and students to join the debate. We are initiating and setting out this discussion specifically in the context of the programs offered, in order to illustrate practically our proposals.
1. Develop our Own Model of Learning and Teaching in Computing : Does our model include our rights as a person as well as our responsibilities? Do we explicitly reflect on us and our work. Does boundary figure in our model? Do we achieve a working balance in our life? Do we feel creative in our work? Having a model of teaching and learning is an example of abstraction. What sort of learner are we? What sort of teacher/students are we? How do we do/be as a teacher/student of computing? Instructionism or Constructionism?
We Collaborate: We network and work in partnership with colleagues : And on the ground with teachers and pupils in our classes, as guide, co-explorer and mistake maker.
We improve our Computer Science Pedagogy : We take part with a group of colleagues to share appraisal and feedback on our individual teaching skills.
We Teach - Programming is more : In a nutshell it involves Computer Science pedagogy - a model of teaching and learning, elements of computational thinking, control structures, data structures, at least 3 paradigms of programming… to change the world.
2. Think like a Computer Scientist : We underpin the learning with our model of Computational Thinking (ADAGE) and make the thinking explicit wherever we can – the content and the process are important to understanding. In short: “making and making sense: hands on and minds in”.
- Algorithmic Thinking – thinking through the strategy and steps required to solve a problem
- Decomposition – breaking a problem down into smaller components
- Abstraction – reducing complexity by using or creating tools
- Generalization — adapting solutions so that they can be used to solve a wider range of problems
- Evaluation – assessing whether a program or technique works correctly or efficiently. Choose an Exciting Cross-Curricula Topic to explore when teaching programming — programming is not an end in itself; for most people it is always about something.