====== Projects ====== ===== Criteria for evaluation of projects ===== The project is seen from the general look, however, following criteria are evaluated: ^ ^ **Criterion** ^ **Max. points** ^ **Note** ^ | 1. | Functionality | 10 | The program must generate some results corresponding to the assignment.| | 2. | Used syntax | 10 | Usage of build-in functions, vector x matrix operations, logical indexing, atomization of the code into self-standing functions, comments, readability of the code, etc. | | 3. | Debugging | 10 | Check and validation of input parameters with controlled error messages (ie. your error, not crash of MATLAB), especially when inputs from GUI are used. | | 4. | Graphical interface | 10 | Create the graphical interface with callbacks to provide full functionality from the GUI. Use some "smart" solution of data transmission between GUI and code. | | 5. | Time effectivity | 10 | Vectorization, elimination of loops, use timer instead of loop, allocation of variables. Can be checked using function ''profile()''. | * GUI created by ''appdesigner'' or ''guide'' will not be accepted. * Usage of''global'' variables will be accepted only in special and well-founded cases. * Every criterion must be evaluated with non-zero amount of points to pass the project. * At least 25 points must be achieved to pass the project. All knowledge needed to pass the project will be presented during the semester. Also individual project consultations are welcomed and highly recommended during the semester. //During project evaluation, the fact that this is an introductory course will be taken into account.// ---- Project no. 0 - **Your own topic.** It is necessary to consult your own topic with a teacher. Project no. 1 - **Stock price chart** Create an application that displays stock price chart of a stock exchange listed company. Let user choose the company’s name (ticker) and time span of the price time series. Display the time series of the price and add 200-days and 50-days moving averages. Use Yahoo! Finance web page (https://finance.yahoo.com, http://markets.financialcontent.com/stocks/), for instance, to access and download (directly from Matlab) the stock quotes. Project no. 2 – **Weather map** Create an application that displays air temperature around Europe. Use data of surface temperature measured by radiosondes at meteorological stations around Europe(http://www1.ncdc.noaa.gov/pub/data/igra/). Knowing coordinates of each weather station, display temperature distribution on a map overlay for a particular day chosen by user. Project no. 3 - **Terrain profiles** Display terrain profile (height above sea level as function of distance) between two points. The user selects the points by entering latitude and longitude of the respective locations. Use SRTM database (http://srtm.csi.cgiar.org/SELECTION/inputCoord.asp) to access digital terrain data. Project no. 4 – **Webcamera** Download online snapshots from a public place webcamera. Determine number of people on the snapshot at each instant of time. Project no. 5 – **Map of the world** Create 2-D map of the world. Enable following operations: zoom-in, zoom-out. Use cursor keys to move around the map. Use color coding to display terrain height and following digital terrain data: http://srtm.csi.cgiar.org/SELECTION/inputCoord.asp Project no. 6 – **CAPTCHA** Create CAPTCHA (for Completely Automated Public Turing Test To Tell Computers and Humans Apart) program to distort text entered by user. Project no. 7 – **Currency converter** Display spot (real-time) exchange rates of currencies pairs (eg. EUR/USD, EUR/GBP, EUR/CZK). make it possible for the user to calculate the equivalent amount of money in different currencies. Use the webpage https://ebroker.santandertotta.pt/public/currencies/?language=en on any other webpage you find. Project no. 8 - **Navigation** Create an application to find the shortest way between two points on map of a city. Project no. 9 - **Piano** Use computer keyboard as a piano keyboard to play simple songs. Project no. 10 – **Tower of Hanoi** Implement algorithm ‘Tower of Hanoi’. Visualize the evolution. Project no. 11 - **Ray tracing in optical fiber** Model ray trajectory in optical fiber. Consider the problem as two-dimensional. Display ray trajectory depending on angle of entrance and let user define distribution of refractive index of the fiber. Project no. 12 – **Calculator** Create application Calculator with GUI including display panel and buttons for basic unary and binary operations (addition, subtraction, multiplication, division, square root, etc.) Project no. 13 – **File manager** Create application ‘File Manager’ (two windows listing directories and files). Implement features like directory listing, copying, deleting and renaming files and directories. Project no. 14 – **Implementation of evolutionary algorithm** Implement an evolutionary algorithm (e.g. genetic algorithm) to find maximum of an n-dimensional function Project no. 15 – **Snake game** Create imitation of Snake videogame – snake moving in bounded space and growing its tail. Use keyboard to control the snake Project no. 16 – **Paint** Create application Paint. The application should make it possible to draw lines and curves using different colors and to save and open files. Project no. 17 - **Application with Undo Operation** Application could be almost anything, e.g. text editor, figure editor, calculator, sound editor, ..., but has to contain buttons Undo, Redo and editor of history. In the history editor it should be possible to rearrange list of actions and execute the whole history. Project no. 18 - **Plot of reflection coeficient in Smith Chart** Create a function which creates polar axes (function ''polaraxes'') with parametric circles common in Smith chart ([[https://en.wikipedia.org/wiki/Smith_chart|wiki]]). The function will be able to plot frequency dependence of complex reflection coefficient into the chart. Figure with the plot has to contain some interactive elements. Project no. 19 - **Examination of signal parameters** From loaded signal/data (voltage, sound, blood pressure, wind speed, ...) examine its basic parameters as amplitude, DC component, peak-peak voltage, rms voltage, frequency content, overshoot, ... Examined parameters depends on type of the signal. Source of the signal is up to you. Project no. 20 - **Statistical analysis** From some extensive data set (wind speed, temperature, animal population, company production, flow of water in a river, ...) compute and show its statistical parameters as probability distribution function, median, mean value, variance, quantiles, ... Enable loading of data from the application and interactive settings of shown results. Project no. 21 - **Controlling of Arduino device via Matlab** Write an application for control af whatever Arduino device. Matlab enables send and receive command via serial port (function ''serialport''). You have to have your own Arduino device. Project no. 22 - **Simulation of planets in the Solar System** Write an application which shows movement of planets in the Solar System. Enable change a date of simulation and speed of planet's movement. Follow Keplerian Elements of orbits as stated here: [[https://ssd.jpl.nasa.gov/?planet_pos|NASA]] Project no. 23 - **Processing of *gpx files** Write an application for processing of *.gpx files with GPS data. Compute length of journey, elevation, speed, burned caliries, ... To read the files use function {{ :courses:be0b17mtb:loadgpx.m |loadgpx.m}}. Show the route on the map using ''geoplot'' function and class ''GeographicAxes'' (function ''geoaxes''), respectively. Project no. 24 - **Planetarium** Show night sky on specified date, time and place on Earth. Or create browser of night sky with interactive settings of field of view. Enable selection of shown starts brightness. Stars database: [[http://www.astronexus.com/hyg|www.astronexus.com/hyg]] Project no. 25 - **Oscilloscope from sound card** Implement simple oscilloscope utilizing sound card input. Set horizontal and vertical scale and set trigger to an edge of the input signal. Example of usage of audiorecorder class: {{ :courses:be0b17mtb:audiorecorder_example.m |audiorecorder_example.m}} Project no. 26 - **Instrument Tuner** Implement instrument tuner using input of sound card. Example of usage of audiorecorder class: {{ :courses:be0b17mtb:audiorecorder_example.m |audiorecorder_example.m}}