Category: Teaching and Learning
-
There are no mistakes only lessons; a lesson is repeated until learned; tuition varies
One of my principal sources of wisdom is Cherie Carter Scott's book, If Life is a Game, These are the Rules, an elaboration of her Ten Rules for Being Human, which initially appeared (inadvertently unattributed) in Jack Canfield's book, Chicken Soup for the Soul. My two favorite life rules are: 3. There are no mistakes,…
-
Motivating and Visualizing Recursion in Python: Three Flavors
Yesterday, I encountered some great instructional posts on programming, Python and the IPython Notebook. How to more effectively teach the concept of recursion (by Gustavo Duarte) How to use the web-based PythonTutor to learn Python (by Philip Guo) How to embed an IPython Notebook inside a blog post (by Brian Granger) I thought it would…
-
Python for Data Science: A Rapid On-Ramp Primer
In my last post, I was waxing poetic about an IPython Notebook demonstration that was one of my highlights from Strata 2014: "this one got me the most excited about getting home (or back to work) to practice what I learned" Well, I got back to work, and learned how to create an IPython Notebook. Specifically, I…
-
The Scientific Method: Cultivating Thoroughly Conscious Ignorance
Stuart Firestein brilliantly captures the positive influence of ignorance as an often unacknowledged guiding principle in the fits and starts that typically characterize the progression of real science. His book, Ignorance: How It Drives Science, grew out of a course on Ignorance he teaches at Columbia University, where he chairs the department of Biological Sciences…
-
Valuable Advice on Preparing for Technical Interviews … and Careers
The cover of Gayle Laakmann McDowell’s book, Cracking the Coding Interview, and links to her Career Cup web site and Technology Woman blog are included in the slides I use on the first day of every senior (400-level) computer science course I have taught over the last two years. These are some of the most…
-
How to approximate BorderLayout with GridBagLayout or BoxLayout
I recently encountered some challenges using Java 6 Swing and AWT components to develop a GUI with a top-level BorderLayout, which did not prevent the shrinking of components in its CENTER area in response to an expanding JList in its WEST area. I provided more context about this problem (and its solution) in my last post,…
-
How to Prevent a JList in a JScrollPane on a JPanel from Resizing
I've been working on a graphical user interface to enable a user to view, modify and add relevance judgments for a set of results returned by a search engine in response to a set of topics. The GUI was developed as part of some work I've been doing on the Text REtrieval Conference (TREC) 2012…
-
def main() in Python considered harmful
I recently graded the first Python programming assignments in the course I'm teaching on Social and Computational Intelligence in the Computing and Software Systems program at University of Washington Bothell. Most of the students are learning Python as a second (or third) language, approaching it from the perspective of C++ and Java programming, the languages…
-
The Independent Project: An Inspiring Experiment in Student-Designed Learning
The Independent Project is an experimental school within a school, designed and implemented by a group of students at Monument Mountain Regional High School in Great Barrington, MA. I recently wrote about Carl Rogers' ideas regarding student-centered learning, in which a professor (who in this case was also a therapist) plays the role of facilitator,…
-
Principle-centered Invention: Bret Victor on tools, skills, crafts and causes
I just watched an incredibly inspiring video of Bret Victor's CUSEC 2012 talk, Inventing on Principle. Bret's principle is creators need an immediate connection to what they are creating. He illustrates this principle during the first 35 minutes of the presentation, demonstrating some fabulously empowering "live coding" tools to enable programmers to manipulate and immediately…