November 21, 2003

Bulk view

Cool elisp hack!

I've gotten the bot-like improvements I wanted thanks to these snippets of elisp code:

(require 'hippie-exp)

(setq hippie-expand-try-functions-list
      '(sacha/try-expand-factoid-from-bbdb
        try-complete-file-name
        try-expand-all-abbrevs
        try-expand-dabbrev-from-kill
        try-expand-dabbrev-visible
        try-expand-dabbrev-all-buffers))

;; Particularly fun with ERC. I am now a bot!
(defun sacha/try-expand-factoid-from-bbdb (old)
  "Try to expand from BBDB. If OLD is non-nil, cycle through other possibilites."
  (unless old
      ;; First time, so search through the BBDB records for the factoid.
    (progn
      (he-init-string (he-dabbrev-beg) (point))
      (setq he-expand-list nil)
      (mapc
       (lambda (item)
         (setq he-expand-list (append he-expand-list (list (bbdb-record-getprop item 'blog))))
         (setq he-expand-list (append he-expand-list (list (bbdb-record-getprop item 'web))))
         (setq he-expand-list (append he-expand-list (list (car (bbdb-record-net item)))))
         (setq he-expand-list (append he-expand-list (list (bbdb-record-getprop item 'notes)))))
       (bbdb-search (bbdb-records) he-search-string he-search-string he-search-string he-search-string nil))
      (setq he-expand-list (delq nil he-expand-list))))
  (while (and he-expand-list
              (or (not (car he-expand-list))
                  (he-string-member (car he-expand-list) he-tried-table t)))
    (setq he-expand-list (cdr he-expand-list)))
  (if (null he-expand-list)
      (progn
        (if old (he-reset-string))
        nil)
    (progn
      (he-substitute-string (car he-expand-list) t)
      (setq he-expand-list (cdr he-expand-list))
      t)))

hippie-expand inside an ERC buffer will then cycle through the blog, web, net and notes fields of whatever entries I have. Yay! =)

HideShow mode

M-x hs-minor-mode

I think I rather like hs-hide-all...

(defun sacha/hs-minor-mode-hide-all ()
  "Turn on `hs-minor-mode' and hide everything."
  (hs-minor-mode 1)
  (hs-hide-all))

(add-hook 'emacs-lisp-mode-hook 'sacha/hs-minor-mode-hide-all t)

Learning styles

http://www.ncsu.edu/felder-public/Papers/LS-1988.pdf

The paper has important insights. I learn inductively - from complex examples, I try to figure out principles and ideas. However, classes tend to be structured deductively - neat, organized, and bewildering.

Important excerpt:

Teaching Techniques to Address All Learning Styles

- Motivate learning. As much as possible, relate the material being presented to what has come before and what is still to come in the same course, to material in other courses, and particularly to the students' personal experience (inductive/global).

- Provide a balance of concrete information (facts, data, real or hypothetical experiments and their results) (sensing) and abstract concepts (principles, theories, mathematical models) (intuitive).

- Balance material that emphasizes practical problem-solving methods (sensing/active) with material that emphasizes fundamental understanding (intuitive/reflective).

- Provide explicit illustrations of intuitive patterns (logical inference, pattern recognition, generalization) and sensing patterns (observation of surroundings, empirical experimentation, attention to detail), and encourage all students to exercise both patterns (sensing/intuitive). Do not expect either group to be able to exercise the other group's processes immediately.

- Follow the scientific method in presenting theoretical material. Provide concrete examples of the phenomena the theory describes or predicts (sensing/ inductive); then develop the theory or formulate the mod(intuitive/inductive/ sequential); show how the theory or modcan be validated and deduce its consequences (deductive/sequential); and present applications (sensing/deductive/sequential).

- Use pictures, schematics, graphs, and simple sketches liberally before, during, and after the presentation of verbal material (sensing/visual). Show films (sensing/visual.) Provide demonstrations (sensing/visual), hands-on, if possible (active).

- Use computer-assisted instruction—sensors respond very well to it. (sensing/active).

- Do not fill every minute of class time lecturing and writing on the board. Provide intervals—however brief—for students to think about what they have been told (reflective).

- Provide opportunities for students to do something active besides transcribing notes. Small-group brainstorming activities that take no more than five minutes are extremely effective for this purpose (active).

- Assign some drill exercises to provide practice in the basic methods being taught (sensing/active/sequential) but do not overdo them (intuitive/reflective/ global). Also provide some open-ended problems and exercises that call for analysis and synthesis (intuitive/reflective/global).

- Give students the option of cooperating on homework assignments to the greatest possible extent (active). Active learners generally learn best when they interact with others; if they are denied the opportunity to do so they are being deprived of their most effective learning tool.

- Applaud creative solutions, even incorrect ones (intuitive/global).

- Talk to students about learning styles, both in advising and in classes. Students are reassured to find their academic difficulties may not all be due to personal inadequacies. Explaining to struggling sensors or active or global learners how they learn most efficiently may be an important step in helping them reshape their learning experiences so that they can be successful (all types).

http://www.ncsu.edu/felder-public/Papers/LS-1988.pdf