Information on course projects


In CMP 150, each of you is becoming very familiar with a basic core set of skills in MATLAB that generalize to many different applications and professional activities. But there is much (MUCH) more in MATLAB than what you see in that set. And technically MATLAB’s capabilities could be extended as far as your imagination could take you by using MATLAB’s programming language.

So, as part of the course, each student is going to do a project covering some aspect of MATLAB that is connected to the core set of skills but not contained in them. We’re doing this for two reasons:

  1. The projects will allow us all to get a taste of some further things that MATLAB is capable of; and
  2. It will allow each student the opportunity to be responsible for learning yet another bit of MATLAB on his or her own, with instructor guidance, which extends the course goal of being able to “feed yourselves” when it comes to learning new things.

Click the link to learn more about projects.

So here’s how projects will work.

Each student will select a topic to study for her or his project. You may pick whatever topic interests you, but it must involve a set of functions or features of MATLAB that we have not learned in the class. I have created a sample list of topics from which you can choose; this appears a little bit further below. There should be something there for every taste. You will commit to your project topic no later than 4:30 PM on Friday, April 8. Topics will be assigned on first-come/first-served basis, so when you think you’ve found a topic you’ll like, go ahead and commit to it right then so nobody else will “steal” it. However: Don’t commit to a topic prematurely; do some research and documentation searching on that topic so you’ll know what you’re getting into first.

Over the next few weeks, you will learn the set of functions or features you have chosen. The way you learn new functionality in a software package is to read documentation and play around with things. Make up your own examples; try out other people’s examples and modify them.

By April 20, you’ll be asked to write a proposal for a “demo problem” that shows how the functions or features you selected actually work by way of applying them to a problem. This problem can be something you make up, an extension or alternative solution to a lab problem we’ve done in class, or a problem you found in an external source. It also needs to be fairly short, because of the next point:

The entire class period on Wednesday, May 11 will be spent having students present their projects to the class. Your presentation will consist of a brief description of your topic, including the syntax of any functions or features you’ve selected, followed by a live demo of your “demo problem” you proposed earlier. You will be given 5 minutes to complete your demo — any more than this and we will run out of time in the class. You will also submit a writeup of your demo, as an M-file that is formatted for publication in HTML format.

Projects will be graded out of 70 points, broken down as follows:

  • Selection of topic before the April 8 deadline: 2 points
  • Submission of complete demo proposal before the April 20 deadline: 3 points
  • Demo proposal: 10 points
  • Live demo on May 11: 35 points
  • M-file for demo: 20 points

The demo proposal will be graded on the basis of how well your problem highlights the features you selected for your project, how likely it is that the demo will fit within a 5-minute time frame, and the clarity and quality of your writing. Rubrics for the remaining project components will be released later.

Now what follows is a list of sample topics from which you can choose. This is not an exhaustive list, so if there is some feature of MATLAB you think you might want to explore that is not here, let me know.

  • The SCATTER command and Gapminder. Earlier in the course, we use the PLOT command to create scatter plots of data, but there is an actual SCATTER command that does this as well with some more finely-tuned control over the data markers. Learn all the features of this command and use it to reproduce some of the cool data visualizations found at the website Gapminder.org. Here’s an example of what I mean.
  • The SCATTER3 command and 3D data plotting. The SCATTER3 command in MATLAB will make a 3D scatterplot of three-variable data sets. Learn about this command and its options and then use it to make some meaningful scatterplots of real-world 3D data.
  • Working with differential equations. A differential equation is an equation that relates a function to one or more of its derivatives. MATLAB has some advanced built-in functionality for handling differential equations such as the ODE45 command. Learn about differential equations and some of the ways that MATLAB solves them numerically and graphically.
  • Alternative axis systems for plots. In a usual two-dimensional plot, both the horizontal and vertical axes are plotted on a linear scale — the tick marks increase by the same amount at each grid point. But this need not be the case. The so-called “log-log” and “log-linear” plots are useful for many applications involving exponential or power functions, and MATLAB’s LOGLOG, SEMILOGX, and SEMILOGY commands allow you to create such plots. Learn about these commands and use them on a real-world problem.
  • Using FPRINTF to write output to files. FPRINTF is a powerful command for producing formatted output. We have used it to output to the screen, but it can also be used to write output to a text file that can be saved, reopened, and shared later. Learn how to do this.
  • Date and time operations. MATLAB comes with several commands for dealing with dates and time. Learn about these, culminating in the use of the DATETICK command to plot formatted dates on the horizontal axis of a plot that involves dates as the independent variable.
  • Random number generation. MATLAB has three commands — RAND, RANDN, and RANDI — that generate random numbers. Learn about these commands and use them in a real-world setting.
  • Numerical integration features of MATLAB. Some of the approximate integration techniques you have learned in MAT 142 are built in to MATLAB. Learn about MATLAB’s integration features such as QUAD (an adaptation of Simpson’s rule) and TRAPZ.
  • Taylor polynomials and TAYLORTOOL. The lab problem set from March 23 introduced you to the idea of a Taylor approximation. MATLAB actually has built-in functionality for working with Taylor polynomials, one using the TAYLOR command and the other using an interactive environment called TAYLORTOOL. Learn about these and use them, for example in one of your MAT 142 homework problems.
  • Working with image files. MATLAB has sophisticated features for working with image files. Learn about the IMREAD, and other image-related commands to read in an image, modify it in some way, and write the result to an image file.
  • Working with sound files. MATLAB can also work with sound files. Learn how to convert a recording into a MATLAB file, visualize the sound file, alter it, and write the result to a sound file that can be played back.
  • Making graphical user interfaces with GUIDE. MATLAB comes with a package called GUIDE for building interactive graphical user interfaces. Learn about GUIDE and make a graphical user interface that could be of use to a student in MAT 135 or MAT 142.
  • Regular expressions in MATLAB. Regular expressions are concise and powerful means of searching for and matching string expressions. Learn about regex’s and how they are implemented in MATLAB.
  • More statistical plotting. We learned how to make scatter plots early on, but MATLAB can also do other kinds of data plotting, such as histograms, pie charts, and bar graphs. Learn how to do these and construct some useful examples.

One final word about projects, relating to my capacity for helping you: I am not an expert in all of the project topics I have listed above. In many of these topics, I will be learning from you a lot more than you learn from me. I will help you as far as my knowledge can take me; beyond that, I will be able to suggest helpful resources to check out, but from there it will be up to you to solve the problem you propose. You’re going to be the expert on your topic! But do consult with me as you work.

Enhanced by Zemanta

One Comment on “Information on course projects”

  1. […] M-file you are preparing for your demo is described in the original blog post announcing projects. It is to be an M-file, formatted like a professional document, and exported to HTML for posting on […]


Leave a comment