Advertisement
acbart

Thoughts on teaching Machine Organization

Nov 26th, 2014
163
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.97 KB | None | 0 0
  1. Hi Dave. Here are my initial thoughts
  2.  
  3. 1) Most important thing to do first: establish your learning objectives. What theories, tools, techniques, facts, etc. do you want your students to learn? Make a list of them, group them by priority. Be specific, and make them action-oriented (tinyurl.com/how-to-write-lo).
  4. 2) If you're doing any kind of assessment, do that next, by matching it up with your learning objectives. Even if you don't want to do "summative" assessment (e.g., assigning a pass/fail for the course), consider doing some "formative" assessment (feedback meant to help the learner check whether they learned what they should have). Feedback is the single most important part of learning (according to my Ed Psych TA).
  5. 3) Reduce your dependence on lecture. Never talk for more than 20 minutes at a time. Ask questions, give problems, let them code, let them read text, do something ACTIVE. People learn through interaction, and pretty much all of the Learning Science literature for the past 2-3 decades reveal that active learning is the best way to improve a classroom.
  6. 4) Think critically about the learning environment you want to foster. Classic method is to have everyone at desks staring down at you on the stage ("Sage on the Stage"), but that implies that learning can only come from you. Consider having students in groups while you walk around ("Guide by their side"), so that students can work together and interact.
  7. 5) Absolute best resource I can recommend for anyone interested in either learning theory or practical teaching concepts: http://www.learningandteaching.info/ . Seriously, this site is amazing, especially the middle column.
  8. 6) Academic motivation has five potential sources:
  9. * Empowerment: The amount of control that a student feels that they have over their learning -- e.g., course assignments, lecture topics, etc. This can vary greatly, since some students want more or less freedom.
  10. * Usefulness: The expectation of the student that the material they are learning will be valuable to their short and long term goals. There is no clear delineation of the time-scale for these goals, but there is nonetheless a distinction between strategic skills that students need to be successful in careers and personal interests and the tactical skills they need to complete present-day tasks.
  11. * Success: The student's belief in their own ability to complete assignments, projects, and other elements of a course with the investment of a reasonable, fulfilling amount of work.
  12. * Interest: The student's perception of how the assignment appeals to situational or long-term interests. The former covers the aspects of a course related to attention, while the latter covers topics related to the fully-identified areas of focuses of the student.
  13. * Caring: The students perception of other stakeholders' attitudes toward them. These stakeholders primarily include their instructor and classmates, but also can be extended to consider other members of their learning experience (e.g., administration, external experts, etc.).
  14.  
  15. A really good teacher will try and use one or more of these. Don't neglect convincing the students that what you are teaching them is useful (how will they use x86 in their day-to-day job?), and using situational interest (be attention grabbing, use interesting examples). These aren't all required, but typically it's useful to keep them in mind at each phase of your students' experience.
  16. 7) Contextualization matters a lot in learning, because it impacts how students transfer knowledge to new problems and domains. What "anchor" will you ground your examples in? Depending on how well you know your audience, you might be able to choose something particularly motivating:
  17. *) If you know they're all video game nerds, consider looking at the decompiled source code of a video game (e.g,. https://github.com/kanzure/pokecrystal).
  18. *) If they're all business-oriented people, grab a program they use on the regular and crack it open.
  19. *) Alternatively, ignore all of this and do something more abstract - more professional, adult students may react better if they think this is a truly deep CS topic (e.g., http://csapp.cs.cmu.edu/public/labs.html)
  20. 8) A useful pedagogical technique is the "Spiral Method" (also known as "Use-Modify-Create"). Let them play with some code examples, let them modify values and lines of code, and then let them create their own example. It's very successful in the Scratch world, but I think it works well with programming in general.
  21. 9) Don't neglect your teaching tools. Machine Organization is not inside my purview, but I've heard of some tools on how to teach it. For example: http://www2.onlinedisassembler.com/odaweb/
  22.  
  23. Most of this advice is generic, but I possibly can give some more specific advice if I see a list of Learning Objectives. If you're having a hard time making that list, consider raiding the CS Curriculum 2013 (http://www.acm.org/education/CS2013-final-report.pdf). Good luck with this, let me know if you have any questions!
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement