Cornell ECE MEng Design Project, ECE 6930

Resources for prospective and currently enrolled students

V. Hunter Adams

In [1]:
from scipy.io import wavfile
from IPython.display import Audio
import numpy
from scipy.fft import fft
from scipy.signal import welch
import matplotlib.pyplot as plt
from IPython.display import HTML
plt.rcParams["figure.figsize"] = (20,3)
%matplotlib inline
In [2]:
HTML('''<script>
code_show=true; 
function code_toggle() {
 if (code_show){
 $('div.input').hide();
 } else {
 $('div.input').show();
 }
 code_show = !code_show
} 
$( document ).ready(code_toggle);
</script>
<form action="javascript:code_toggle()"><input type="submit" value="Click here to toggle on/off the raw code."></form>''')
Out[2]:

The goal

The design project is, without a doubt, the most fun and rewarding aspect of the MEng program. Through this project, you will be given the autonomy to build something that is truly yours and the guidance to help bring it to fruition. It is often the case that students' personalities are reflected in their projects. Some students contribute to a research lab, others build systems of industrial relevance, and others still use this project as an opportunity to explore curiosities completely outside of engineering. All of them, however, get exposure and experience with the full engineering process and acquire new sets of engineering skills. Here are some of my students' project from previous semesters.

Note: Different faculty members manage MEng projects differently. This webpage describes how I handle them, but you may encounter other faculty members with different philosophies or expectations.


Deciding on a project

As a new MEng student, you may either choose a project proposed by a faculty member, or you can propose a project to a faculty member to advise. If you opt to propose a project, you should have a written proposal available to share with a faculty member that specifically outlines your intended goals of the project and how you intend to achieve them. This should be done well in advance of the five week deadline to selection a project.

Either way, it is wise to consider the type of engineering project that best suits your interests and goals.

I divide engineering projects into three (overlapping) categories: those which solve a problem, those which facilitate learning about some other (non-engineering) topic of interest, and those which facilitate the acquisition of new engineering skills. These categories are represented in the Venn diagram shown below, on which I've also indicated the regions of overlap that I prefer in MEng projects. Let us consider each of these categories in turn.

missing

Engineering as a mechanism for solving problems

This sort of project is, generally, the most familiar to engineering students. For these sorts of projects we identify a problem (or, more generally, an objective), and we build something to solve that problem or meet that objective. This is a broad category which includes video games, lab infrastructure, communications infrastructure, and products for clients around campus. As a specific example, I currently have two students working on an IoT sensing system for the Johnson Museum of Art on campus. These projects are rewarding because they tend to be useful, but usefulness is not the only metric by which I judge an MEng project.

Engineering as a mechanism for learning about other topics

Personally, I love using engineering in a way that people often use reading -- as a mechansim for learning about something interesting. If you are interested in WWII history, create an Enigma machine. If you are interested in birds, create a birdsong synthesizer or a flocking animator. If you are interested in aesthetic mathematics, create a Mandelbrot visualizer. For almost any curiosity, one can think up an engineering project that allows for you to explore that curiosity in a unique way. I have seen students explore interests in music, art, wildlife, and countless other topics. For me, an "interesting" engineering project is just as valuable as a "useful" engineering project. As a specific example, I had a student in a previous semester build a synthesizer to reproduce the sound of the Cornell chimes. It ended up sounding quite good! Can you tell which of the below is a real bell, and which is a synthesized bell?

In [6]:
samplerate1, data1 = wavfile.read('./MEng_Chimes_F_cut.wav')
data1 = numpy.array([float(i[1]) for i in data1[0:500000]])
Audio(data1, rate=samplerate1)
Out[6]:
In [7]:
samplerate, data = wavfile.read('./lowF_resynth_16_noise.wav')
Audio(data, rate=samplerate)
Out[7]:

Acquisition of new engineering skills

The perfect MEng project is one which involves some skills which are familiar to the student, and other skills which are brand new to the student. A lack of balance in one direction or the other can make the project boring or frustrating. If you like one of the projects that I have listed but you're worried that your background would make the project too difficult or too simple, come talk to me! It is often the case that we can find a different technical approach to the problem that suits your particular skillset.

Still not sure?

If you're not sure what you'd like to do for your project and it would be helpful to talk, send me an email! We can setup a meeting. In preparation for that meeting, it would be helpful for you to go through the following exercise:

  1. Make a list of things you are curious about. This should be stuff that you may no little-to-nothing about, but that you find interesting. Astronomy? Birdsong? Art? Archeology? History? Make a long list, and then think about ways that you can build something to learn more about something on that list.
  2. Make a separate list of activities, totally separate from engineering, that you enjoy. Do you like to ride bicycles? Play music? Play video games? Watch movies? List your hobbies, and then think about ways that you can engineer something to explore that hobby.

Bring these lists to our first meeting and we will brainstorm project possibilities.


Signing up for a project

I advise projects of two varieties: those which I propose and those which a student proposes to me. The enrollment process for each is different.

Signing up for a project that I have proposed

  1. Set up a meeting with me before you enroll. Email me at vha3@cornell.edu to setup this meeting. The purpose of this meeting is to make sure that the goals of the project are clear (i.e., to make sure that there aren't any misunderstandings about the project) and to make sure that it will be of appropriate technical scope for that particular student or students. If the scope is wrong, I may adjust the project or recommend a different one. We will also decide on the number of credits for which you should enroll (expectations associated with various credit hours are listed in the Expectations section).
  2. Only after we have met and agreed upon the number of credits for which you should enroll, enroll in ECE 6930 under my section number.

Proposing your own project for me to advise

  1. Set up a meeting with me to discuss your project. Please email me at vha3@cornell.edu to setup this meeting.
  2. In that meeting, we will make sure the project is appropriate, and that I am the appropriate advisor for that project. In particular:
    • For me to be the advisor, the project must be (at least partially) in my technical wheelhouse. This means that it should involve microcontrollers, systems on chip, physics simulation, FPGA's, estimation, control, or robotics. It can definitely involve things that I don't know much about (in fact, I love it when projects involve things I'm unfamiliar with, because I get to learn from the student), but it can't be entirely outside of my domain of understanding.
    • For me to be the advisor, your project must involve building something physical. I am deeply hardware-focused. I'm willing to make exceptions, but generally speaking I will ask for you to build something in the lab.
    • Your proposed project must lead to the acquisition of new engineering skills.
    • Your proposed project must be of appropriate scope (not too hard or too easy), given your particular engineering background.
  3. Only after we have met and agreed upon the number of credits for which you should enroll, enroll in ECE 6930 under my section number.

Expectations

My expectations depend on the number of credits for which you are enrolled:

  • 1 credit: One credit represents 5 hours/week of work. For 1 credit, I will expect to see extensive research conducted for your MEng project. If your system is already built, you may enroll in 1 credit to create documentation for that system.
  • 2 credits: Two credits represents 10 hours/week of work. For 2 credits, I expect a fully-specified design for the system that you will build (though you needn't have anything actually built yet). If your system is already built, you may enroll in 2 credits to create documentation for that system.
  • 3 credits: Three credits represents 15 hours/week of work. For 3 credits, I expect a prototype. It doesn't have to be pretty, it can have bugs, but you have to have something built and working.
  • 4 credits: Four credits represents 20 hours/week of work. For 4 credits, I expect a polished product (if it has already been designed), or design+prototype, or prototype+extensive documentation.

We will meet weekly or biweekly (depending on the project and the student) to monitor progress, discuss bugs, and make plans for the coming week or weeks. Never hesitate to reach out to me if you're encountering a problem! You don't need to wait for our meeting for us to talk.


Deliverables

Weekly progress reports

Each week, I'll ask for you to submit a progress report through Canvas. These do not need to be long, 1-2 pages is fine, but they should include the following information:

  • What was accomplished this week?
  • How many hours did you spend on the project this week?
  • Are there currently any problems impeding your progress?
  • What are your objectives for the coming week?

It is a good idea to take these seriously! The more organized and thorough you are in your weekly reports, the easier it will be to write your end-of-semester and final reports. Take lots of pictures! Save plots! Document things!!

End-of-semester report

At the end of your first semester, you will be asked to submit an end-of-semester report. This report will only be seen and evaluated by me (as opposed to your final report, which is submitted to me and the department). As with your weekly progress reports, be as thorough as possible. In terms of format, please model it off the final report submission guidelines. This should be submitted through Canvas, and is due on the last day of classes.

Poster

Each spring, Cornell ECE M.Eng. students present their Finalized Design Projects with a Poster Session. Presenting their posters to judges, the students highlight and describe their work through a combination of images, text and a two-minute elevator speech. Prizes are awarded for the best posters in each area, as well as best overall poster.

Final report

  • Please use the final report submission guidelines to format your report.
  • Be particularly thoughtful about your abstract and executive summary!
  • I need this submitted to me at least one week before the deadline. This gives me time to read and provide feedback, and you time to make any necessary changes.
  • Here are reports from previous semesters.
  • This is a particularly good report from a previous semester
  • Remember that you own your intellectual property! If you are considering patenting your project, let me know so that the university does not publish it anywhere!

Purchase requests

Please use the Google Form embedded below to make purchase requests.


Grading

Weekly preparedness and progress (30%)

  • You will be asked to submit a weekly progress report through Canvas, which should include:
    • Tasks accomplished in the previous week.
    • Hours spent on project in the previous week.
    • Problems impeding progress
    • Objectives for the coming week.
  • Your preparedness and progress grade will come from these lab reports, and from the quality, quantity and character of the work done during each week as observed by Hunter.

Final demonstration or product (30%)

  • A project which works according to specification (which we will establish together).
  • Thoughtfulness toward usability and user experience.
  • Your poster is incorporated in this aspect of the grading.

Final report (40%)

  • Completeness and understandability of the final report. My advise to students is to consider the audience of their lab reports to be themselves in 5 years. Assume that you haven't been working on this design problem since you wrote the report, and that you must re-create your work. Could you do it (and justify the solution to a boss) using only the report? If you only had this report as a resource, could you:

    1. Understand what the objectives of the project were?
    2. Independently recreate your work (without looking at provided code) using the same development and debugging methods that were used previously?
    3. How easily could you repeat your work using this report as a resource? In other words, how clear is this report?
    4. Could you understand why (quantitively or otherwise) you chose a particular strategy over another strategy for meeting the requirements of the project?
    5. Could you understand the metrics by which you evaluated your solution? Could you evaluate your independently re-created version of your project by the same metrics and get the same results?
  • Please use the final report submission guidelines to format your report.

  • Be particularly thoughtful about your abstract and executive summary!
  • I need this submitted to me at least one week before the deadline. This gives me time to read and provide feedback, and you time to make any necessary changes.
  • Here are reports from previous semesters.
  • This is a particularly good report from a previous semester
  • Remember that you own your intellectual property! If you are considering patenting your project, let me know so that the university does not publish it anywhere!

Resources