Course on Scientific Computing (with Mathematica)

“Computing” has become an important mode of exploration in many fields. At Drew University, I’ve been offering an introductory, practical course on scientific computing with Wolfram Mathematica, which is also used in other courses (e.g., calculus, physical chemistry, mechanics, math physics, etc.). The main goal is to expose students to various things technical computing software package can do. The prerequisites are calculus and introductory physics. The example of coupled oscillators is used repeatedly throughout the semester.

This poster (presented at the NJEDge annual conference last year) shows some examples of topics.

Here are the Mathematica notebooks (as pdf) for each topic. (I am also happy to share homework assignments and their solutions with other instructors.)

Similar courses:

Course on neuro-tech

This semester (spring, 2017), I taught a course titled “New breakthrough technologies in neuroscience research”:

Catalog description: In the past decade, neuroscientists have developed a number of new, exciting methods for studying the brain. For examples, some research labs now use laser to activate genetically-engineered neurons (optogenetics). Others have created a detailed 3-dimensional map of neural connectivity at nano-scale resolution, based on electron microscopy images (connectome). Some other labs are developing neuroprosthetic devices that can be controlled directly by neural activity (brain-computer interface). In this course, we will learn about these breakthrough technologies, by reading primary research articles.

Students read the following papers (chosen by me):

  • optogenetics: “Millisecond-timescale, genetically targetted optical control of neural activity” by Boyden et al. (2005)
  • connectome: “Connectomic reconstruction of the inner plexiform layer in the mouse retina” by Helmstaedter et al., (2013); “Space-time wiring specificity support direction selectivity in the retina” by Kim et al., (2014)
  • Brain-Computer Interface: “Reach and grasp by people with tetraplegia using a neurally controlled robotic arm” by Hochberg et al., (2012)

Students made presentations on the following neuro-tech:

  • Dopamine nanosensor: “High-resolution imaging of cellular dopamine efflux using a fluorescent nanosensor array”
  • Brainbow: “Transgenic strategies for combinatorial expression of fluorescent proteins in the nervous system”
  • Neuronal Positioning System: “Multispectral labeling technique to map many neighboring axonal projections in the same tissue”
  • BCI: “A high-performance brain-computer interface”
  • Retinal implant: “Photovoltaic restoration of sight with high visual acuity”
  • Photoacoustic imaging: “Noninvasive photoacoustic angiography of animal brains with near-infrared light and an optical contrast agent”
  • Gamma Knife: “The Leksell Gamma Knife Perfexion and comparisons with its predecessors”

Learning to extract “big ideas” from these research articles definitely takes some practice and hard work.

Python for Matlab users

Found several resources on Python for Matlab users.

  • xkcd: Python
  • (from scipy)
  • (Nice table)
  • (Blog)
  • (Blog)
  • (Presentation):

Data visualization skills

Some thoughts on teaching data visualization skills.

  • Need to go beyond learning to use a piece of software, so that students develop an appreciation (an “eye”) for effective communication. It would be great to collaborate with visual arts department.
  • Emphasis on removing noise/clutter and enhancing signal (i.e., increasing signal to noise ratio).
  • It is a part of general communication skills. The same principle applies to making slides or diagrams.
  • Students need to learn a few basic forms (scatter plot, bar graph, histogram).
  • They also need to realize they have control over the plotting elements (scales, labels, marker size/colors, thickness, tick marks, etc.), and learn a few simple things that enhances clarity.
  • Initial target? students doing summer research or honors thesis projects.

A few resources: