**Introduction**

The following software was written to aid in the teaching of BioNB330, *Introduction to Computational Neuroscience*. The software is meant to clarify concepts introduced in lecture and to serve as the basis for homework assignments. The programs written are:

- Neural model. This program allows the student to:
- Select the current applied to a model neuron, including pulses, sinusiodal, and noise waveforms.
- Set the neuron to linear, sigmoid, or integrate-and-fire (spiking).
- Set the neuron threshold, time constant and input resistance.
- View the threshold, input current waveform, and membrane voltage waveform.
- Measure times and amplitudes from the simulated time course.
- Produce an interspike interval histogram, if the neuron is in spikeing mode.

- Receptive field tuning. This program allows the student to:
- Set three "visual" input neurons, each with its own sinusiodally varying response to the angle of a rotating line. The optimal angle, amplitude of response, and zero offset may be chosen.
- Set the weight of connnection of each of the three neurons to an output neuron.

- Lateral Inhibition. This program is an extension of the previous program and allows:
- Set three "visual" input neurons, each with its own sinusiodally varying response to the angle of a rotating line. The optimal angle, amplitude of response, and zero offset may be chosen.
- Set the weight of connnection of each of the three neurons to each of three linear neurons.
- The second-level, linear neurons have optional cross-coupling and variable weights to a linear output neuron.

- Two cells with inputs and cross-coupling. This program alllows the student to:
- Select the current applied to two model neurons, including pulses, sinusiodal, and noise waveforms and output for the other cell.
- Set the neurons to linear, sigmoid, or integrate-and-fire (spiking).
- Set the neurons time constant and input resistance.

- Linear Association Learning. This program allows the student to:
- In learning mode: choose a binary input and output pattern, then increment the weights of the association matrix.
- In recall mode: choose a binary input. The association matrix is used to compute an output.
- Change the threshold used to set the outputs.

- Hebbian Learning. This program allows the student to:
- In learning mode: The program associates the inputs of five cells (with overlapping receptive fields) with an unconditioned stimulus. The effect is to increment the weights of of the connections between the input cells and the output cell..
- In sweep mode: The program sweeps throuugh all possible stimuli and produces a curve of the output amplitude based on the connection weights and an optional output threshold..
- The student can vary various learning parameters.

- Auto-Associative Learning
- A 2D binary pattern can be clicked into 25 input units. Each input unit is also an output unit.
- The connection scheme between units is all-to-all, so there are 625 weights for 25 units.
- After patterns have been stored, the recall function will attempt to complete an imcomplete input pattern.

**Using the Neural model program**

This program helps the student investigate simplified, computational models of neurons. The program requires Matlab 6.1 or later to run. Download the program by right-clicking on the above program link.

The user interface is shown below. In summary, you can:

- set up inputs to a model neuron
- choose the membrane parameters (resistance, time constant, threshold)
- choose the simulated output mechanism (spiking, sigmoid)
- run the simulation
- stop the simulation to measure outputs
- construct an interspike interval histogram (if in spike mode).

Each interactive control will be explained in following paragraphs. The mathematical basis for the model is explained on a separate page.

Input Sections

There are two inputs to the simulated neuron, each with its own controls. Each input acts as a current-input with a waveform determined by the control settings:

- The
`DC level`

edit field sets a steady, unchanging current. The default setting when the program starts is for...