ECE 512 - Data Science from a Signal Processing Perspective

Fall 2023

Instructor: Dr. Dror Baron, email: barondror AT ncsu DOT edu, office hour (Zoom): Monday 2-3 pm.
Teaching assistant: Hangjin Liu, email: hliu25 AT ncsu DOT edu, office hour (Zoom): Friday 11-12.
Classrooms: Classes will be on Monday and Wednesday, 11:45-13:00, EB2 1226. Modules have been recorded electronically and are available on Youtube.


Useful Links

About this Course


The main prerequisite is eagerness to learn about data science. Technical prerequisites include undergraduate signal processing (ECE 421), probability (ST 371), comfort in math (linear algebra, calculus, multi-dimensional spaces), and comfort programming (we will be using Matlab and/or Python; see below).


ECE 512 (Data Science from a Signal Processing Perspective) will acquaint students with some core basic topics in data science. Some specific topics that are covered will be described in the course outline.

Course Outline

The course will proceed as follows:

Course Materials


The instructor will be borrowing and inspired by several textbooks (see below). You need not purchase any of these. There will also be some references provided (to academic papers) in the slides and assignments; this is meant for your enrichment if you find that topic of special interest.


We will be using the Matlab and/or Python languages during the course. We will have some computer homework questions; either language can be used to submit homeworks. (Note that many other programming platforms can and are often used.) Here are some resources for these languages:

Slides and Modules

Course materials are in several slide decks, where each one covers a major topic. Under each deck of slides, we organize and describe corresponding modules, which have been recorded to YouTube (links below). We also have some supplements, which provide details about some of the more delicate course topics.


Below are Matlab and Python implementations for various examples provided during the course. Many thanks to Dhananjai Ravindra, Jordan Miller, and Deveshwar Hariharan for translating Matlab scripts to Python!

Assignments and Grading

Component % of Grade Due Date
Tests: 40% (3 tests) See course schedule
Homework: 30% Throughout course
Final Project: 20% Due last week end of course
Quizzes: 5% See course schedule
Lead class discussion: 5% Schedule TBD

Up to 2-3% extra credit will be provided. We encourage students to be proactive about their studies, including class participation, office hours, emails to the instructor and TA, spotting errors, and making suggestions.


We expect homeworks roughly every 1-2 weeks. They will be posted below, and solutions will be submitted electronically on Moodle. Some of these homeworks will be more theoretical in nature, while others will be closer to applications, which we hope will help students appreciate how data science is used in many real world settings.

Final Project

The final project will involve a topic that 2-3 students choose to work on. This could involve reading a paper and presenting it to the class, working on a data set using an algorithm that wasn't covered in depth in class, or even (hopefully) presenting new results that you worked on. A list of possible topics for projects appears here; it has been updated in Fall 2023. You will be submitting a final report (3-4 pages are expected; you do not need to attach code) and video recording of a presentation (5 minutes). The reports and videos will be peer-graded by other students; each student will peer-grade several reports and videos. Overall, the objective of the final project is to provide students a personalized learning experience and an opportunity to present their findings to the class. Regulations for individual projects can be found here. Note that 5% of the project grade involves timely submission of the project proposal.

The project report is due on Dec. 4; the video on Dec. 6; we'll have an online folder with content to review by the morning of Dec. 7; and they need to be peer graded by Dec. 9.

The project proposal will briefly describe the way how you envision your project, in order to help us make sure that you are on track.


Below are past tests (and their solutions) throughout the history of this course.


Students are encouraged to send feedback to the instructional staff.