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 interested in working with me, please send me a list of your grades in CSI and SEG courses, along with any relevant experience. You may also send me your resume if you prefer.
What is my style of supervision?
I hold scrum meetings (15-30 minutes) with my students every week, where we discuss progress and address any roadblocks. Longer meetings can take place every two weeks if needed. Of course, emails are always welcome.
The following are some current projects:
- Phishing Domain Detection Technologies: scikit-learn, Python, numpy, NLTK
- Malware Detection with API Calls and PE Headers Technologies: scikit-learn, Python, numpy, pandas
- Malware Detection with Deep Learning Technologies: scikit-learn, Python, keras
- Botnet Detection with Machine Learning Technologies: scikit-learn, Python, numpy, pandas
- Machine Learning in Anomaly Detection Systems Technologies: scikit-learn, Python, keras, scikit-learn, yellowbrick
- Detecting Advanced Persistent Threats Technologies: Apache, ElasticSearch, Logstash, Kibana
- Building a Custom Command and Control Server Technologies: C Programming Language
- Development of Custom Penetration Testing Tools Technologies: C Programming Language
What else do you need to learn?
- Machine Learning Basics
- Basic Understanding of Malware (ransomware, backdoors, bots, rootkits)
- Basic Understanding of the TCP/IP Model
SEG3904 - What do you need to do prior to the start of the semester?
- You need to send me an email describing how your knowledge, technical skills, and interests (or passion) align with my projects listed above.
- If I accept to supervise you, you will need to fill out this form.
- Write up a proposal that we both agree to -- here is an example proposal.
- You must submit the proposal via email to the Associate Director of Software Engineering for feedback and approval.
- You will then register for SEG3904 at the undergraduate office on the first floor of SITE (show them the approval from the Associate Director - Stéphané Somé for 2019-2020).
CSI4900 and SEG4910 - What do you need to do prior to the start of the semester?
You need to send me an email with the following information:
- Your name and the names of other potential students willing to work with you. CSI4900 projects can be done individually as well.
- Describe how your knowledge, technical skills, and interests (or passion) align with the projects listed above.
Logistics
- Students registered in SEG3904 are expected to work on the project for one semester (12-week period), 10-12 hours per week.
- Rules for SEG4910 are described in detail here.
- 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.