Programming for Engineers  

Course Notes


   Site map

John Browne's Home Page
» Grassmann Algebra » Book
» Programming for Engineers » Course Notes
» Probabilistic Design » Course Notes

   Index to this page

| Programming for Engineers Course Notes | Contact Details |

The new address of this page (February 2007) is http://grassmannalgebra.info/programmingforengineers/coursenotes. If you used an old link you will have been automatically re-directed. Please update any old links, as they will soon be dead.


  Programming for Engineers Course Notes

File format  This page enables you to read the text of the Programming for Engineers course notes by clicking on the modules below. The modules are in Portable Document Format (.pdf), and provided your browser is enabled with Adobe Acrobat Reader or your computer is running Mac OS X, you should be able to read them on screen and print them if you wish. The notes were originally generated in Mathematica version 4.

Copyright agreement  All the chapters you see available here are of course protected by copyright. It is a condition of your accessing the files that you agree to use them for your own individual private study only. They may not otherwise be copied or distributed in any way in whole or in part without the permission of the author. You may reference or quote small sections of the work as long as due acknowledgment is made.

  If you wish to contact me, please email me using the address at the bottom of the page.


Title Page  [65 KB]

Table of Contents  [52 KB]

1. Introduction. Getting Started  [121 KB]
Introduction to the course. Introduction to programming languages. Introduction to Mathematica. References and resources. Getting started. Exercise: A Tour of Mathematica.

2. Expressions and Evaluation  [114 KB]
Introduction. Expressions. Evaluation. Assignment. Lists and tables. Problems.

3. Rules and Patterns  [87 KB]
Introduction. Rules. Patterns. Compound expressions. Problems

4. Writing Functions  [82 KB]
Introduction. Understanding function definitions. Clearing function definitions. An example with three variables. Summary: The form of a function definition. Problems.

5. Writing Modules  [112 KB]
Introduction. The need for modules. A template for using a module. How to develop a module. Advanced concept: How modules keep values local. Problems.

6. Functional Programming  [114 KB]
Introduction. Map. Apply. Thread. Outer. Anonymous functions. Nest. NestList. FixedPoint. Summary: When to use functional programming. Problems.

7. Rule-based Programming  [101 KB]
Introduction. Constraining rules with simple patterned arguments. Constraining rules with x_Head. Constraining rules through predicates. Constraining rules through conditions. Problems.

8. Graphics Programming  [227 KB]
Introduction. Showing graphics objects. The FullForm of a graphics object expression. Two dimensional graphics primitives. Graphics options. Style directives. Controlling graphic output. Graphics packages. Graphics arrays. Animation. Problems.

9. Concluding Techniques  [107 KB]
Introduction. Timing. Printing. Advanced patterns. Recursion. Dynamic programming. Procedural programming. Problems.

A. Packaging Your Program  [87 KB]
Introduction. Documenting a program. Your workbook. Your journal. The package. The User Guide. Problem. A final note on the art of programming.

B. Programming Project  [170 KB]
Introduction. Build your model. Setting up your data. Exploring the performance.

C. Past Test Questions  [138 KB]
Teat 1: Expressions evaluation, rules, and patterns
Test 2: Writing functions
Test 3: Using modules
Test 4: Functional programming
Test 5: Rule-based programming
Test 6: Graphics programming
Test 7: Concluding techniques
Test 8: Packaging your program


  Contact Details

John M Browne
http://grassmannalgebra.info

To avoid spam spiders stealing my email address, please construct it from "jbrowne at grassmannalgebra.info".

Copyright John M Browne
This page last updated February 2007