Software issues for LING2250/LING5250

This is a lab course. What you learn is heavily dependent on doing exercises in MATLAB or Octave (the free software version of MATLAB). There are several reasons for this:

MATLAB has long been widely used in signal-processing research, and so learning it will also give you access to an enormous amount of relevant software written by researchers in many subdisciplines. From the beginning, this course's lecture notes have been based entirely on MATLAB examples.

Octave is a free software (GPL) language that "mostly compatible with MATLAB" (see this link for a discussion of (in)compatibilities).

If you don't already have easy access to Octave or MATLAB, on your own computer(s), you should download and install one or both of them right away.

Installing Octave on Windows and OS X systems involves several steps and may take some time.

According to this page,

Student Licenses: Wharton, SEAS, and SAS have special arrangements for distributing MATLAB. All other students may obtain MATLAB free of charge. Please request a license at licenses@upenn.edu. An instruction sheet will be provided with instructions on obtaining the license.

Here are links to the instructions for SAS MATLAB licenses, SEAS MATLAB licenses, and Wharton MATLAB licenses.

After graduation, a MATLAB license may become quite expensive for you (with more costs for toolboxes), so we continue to support Octave for (nearly all) of the work in this course. There may be some things for which MATLAB is needed, because there are some MATLAB "toolboxes" (= packages) for which there are no Octave counterparts, and some freely-distributed MATLAB software may have incompatibilities with Octave.

MATLAB also has special provision for inter-operation with Python, and GNU Octave has some similar things, which may be helpful for some people.