Possible undergraduate projects with Prof. Miguel Garzón

Undergraduate projects in CSI and SEG

I take a limited number of students interested in doing undergraduate projects with me in CSI4900, SEG4910 and SEG3904. This semester I am also in charge of one section of SEG4910. The Website is here. If you are intereted in working with me, please send me a list of your grades in CSI and SEG courses, and information about any other experience you have. You can also send me your resume instead if you prefer.

What is my style of supervision?

I have scrum meetings (15-30 minutes) with my students every week where we discuss progress and try to solve any roadblocks. Longer meetings can take place every two weeks, if needed. Of course, emails are always welcome.

The following are some current projects:

  1. Phishing Domain Detection
  2. Technologies: scikit-learn Python, numpy and NLTK

  3. Malware Detection with API Calls and PE Headers
  4. Technologies: scikit-learn Python, numpy, pandas

  5. Malware Detection with Deep Learning
  6. Technologies: scikit-learn Python, keras, scikit-learn

  7. Botnet Detection with Machine Learning
  8. Technologies: scikit-learn Python, numpy, pandas

  9. Machine Learning in Anomaly Detection Systems
  10. Technologies: scikit-learn Python, keras, scikit-learn, yellowbrick

  11. Detecting Advanced Persistent Threats
  12. Technologies: Apache, ElasticSearch, Logstash, Kibana

  13. Building a Custom Commmand and Control Server.
  14. Technologies: C programming Language

  15. Development of custom penetration testing tools
  16. Technologies: C programming Language

What else do you need to learn?

  1. Machine Learning Basics
  2. Basic understanding of Malware (ransomware, backdoors, bots, rootkits)
  3. Basic understanding of the TCP/IP model

SEG3904 - What do you need to do prior the start of the semester?

  1. You need to send me an email describing how your knowledge, technical skills and interests (or passion) aligns with my projects listed above.
  2. If I accept to supervise you, you will need to fill out this form.
  3. Write up a proposal that we both agree to – here is an example proposal
  4. You submit the proposal via email to the Associate Director, Software Engineering for feedback and approval.
  5. You register for SEG3904 at the undergraduate office on first floor SITE (showing them the approval from the Associate Director - Stéphane Somé (in 2019-2020)

CSI4900 and SEG4910 - What do you need to do prior the start of the semester?

You need to send me an email with the following info:
  1. Your name and names of other potential students willing to work with you. CSI4900 projects can be done invidually as well.
  2. Describe how your knowledge, technical skills and interests (or passion) aligns with the projects listed above.


  1. Students registered in SEG3904 are expected to work on the project for a semester (12-week period), 10-12 hours per week.
  2. Rules for SEG4910 are described in detail here.
  3. Rules for CSI4900 are described in detail here.

Useful Resources:

  • Introduction to Machine Learning with Python: A Guide for Data Scientists. Available through uOttawa Library here.
  • Article - 10 Machine Learning Methods that Every Data Scientist Should Know.
  • Besides academic databases like ACM and IEEE, the library also has access to online programming and IT books from O'Reilly and other publishers via Safari, and online video courses on software and web development from Lynda.com.
Last updated 08/12/2019 19:55:48