Course Introduction

What do your profs look like?

Quibble Question

Why are you taking this course?

Pick a button
It's required
I love computers
All men are created equal
In the beginning, MathWorks created Matlab

Or Enter an answer

See results

Why Computing?

Part of core education for Engineers (and anyone who makes something these days).

From passive to active! Freedom from apps! Control over your own scientific instrument.

"Tools" don't always solve your problem! English is a powerful tool but writing is still hard. Mathematica solves super-complex symbolic mathematics problems 'Automagically' but you have to understand what you want in mathematical terms, and Mathematica's little ways, in order to get anything significant done.

Programming as Engineering Design

Computers at Engineering Frontier

Computers in Daily Engineering Life

Some Course Goals

You and Us (your instructors)

"As a teacher, my goal is for my students not to need me any more. I knead your brain --- you don't need me."

Jacobus in Devil's Trill, Gerald Elias


They call it The Onion because you often don't know whether to laugh or cry.

Success in this course depends HEAVILY on reading and understanding sometimes long stuff : long directions, long tutorials, long assignments, long web pages, long textbook. Long! long!! long!!! Some important stuff just doesn't seem to fit in a tweet. Or if it does, it takes you hours of contemplation to understand its implications (e.g. F = ma or E = mc2)

If you can't or don't read effectively you will likely have serious difficulty with this course.

Reading's a bit old school, but it's empowering. Unlike your profs, a book (and usually the internet) is a friend that's always there.

The Course

Class Computers

Course Details

Programming Laboratories

Programming Languages

Two Famous, Elegant, Universal but Hard-To-Program Computers:

The Turing Machine

Credits: 1: 2: Tom Dunne American Scientist, March-April 2002. 3:

The Game of Life

Game of Life.

Practical Computer Languages

Textual Programming Examples

Java --object-oriented, tightly typed, common, compile, link, run:

public class myFirstProgram{ public static void main(String args[]){ System.out.println("Hello world!"); }}

C -- glorified machine language, very common, compile, link, run:

#include < stdio.h > main() { printf("Hello, world!"); }

Python -- (object-oriented) and Matlab (no religion) intepreters, common. No (visible) compile or link -- just type and run:

You Type:
'Hello, world!'
Interpreter Answers:
'Hello, world!'

Graphical Programming Example I: Alice

Alice -- object-oriented, graphical, pedagogical: drag, drop, run:


Graphical Programming Example II: LabView

LabView -- practial engineering tool, graphical: drag, drop, wire, run:

LabView and USB-6009

Symbolic Mathematics Languages

Mathematica, Maple, MatLab Symbolic Toolbox

Symbolic and numeric mathematics, animations, graphics. Very practical and common. Calls for fewer programming chops, more mathematical awareness and maturity. Here's Euler's method at integrating a simple ODE (we'll do this in 160 in a few weeks).

steps = 200; dt = 1 = 10; period = 10; Clear[y]; Y = Array[y, steps + 1, 0]; y[0] = -period / 2 / Pi; Do[ y[i+ 1] = y[i] + dt Sin[s2 Pi i dt / period], {i, 0, steps - 1}] ...(four plotting commands)...

Note the "dt Sin..." bit? That's computing the symbolic, analytical derivative of the Sine (i.e. Cosine) using symbol ic mathematical computing. This version produces something like the figure below:




Turing complete, rather array-oriented capabilities, huge stable of mathematical, statistical, data analysis, graphical functionality. It's a functional language, in which functions (not objects, classes, data structures...) are the fundamental building blocks.

Cells hold values or formulae that involve other cells. Excel solves the constraint satisfaction problem of keeping all cells consistent.

Very common for engineering data analysis: a contemporary slide-rule or calculator. Also common format for data transfer. In our opinion, only worth using for its constraint-satisfaction capabilities. Taxes and Grading Algorithms: Excel. Everything Else: Matlab. Learn it yourself or fight it: recommend and stick to Matlab.

Matrix (and everything else) Language


An interpreted, C-like programming facility. Used in Engineering and (for us) in interactive programming with graphics and a huge library of useful functions, toolboxes, real-time hardware interfaces, etc. Slow, expensive, seriously licensed, unprincipled grammar; but lingua franca, powerful, often 'does the right thing'. Could easily replace simple use (most of BSEE use) of Excel and LabView.

Matlab as Calculator

For Next Class

Get the textbook. Bring it to class.

Start Week 1 Exercises. MATLAB should run at any IT site on campus. If not Tell Us!

If you don't have a text, improvise: arrange to share with classmate, use texts on reserve in Carlson, find a different text you like (library), use our on-line Overheads and Notes for next week, use on-line tutorials, Matlab help,etc.
A fine exercise: cultivate invincibility! No whingeing!


Last update: 2/21/2001: RN