ECE434
ECE/CS434 (Real World Algorithms for IoT/Data Science) is a 3 (undergrad) / 4 (grad)-credit-hour senior/graduate level course that satisfies the Technical Electives requirement for ECE/CS majors. It is offered only in the spring.
Content Covered
- Linear Algebra, SVD, PCA, Eigenvectors, Orthogonality, Change of Bases, Null/Column/Vector Space (MATH257 Review)
- Signal Processsing, FFT, DFT, Fourier Transforms, Fourier Basis, Short-Time-Fourier Transform (ECE310 Review)
- Probability, Joint Distributions, Conditional Distributions, Bayes' Formula, Conditional Probability, Maximum Likelihood Estimate, Gaussians (ECE313 Review)
- Applications of the above fields to Mobile Devices and IoT
- Using the Short-Time-Fourier-Transform to separate sound sources from different voices in microphone data
- Global Localization using IMU accelerometer, gyroscope, magnetometer data
- Estimating location from satellite data
- Using multiple microphones to estimate location of a speaker source
- State predictions from measurement/sensor data using Hidden Markov Models (HMMs) and Kalman Filters
The first half of ECE434 is a review of MATH257, ECE310, and ECE313. Though the course is meant to apply different algorithms to devices and real-world problems, the first half is very theoretical so as to review and/or give students a crash course on these classes since some students may not have taken ECE310 or ECE313 before taking this class. You can expect very conceptual/proof-emphasized questions for this first half of the class. The second half of ECE434 applies these foundations to different algorithms. For example, the second MP involves extracting microphone data and applying STFTs to do source separation: isolating each speaker's voice. Similarly, MP4 utilizes FFTs and vector projection/maximum likelihood estimate to predict the angle at which a sound signal hits a set of microphones. Outside of the MPs, other conceptual algorithms are covered and utilize foundations from one or more of the three foundation areas covered in the first half, and if they are not part of the MPs, they are included on the homeworks and the midterm.
Prerequisites
ECE391 is a prerequisite class, but it's not particularly relevant in this class. None of the concepts from ECE391 (x86 assembly, soft/hard interrupts, tasklets, synchronization, etc.) are touched upon in this class. Instead, the class is more mathematical/algorithmic and is more dependent on ECE310 (the other alternative prerequisite), as it heavily emphasizes signal processing and using that data to make empirical estimates. The class heavily emphasizes applications of linear algebra, probability, and signal processing and is more similar to a data science class, but in application to devices/IoT/sensors.
When to Take it
This class isn't related to any particular field since it covers a broad range, but the most relevant is signal processing and/or data science. If you liked ECE310 and/or MATH257, and have a fascination with exploring IoT from the data science side of software, this class might be interesting for you. However, it does not go over the embedded software that is used to construct mobile devices, despite having ECE391 as a prerequisite.
Course Structure
The course is divided up into 6 MPs (40%), 4 homeworks (25%), and a single midterm exam (35%). The MPs are biweekly, but a few of them (MP2 and MP4) are very conceptually difficult and take more time than expected from a 400-level technical elective. The instructions can be vague for some MPs, so you should expect to go to office hours frequently during these MP weeks. The homeworks are biweekly, and they are also very long. DO NOT wait until the last minute for these homeworks. They usually consist of proof questions, T/F questions with brief explanations, or conceptual questions. The normal format of these homeworks are 4-7 questions, with 5-7 subquestions per question on average. Finally, there is a single midterm exam that is given about two weeks before the end of the semester, and it is delivered in a format similar to the homeworks, but in an exam setting and cumulative from all material. You should restudy the homeworks and review practice problems that the professor will go over the week before the exam.
Instructor
Professor Romit-Roy Choudhury is the course instructor. His primary focuses are communications, signal processing, sensors, and networking. He is good at helping students gain intuition on difficult concepts. He is willing to answer students' questions after lecture, so it is highly recommended you attend lecture.
Course Tips
As explained above, the MPs can be difficult. You should try to start early so you can ask conceptual questions in office hours. It's a good idea to consult with fellow students on the MPs, as they will have different ideas/approaches. Homeworks are also pretty long, and the same tips for MPs apply for the homeworks as well.
Life After
This class is rather obscure and isn't related to many other ECE classes. However, since the class is meant to be real-world applicable, many of the concepts can be applied to many different areas. Similar classes to this (in terms of course organization and content correlation) include ECE498RC3 -- Smartphone Computing and Application -- and ECE438 -- Communication Networks.
Infamous Topics
- Change of Bases, Null Space/Column Space, SVD, PCA
- Short-Time-Fourier Transforms, FFTs -- the way these concepts are explained is very different from how ECE310 explains them
- Source-Separation, Beamforming
- GPS localization, satellite localization, unilateral localization
- Hidden Markov Models