Project ideas for discrete mathematics course using MATLAB?
matlab
Solution
General Suggestions:
There are many teaching resources at The MathWorks that may give you some ideas for course projects. Some sample links:
- The MATLAB Central blogs, specifically some posts by Loren that include using LEGO Mindstorms in teaching and a webinar about MATLAB for teaching (note: you will have to sign up to see the webinar)
- The Curriculum Exchange: a repository of course materials
- Teaching with MATLAB and Simulink: a number of other links you may find useful
Specific Suggestions:
One of my grad school projects in non-linear dynamics that I found interesting dealt with Lorenz oscillators. A Lorenz oscillator is a non-linear system of three variables that can exhibit chaotic behavior. Such a system would provide an opportunity to introduce the students to numerical computation (iterative methods for simulating systems of differential equations, stability and convergence, etc.).
The most interesting thing about this project was that we were using Lorenz oscillators to encode and decode signals. This "encrypted communication" aspect was really cool, and was based on the following journal article:
Kevin M. Cuomo and Alan V. Oppenheim, Circuit Implementation of Synchronized Chaos with Applications to Communications, Physical Review Letters 71(1), 65-68 (1993)
The article addresses hardware implementations of a chaotic communication system, but the equivalent software implementation should be simple enough to derive (and much easier for the students to implement!).
Some other useful aspects of such a project:
- The behavior of the system can be visualized in 2-D and 3-D plots, thus exposing the students to a number of graphing utilities in MATLAB (PLOT, PLOT3, COMET, COMET3, etc.).
- Audio signals can be read from files, encrypted using the Lorenz equations, written out to a new file, and then decrypted once again. You could even have the students each encrypt a signal with their Lorenz oscillator code and give it to another student to decrypt. This would introduce them to various file operations (FREAD, FWRITE, SAVE, LOAD, etc.), and you could even introduce them to working with audio data file formats.
- You can introduce the students to the use of the PUBLISH command in MATLAB, which allows you to format M-files and publish them to various output types (like HTML or Word documents). This will teach them techniques for making useful help documentation for their MATLAB code.
Problem
A professor asked me to help making a specification for a college project. By the time the students should know the basics of programming. The professor is a mathematician and has little experience in other programming languages, so it should really be in MATLAB. I would like some projects ideas. The project should - last about 1 to 2 months - be done individually - have web interface would be great - doesn't necessary have to go deep in maths, but some would be great - use a database (or store data in files) What kind of project would make the students excited? If you have any other tips I'll appreciate. UPDATE: The students are sophomores and have already studied vector calculus. This project is for an one year Discrete Mathematics course. UPDATE 2: The topics covered in the course are - Formal Logic - Proofs, Recursion, and Analysis of Algorithms - Sets and Combinatorics - Relations, Functions, and Matrices - Graphs and Trees - Graph Algorithms - Boolean Algebra and Computer Logic - Modeling Arithmetic, Computation, and Languages And it'll be based on this book Mathematical Structures for Computer Science: A Modern Approach to Discrete Mathematics by Judith L. Gersting