CSE 4/510 -- AYY


Algorithms for Mobile Computing and IoT (Spring 2024, Spring 2025)

Course Policies Academic Integrity AI Tools Piazza Grading Policies Medical Emergencies Accessibility Resources

Class Updates

All updates, Q&A, class schedule, Progamming Assignments, Homeworks, and Final Project are updated on Piazza. Please join at the following link: https://piazza.com/buffalo/spring2024/cse4510 Access Code: You should find it under the Announcements tab in UBLearns Brightspace.

Teaching Staff

Instructor: Roshan Ayyalasomayajula, Assistant Professor
Office: 113I Davis Hall
Office Hours:TBD
Phone: 716-6451590
Email: roshana [at] buffalo.edu

Time and Location

  • Lectures: Tue/Thur, 2:00-3:20 PM, Davis 113A

Course Description

The course introduces basic and advanced signal processing and Machine Learning algorithms that aid in mobile computing and IoT (Intenet-of-Things). We will do some quick and interactive exercises to brush the fundamentals of signals and systems that is critical to understand the rest of the material. We would then focus more on wireless signals (Radio Frequency) based mobile computing and IoT systems that can aid in a broad spectrum of applications ranging from localization, navigation, breathing, heart-rate estimation, autonomous driving perception and many more to come. We will also cover algorithms that can use Inertial-Measurement-Units (IMUs) for tracking that can be used in health, sports and other applications. We will wrap the class with some latest algorithms across the intersection of ML and IoT systems.

The objective of the course is to enable students to:

  • Gain fundamental knowledge of signal and systems.
  • Gain fundamental knowledge of wireless signals.
  • Understand mono-static and bi-static wireless sensor systems.
  • Learn basic signal processing algorithms
  • Introduction to Machine Learning based algorithms for IoT and Mobile computing.
  • Prepare for studying advanced Wireless topics, and a career in the field of Wireless Sensors. At the end of this course, each student should be able to:
  • Have a good overall picture of signals and systems in general and wireless signals in particular.
  • ave a rough idea of how various signals behave and where they are used for sensing: IMUs, Acoustic Sensors, and Wireless (RF) Sensors.
  • Know how to do signal processing in MATLAB and/or Python.
  • Know how to do basic signal analysis of popular wireless protocols (WiFi, BLE, UBW, cellular).
  • Know how to use popular signal processing tools ranging from FFT, MUSIC, CFAR, and more
  • Start reading more advanced/research-oriented signal processing and wireless systems materials.

Pre-requisites

For undergraduate students: CSE 250 and (EAS 305 or MTH 411 or STA 301) For graduate students: There are no formal perquisites, but it is expected that graduate students have a familiarity with systems programming, signal processing, and some optimization algorithms. Students need to have some basic knowledge of calculus and probability theory, data structures, and algorithms. In addition, they must be proficient in either Python or MATLAB programming.


Reference Textbooks

  • Oppenheim, Alan V., and A. S. Willsky. “Signals and Systems”. Prentice Hall, 1982. ISBN: 9780138097318. Recommended!
  • Proakis JG. “Digital signal processing: principles, algorithms, and applications”, 4/E. Pearson Education India; 2007. Recommended!

Course Policies

  • Late policy: All assignments are due on the day and time posted.
    • You can submit an assignment up to 4 days late with a fixed daily penalty of 10% out of total points. Latest submission (4 days late) will receive at most 60% of max points even if it’s all correct; 0 points if more than 4 days late.
    • The workload is heavy, so start the assignments, especially the project assignments, early! Excuses that you did not have enough time for an assignment will not be considered. Extraordinary circumstances will be considered at the discretion of the instructor, contact the instructor via E-mail if you think these apply to you.
  • Teams: Teams are allowed for the two programming project assignments and the final project only and will be grouped at the beginning of the semester and are NOT subject to change during the whole semester. If you do not satisfy with your team in the middle of the semester, send an email to the instructor and explain your situation. We may regroup your team and/or ask for an in-team peer review base on the situation.
  • Exams: If you miss an exam because of sickness or similar reasons, visit a physician and obtain a note detailing the period during which you were medically incapable of taking the exam. Notify the instructor immediately via e-mail or telephone (voice mail) if you are going to miss an exam, before the exam takes place unless medically impossible. See the instructor as soon as you return to class. If you miss an exam without a valid excuse, you will receive a zero grade for that exam. No make-up exam will be available without a valid excuse.
  • No extra work in the next semester will be given to improve your grade.
  • Regrading policy:
    • Homeworks: Homework grades will be posted on UBLearns. You can look up graded homework from the UBLearns. Questions about homework/report grades should be sent on piazza via private post within one week after the grade is posted on UBLearns. If you are not satisfied with the instructor’s response, you should contact the instructor no later than 3 days after instructor’s response.
    • Programming assignments (PA)/Final Project: Grades for the programming assignments/project will be posted on UBLearns. If you have questions about your grade, you should contact the TAs on piazza via private post or during their office hours within one week after the grade is posted on UBLearns. If you are not satisfied with the instructor’s response, you should contact the instructor no later than 3 days after instructor’s response.
    • Exams: Exams will NOT be returned. Exam grades will be posted on UBLearns, and you will be able to see your exam during the instructor’s office hours. If you have questions about your grade, you should contact the instructor by email or during office hours within the time period specified after the grade is posted on UBLearns.
    • No regrade requests will be considered after the deadlines mentioned above.

Grading Policies

(Tentative and subject to change) Each student must correctly answer all the questions in the AI Quiz within a month (Feb 24), in order to receive any final grade other than F. Each student will have an unlimited number of tries before the above stated deadline.

Assuming that the student answers all the questions in the AI Quiz correctly, then the overall score will be calculated based on the scores from the Homework, Exam and Programming Assignments as follows:

  • Final Exam: 20%
  • 4 Homework: 30%
  • 4 In-class labs: 20%
  • 1 Final Project: 30% (Project Idea: 4%, MidTerm Progress Report: 8%, Final Presentation:8% , Final Report :10%) Homework should be done individually. The Programming Assignments and the Final Projectneed to be done in a group of 1-2 students.

Academic Integrity

  • Complete the AI Quiz available on the UBLearns Brightspace platform under Assessments>Quizzes>AI Quiz. More information can be found HERE.
    • Successfull completion with 100\% grade is MANDATORY for both Undergraduate and the Graduate students.
  • No tolerance on cheating!
    • All academic integrity violation cases will be reported to the department, school, and university, and recorded.
    • Fail the course on any homework assignment/lab, project, or exam even for first offense.
    • Team members are equally responsible.
    • Consult the Department and University Statements on Academic Integrity.
  • Group study/discussion is encouraged, but the submission must be your own work.
  • Homeworks: Homework reports must be written up individually. Use of reference materials in the library or online is allowed, providedthat the homework explicitly cites the references used. Note that copying the solutions from online sources or the previous semester is still considered cheating even if you cite the sources
  • Programming assignments/Final Project: Programming assignments are to be done in teams of up to 2 students for grads and in teams of up to 4 students for undergrads. One submission per team, one grade per team. Engaging in discussions concerning concepts is permitted; however, sharing of source code is strictly prohibited. In instances where external resources have been consulted, such as online materials, the provided demonstration code, or other guides, students must clearly annotate the relevant sections of their work with commentary, demarcating the beginning and termination of the referenced material. Importantly, under NO circumstances may students rely on the work of their peers, including but not limited to GitHub repositories or code submissions from previous academic terms. We reserve the right to make the ultimate determination regarding breaches of academic integrity policies.
  • Students who do share their work with others are as responsible for academic dishonesty as the student receiving the material. Students are not to show work to other students, in class or outside the class. Students are responsible for the security of their work and should ensure that printed copies are not left in accessible places, and that file/directory permissions are set to be unreadable to others.
  • Excuses such as “I was not sure” or “I did not know” will not be accepted. If you are not sure, ask the instructor.
  • Any student may withdraw their submission (homework, PAs, projects) any time, no questions asked, BEFORE any AI violation is discovered.

AI Tools

No use of AI Tools for any submissions

  • AI Tools like ChatGPT, Google Bard, etc. are not allowed.
  • They can be used to understand the concepts and for clarifications.
  • Use of AI Tools for the submissions in any class work (Homeworks/Programming Assignments/Final Project) will not be acceptable.

Medical Emergencies

Accommodation for medical emergencies will be made on a case-by-case basis. Requests for extensions based on medical emergencies must be accompanied by documentation of the emergency from student health services: http://www.buffalo.edu/studentlife/who-we-are/departments/health.html.


Accessibility Resources

If you have a diagnosed disability (physical, learning, or psychological) that will make it difficult for you to carry out the course work as outlined, or that requires accommodations such as recruiting note-takers, readers, or extended time on exams or assignments, please advise the instructor during the first two weeks of the course so that we may review possible arrangements for reasonable accommodations. In addition, if you have not yet done so, contact: https://www.buffalo.edu/studentlife/who-we-are/departments/accessibility.html.