Description
Lab 13 Final Project
Overview
As we close out the semester it is time to put your new knowledge to work. For this final lab, create a C program of your own design and purpose.
While it would be ideal to incorporate all the major topics of the course, that would be impractical. Rather, focus on a problem you wish to solve and then apply appropriate techniques that you have learned to create a solution.
You may complete this assignment individually or you may work with two other students (max group size of three).
Basic Requirements
• Your project will reside in a GitHub repository (assignment accepted through GitHub Classroom – link to assignment: https://classroom.github.com/a/mR54GZeG. If working with another student, one of you should accept the assignment and then figure out how to add the other students as another developer on that repo.
• Your project must use a Makefile.
• Your repo must include a README.md file in markdown format that documents the project and includes sample input/output/usage, possibly including screen captures. Be sure to clearly to explain the purpose of the program.
• Your repo should include a proper .gitignore.
• All source code must comply with course documentation standards.
• Your project should build without warnings and not have any detectable memory leaks.
• If your project uses command-line arguments (preferred over interactive), you should consider using getopt to process arguments.
• Your project should incorporate some aspect that we did not explore in any other assignment, such as a new library, a new IPC technique, or type of system call.
• Your project should read and/or write files if appropriate for the application.
• Your project should use dynamic memory or shared memory if appropriate for the application.
• Although not normal, if you have any input file(s) needed for operation, include them in repo and document them in the README.md.
Some Ideas
• Image Pipeline o Perform image processing of several functions such as
▪ Color Space Conversion (if color)
▪ Enhancement
▪ Median Filter
▪ Histogram Equalization
▪ Color Space Conversion
• Video Processing o Explore reading and writing a video stream and perform simple processing on the set of images.
• Voting machine o Implement a machine that gathers votes from different terminals with username or PIDs
• Console printer to screen queue o receiving user reads one by one as queue up from multiple other sources
• Producer/consumer problem for bank account o Handle several transactions accurately from multiple sources
• Chat program between 2 terminals o This could be two terminals on the same laptop o or over UDP/TCP or Unix sockets
• 2D Wavelet transform on an image o Demonstrate the reduce size low pass image
• Discrete Fourier Transform DFT then zero out bins to filter the signal and Inverse DFT o Use the rows of an image to perform the filtering with DFT
• Control System implementation o First process captures ADC counts
o Second process converts the ADC counts to Temperatures, Pressures, level o Third process uses the Temperatures, Pressures, level, to control 2 loops o Fourth process State machine determines actuator positions from input values o Final process writes DAC value (0-10V) to control the machine
• A project that you propose with instructor approval o This must be of significant complexity for a Lab Final Project assignment
Deliverable
• When you are ready to submit your assignment prepare your repository:
• Make sure your name, assignment name, and section number are all files in your submission – in comment block of source file(s) and/or at the top of your report file(s).
• Make sure you have completed all activities and added all new program source files to repository.
• Make sure your assignment code is commented thoroughly.
• Make sure all files are committed and pushed to the main branch of your repository.
To submit, copy the URL for your repository and submit the link to associated Canvas assignment. If working with other students, all students must submit the repo link to Canvas.
You must be able to demonstrate your project during lab in Week 15 or make an appointment to see me by the end of week 15. No late demonstrations or late submissions will be accepted for this Lab. All labs and course work must be submitted on or before Dec 13, 2024, midnight.
Reviews
There are no reviews yet.