Contribute to guide

Table of Contents


This is an open-source guide for students at the University of Windsor.

This document is meant for students to provide assistance/resources to other students. Any UWindsor student is welcome to add to and modify it.

If you have any questions, feel free to ask on the CSS Discord


Anyone can contribute to this document through GitHub's editor - no coding/git skills necessary. Click the "Contribute to guide" button at the top of this page and it will bring you to GitHub's text editor. You can make/preview changes on there and create a pull request when you're done. An admin will then approve your changes and add it to production. The document is written in markdown syntax.

We highly encourage people to contribute so that we can make this a very useful resource for students. Add any information you might find useful and feel free to add/change sections.

If you're posting any opinionated information, use your name in the sentence (i.e. David recommends...).


Please add yourself to this list (link is optional) if you've contributed to this guide.

Important Dates

Winter 2021

  • January 7 - Classes begin
  • January 20 - Last day for late registration and change of courses
  • February 13 to February 21 - Reading week
  • March 17 - Last day to voluntarily withdraw from courses
  • April 2 - University closed
  • April 9 - Last day of classes
  • April 12 to April 22 - Final exams
  • April 23 - Alternate exam date

Summer 2021

  • May 10 - Classes begin (Full Summer and Inter-Session)
  • May 21 - Last day for late registration and change of courses
  • June 17 to June 27th - Reading week
  • June 6, June 18 - Last day to voluntarily withdraw from courses (Inter-Session and Full Summer respectively)
  • August 2 - University closed
  • June 21, August 10 - Last day of classes (Inter-Session and Full Summer respectively)
  • August 14 to August 23 - Final exams


Course offerings by semester

Courses for year

Updated Winter 2021

Requirements Legend

❤️ Bachelor of Computer Science (General)
💙 Bachelor of Computer Science (Honours)
💛 Bachelor of Computer Science (Honours Applied Computing)
💚 Bachelor of Science (Honours Computer Science with Software Engineering Specialization)
💜 Bachelor of Commerce (Honours Business Administration and Computer Science)
🖤 Bachelor of Mathematics (Honours Mathematics and Computer Science)

Course CodeCourse NameFallWinterSummerRequiredPrerequisite(s)
COMP-1000Key Concepts in Computer ScienceOfferedOfferedOffered❤️💙💛💚💜🖤
COMP-1047Computer Concepts for End-UsersOfferedOfferedOffered
COMP-1400Intro to Programming and Algorithms IOfferedOfferedOffered❤️💙💛💚💜🖤
COMP-1410Intro to Programming and Algorithms IIOfferedOfferedOffered❤️💙💛💚💜🖤COMP-1000 or MATH-1720, COMP-1400
COMP-2057Intro to the InternetOfferedOfferedOfferedCOMP-1047 or COMP-2067 or COMP-1400
COMP-2067Programming for BeginnersOfferedOfferedOffered
COMP-2077Problem Solving and Information on the InternetOfferedNot OfferedOfferedCOMP-1047, COMP-2057
COMP-2097Social Media and Mobile Technology for End UsersOfferedOfferedOffered
COMP-2120Object Oriented Programming Using JavaOfferedOfferedOffered❤️💙💛💚💜🖤COMP-1410
COMP-2140Computer Languages, Grammars and TranslatorsNot OfferedOfferedNot Offered💙💚🖤COMP-1000, COMP-2120
COMP-2310Theoretical Foundations of Computer ScienceOfferedOfferedNot Offered💙💚🖤COMP-1000, MATH-1020
COMP-2540Data Structures and AlgorithmsOfferedOfferedOffered❤️💙💛💚💜🖤COMP-1000, COMP-1410
COMP-2560System ProgrammingOfferedOfferedOffered❤️💙💛💚💜🖤COMP-1410
COMP-2650Computer Architecture IOfferedOfferedOffered❤️💙💛💚💜🖤COMP-1400
COMP-2660Computer Architecture IIOfferedOfferedNot Offered❤️💙💛💚COMP-2650
COMP-2707Advanced Website DesignOfferedOfferedOfferedCOMP-2057
COMP-2800Software DevelopmentNot OfferedOfferedNot Offered💚COMP-2120
COMP-3057Cyber-EthicsOfferedOfferedOfferedCOMP-1047, COMP-2057
COMP-3077Web-Based Data ManagementNot OfferedOfferedNot OfferedCOMP-2707
COMP-3110Introduction to Software EngineeringOfferedNot OfferedNot Offered💙💚COMP-2120, COMP-2540
COMP-3150Database Management SystemsOfferedOfferedNot Offered❤️💙💛💚💜🖤COMP-2540, COMP-2560 or COMP-2650
COMP-3220Obj Oriented Software Analysis and DesignOfferedOfferedOffered❤️💙💛💚COMP-2120, COMP-2540
COMP-3300Operating System FundamentalsNot OfferedOfferedOffered❤️💙💛💚💜COMP-2120, COMP-2540, COMP-2560, COMP-2650 or COMP-2660
COMP-3340WWW Information System DevelopmentNot OfferedOfferedOffered❤️💛💜COMP-2120, COMP-2540
COMP-3400Advanced Object Oriented System Design Using C++Not OfferedOfferedNot Offered💛COMP-2120, COMP-2560
COMP-3500Introduction to Multimedia SystemsOfferedNot OfferedNot OfferedCOMP-2540, COMP-2650
COMP-3520Introduction to Computer GraphicsNot OfferedOfferedNot OfferedCOMP-2540, MATH-1250
COMP-3540Theory of ComputationOfferedNot OfferedNot Offered💙💚COMP-2140, COMP-2310, COMP-2540
COMP-3670Computer NetworksOfferedNot OfferedOffered💙💛💚💜COMP-2120, COMP-2540, COMP-2560, COMP-2650
COMP-3680Network PracticumNot OfferedOfferedNot OfferedCOMP-3300, COMP-3670
COMP-3710Artificial Intelligence ConceptsNot OfferedOfferedNot OfferedCOMP-2540, STAT-2910 or STAT-2920
COMP-3770Game Design, Development, and ToolsOfferedNot OfferedNot OfferedCOMP-2540, COMP-2120
COMP-4110Software Verification and TestingNot OfferedOfferedNot Offered💚COMP-3110, COMP-3300
COMP-4150Advanced and Practical Database SystemsOfferedNot OfferedNot Offered💛COMP-3150, COMP-3300
COMP-4200Mobile Application DevelopmentNot OfferedOfferedNot Offered💛COMP-3150, COMP-3220
COMP-4220Agile Software DevelopmentOfferedNot OfferedNot Offered💛COMP-3220
COMP-4250Big Data Analytics and Database DesignNot OfferedOfferedNot Offered💛COMP-3150
COMP-4400Principles of Programming LanguagesOfferedNot OfferedNot Offered💙💚COMP-2140, COMP-2310, COMP-2540
COMP-4540Design and Analysis of AlgorithmsOfferedOfferedNot Offered💙💚COMP-2310, COMP-2540, COMP-3540
COMP-4670Network SecurityOfferedNot OfferedNot OfferedCOMP-3670
COMP-4680Advanced NetworkingNot OfferedOfferedNot OfferedCOMP-3670, COMP-3680
COMP-4730Machine LearningNot OfferedNot OfferedNot OfferedCOMP-3710
COMP-4740Advanced Topics in AI IINot OfferedOfferedNot OfferedCOMP-3710
COMP-4770Artifical Intelligence for GamesNot OfferedOfferedNot OfferedCOMP-3770
COMP-4800Selected Topics in Software EngineeringNot OfferedOfferedNot Offered💚COMP-3110, COMP-3220, COMP-3300
COMP-4960Research ProjectOfferedOfferedNot Offered💙💚
COMP-4990Project Management: Techniques and ToolsOfferedOfferedNot Offered💙💛💚
MATH-1020Mathematical FoundationsNot OfferedOfferedOffered💙💚One of COMP-1000, MATH-1250, MATH-1260 or MATH-1270
MATH-1250Linear Algebra IOfferedOfferedOffered💙💚
MATH-1720Differential CalculusOfferedOfferedNot Offered💙💚
MATH-1730Integral CalculusNot OfferedOfferedOffered💙💚MATH-1760 or MATH-1720
MATH-3940Numerical Analysis for Computer ScientistsOfferedNot OfferedNot Offered💙COMP-1410, MATH-1730 and one of MATH-1250, MATH-1260 or MATH-1270
STAT-2910Statistics for the SciencesOfferedOfferedOffered💙💚

Easy courses

Your degree audit will have a section called "Any Area of Study" that allows you to take any course from any department (including the easy Computer Science courses that don't normally count for your major). The regular Computer Science Honour degree allows seven of these courses, and the Software Engineering specialization degree allows four.

List of bird courses:

  • ECON-1100 Introduction to Economics I - Harshdip found this course easy. The midterms and finals were all multiple choice.
    • Note: Bailey recommends taking this course online instead of in-class (if available). There are no assignments (only the midterm and final) and the midterms were all online, therefore open book. Read the textbook thoroughly and you will do well.
  • ECON-1110 Introduction to Economics II
  • COMP-2067 Programming for Beginners - Steven says this is a super easy course. Teaches you bare basics of Python (think COMP-1400 but easier and Python).
  • COMP-2057 Intro to the Internet - Simple HTML/CSS assignments.
  • COMP-2097 Social Media and Mobile Technology for End Users - A bit busy with assignments/projects but still overall very easy
  • COMP-2707 Advanced Website Design - Easy exams, covers HTML, CSS, a bit of Javascript but a lot of work with assignments/projects

School Resources

Planning your courses

It is always better to have a good plan about the course you'll be taking each semester. Harshdip has completed 4 semesters, taking all the major courses. This way saving up all the electives is one approach. If you find 5 courses overwhelming, taking only 4 courses or an easy elective as a 5th course is another approach. Check out the list of bird courses.

First two years of University most CS students take the same courses as CS doesn't have many electives. I also recommend you take mandatory courses as third and fourth year you are going to want to have electives to take fun CS courses.
Harshdip has followed this exact sequence.

First Semester
  • COMP-1000 Key Concepts in Computer Science
  • COMP-1400 Intro to Programming & Algorithms I
  • MATH-1760 Functions and Differential Calculus
  • MATH-1250 Linear Algebra
  • Elective (See if you can take another mandatory course you will have to do in the future)
Second Semester
  • ECON-1100 Intro to Economics 1 or Psychology (I took econ because I find it more fun and applicable)
  • COMP-1410 Intro to Programming & Algorithms II
  • COMP-2650 Computer Architecture 1
  • MATH-1730 Integral Calculus
  • MATH-1020 Mathematical Foundations
Third Semester
  • COMP-2310 Theoretical Foundations of Comp Sci
  • COMP-2120 Obj Oriented Programming using Java
  • COMP-2560 Systems Programming
  • COMP-2540 Data Structures & Algorithms
  • STAT-2910 Statistics for the Sciences
Fourth Semester
  • COMP-3150 Database Management Systems
  • COMP-2140 Languages, Grammars and Translators
  • COMP-2660 Comp Archi II
  • COMP-3220 Obj Oriented Software Anal/Des
  • COMP-3710 Artificial Intelligence Concepts

Internship Courses

Courses that help you gains practical skills:
  • SCIE-3990 Internship Course
  • SCIE-3800 Service Learning

They are 3 credits PASS/FAIL courses that will count toward your electives. These courses are the flexible version of co-op placement.

How to enroll?

1st-4th year students are eligible to enroll but with the instructor's permission Michelle Bondy. First, you will need a placement such as a lab work, research, or an internship that is related to your program. Do not worry, if you could not find any, there are placements listed for these courses that you could pick from. However, it is better to find your own paid placement. Paid or volunteer placement is valid since the purpose of the courses is to help you gain experience in the professional work environment.

  • Must complete 108 hours during the placement.
  • Report bi-weekly hour log and bi-weekly assignment about learning expereience.
  • Self evalution for midterm by the student and the final evalution done by the supervisor of the placement.
Two Birds with One Stone:

You could enrol in this course while you are an OS program placement. Since the OS contract requires you to complete 45-100 hours and the course requires 106 hours and frequent reports to the instructor. With these two requirements satisfied as the OS placement, you use SCIE-3990 or SCIE-3800 as the placement in the OS contract. In the end, you get to complete a placement and a 3 credits course by workig for only one.

Co-op and Internships

See Eric's presentation on behalf of CSS for landing an internship. This covers a bit of everything (resumes, applying, interviews).


Co-op has been know to decline offers for winter internships for students because they havent completed their co-op course training. If you wish to have a winter internship before you have done your co-op course training, make sure it is one that doesnt go through co-op.

Frequently Asked Questions

Q: Can I do an internship/co-op during 1st-year?

A: The co-op program does not start until the summer of your 2nd year, however, you can apply to internships on your own in 1st year. You should try to apply to places in 1st year, you have nothing to lose!

Q: What is the difference between a co-op and internship?

Co-op and internship jobs are usually very similar. They're both short-term jobs. Co-ops are usually landed through the co-op program, whereas for internships you are applying to them like a normal job (i.e. find postings online and apply). Here's a more specific breakdown:


AssistanceWorkshops for resumes, applications, basic interviewing skills provided by co-op departmentYou have to seek assistance/research yourself. is a good resource.
PayUsually around $18-22/hour in CanadaVaries significantly but tend to pay more than co-op
Cost~$500/semester once co-op startsNone
CompaniesLimited to co-op listings (mostly local Canadian companies, some big names such as IBM, Nokia, big banks). There are a few companies that only hire through co-op.Most companies offer internship programs
LocationsMostly Canada (usually Toronto (GTA) or Ottawa, there are a few companies in Windsor)Anywhere! For Canada, Toronto, Waterloo, and Vancouver are the biggest tech hubs. For the USA, the San Francisco Bay Area, Seattle, and New York are the biggest.
Listings/ApplicationsCo-op portal lists all companies, applications usually done within the portalOn your own to find/apply to companies (more info in this guide)

Q: Should I pay for co-op or just go for internships?
Do both! Apply for internships and use co-op as a fallback. Once you've gotten your first co-op/internship it's significantly easier to get the next one on your own, and many people outgrow the co-op program.

Q: Can I apply for internships while in the co-op program?
A: Co-op advisors advise against applying without their permission, but in the end there's nothing stopping you from applying for internships on your own. If you find one by yourself and want to stay in the co-op program, co-op will gladly accept that company as a co-op placement after a little screening.

Q: Do grades matter?
A: For most co-op applications you must submit your transcript. Smaller/local companies may look at grades. However, for internships, you will not need to submit your transcript for 99% of applications.

Pros and Cons

Co-op It provides more opportunities especially for international students $500 every semester even if you are not on work term Some students believe that Coop is not specialized in advising comp science students leading to worse resumes
InternshipIt's free to applyIt's hard to get your foot in the door

Resume Examples

Job Boards

  • - Links are usually broken but this is a master list of fantastic companies that offer internships which you can search for yourself.
  • LinkedIn - It's not just a social network for bugging recruiters. LinkedIn has an integrated job board where you can find tons of internships.
  • Pitt-CSC - giant open source repo that tracks open CS internships for a lot of companies. If you are about to graduate check out the new grad repo

Interview Preparation

Eric recommends studying/practicing technical interview questions for any mid-to-large-sized company. Most of them will ask you highly technical coding questions.

Interview Prep Resources
  • LeetCode - Eric highly recommends LeetCode and used it for all of his interview prep. It has hundreds of questions with difficulty ratings and company-specific questions submitted by interviewees. Most internships will ask LeetCode easy/mediums.
  • Leetfree - This website contains all LeetCode Premium problems for free.
  • Cracking the Coding Interview - Eric highly recommends reading this book before getting into LeetCode for interview prep. You can find it on Amazon or probably a PDF online.
  • Cracking the Coding Interview Solutions - Online solutions for the problems in Cracking the Coding Interview. Harshdip recommends to try all the problems on your own and only looking for solutions once you have tried everything you know.
  • HackerRank - Brandon highly recommends getting familiar with the HackerRank editor and available languages. Many companies will supply a timed HackerRank coding challenge to be completed when applying to internships. It can also be used like LeetCode to solve hundreds of technical programming problems.
  • Glassdoor - Glassdoor allows people to post reviews, salaries and most importantly interview questions they've received from specific companies.

Working in the USA

Almost every major tech company in the USA hires Canadians and will sponsor you for a visa. US companies tend to pay significantly more and provides great opportunities.


You'll need to obtain a J-1 visa to intern in the United States.

A common misconception is that you can get a visa yourself - this is not true. You need a company who is willing to sponsor your visa to work in the United States. Once you find this company they will do most of the work for you, you'll just have to submit some documents/forms. Don't stress about this step.

Getting paid

You'll need an American bank account to get paid if you're working in the USA. This is very easy to obtain - just go to your preferred bank once you're in the USA and bring your passport and visa documents just in case.

It's also a very good idea to obtain a Social Security Number in the USA so that you can apply for a credit card and build up a credit score in the US (can be helpful in many ways in the future). This is also straight-forward and you need to wait until you're in the USA for at least 10 days before you can apply.


Outstanding Scholars

UWindsor offers the Outstanding Scholars program for students to get involved in research projects. Student will get paid for each placement under the supervision of instructors. The program requires students to complete 6 placements in order to complete the OS program. Most students will start their placement from 3rd semester until the last semester to complete all 6 placements.

Is it right for you?

Since you are reading this section, you must be interested in research, however you may not know whether it is the right path that aligns with your career goals.

If you plan to do graduate studies, research is the best way to get you started. It will give you helpful insight into how research study works. You will build a good relationship with different faculty members who will help you when you apply for grad school.

If you do not want to continue the study, I suggest focusing on Co-op/Internships instead. You will gain different practical skills and experience that will help you.

  • Paid placement 2nd/3rd years get $16.35/hour and 4th years get $17.30/hour.
  • Flexible total hours: 45-100 hours per placement.
  • Great opportunity to pursue grad school.
  • A lot of machine learning and cyber security research projects focusing on different kind areas such as social network analysis and document and network analysis.
  • Placements are not limited in your department. OS program is a golden key that can open any research doors for you.
  • You could put it on your resume.
  • Oustanding Scholars Medal & Golden Maple Leaf Medallion will be awarded.
  • Time consuming.
  • Depending on the research project, there is a lot of reading material.
  • Depending on the research project, do not expect to code a lot. Unless you are buidling a training model for a machine learning algorithm or simulating model.
  • Weekly or Bi-weekly meetings. Must keep close contact with professor with your progress.
  • If your supervisor is too busy, and many of them are, then you are mostly on your own. That's why finding a good supervisor is very important.

How to get in the OS program?

Apply from high school.
  • You will be considered as a candidate directly from high school if you are selected. In the second year, your placement will start.
  • However, you still need to apply again after first year.
Apply after the first year.
  • You will be invited to apply for the OS program after completing two semesters. Then if you are selected, your research placement will start the next term.
  • Academic accomplishments: GPA 85% or higher.
  • Evident desire to do research or original creative work.
  • Evidence of community service.
  • Leadership, through excellence in athletic, creative, or other fields, or through serving in a formal leadership role.
  • Specific research project that you are interested in.
  • A reference letter from a faculty member or instructor. To get a greate reference letter, you could get to know more about a professor's research project during their office hours. This will show that you are curious and willing to learn. They will put a good word in for you.
Bugs in the OS program system
  • If you complete only 9 courses for 2 semesters in first year, then you will not receive an invitation to apply for the program. Do not worry, you can contact Dr. Simon du Toit to inform him about your interests in the program.
  • If you have completed more than 14 or 15 courses already, can you apply? Answer is YES. What is the problem regarding the number of courses you have taken? As mentioned above, in order to graduate as an OS student, One must complete 6 placements. This is 6 semesters or 3 years of your study. If you have completed more than 10 courses then you have less than 6 semesters left. Therefor, you will not meet the requirement. However, if you plan to take an extra summer course and do a research placement, then you are eligible to apply. Contact Dr. Simon du Toit and explain your goal to complete the program.

CSS members in OS program

If you have any questions, send us an email! We are happy to help.


  • University Guide by Jose Alba - Jose Alba is a recent graduate from University of Windsor and he has written a good document where he shares his experiences and tips for making the most out of your university life.


Hackathons are free competitions where you team up with people to build cool projects. They're a great way to use your knowledge from school and create cool a project to put on your resume. Usually attending one of these looks nice your resume, and may even land you a job as recruiters attend these events as well.

  • Workshops available throughout event
  • Complete and build projects in 24-48 hours
  • Great networking opportunity and team up with other students
  • Recruiters actively looking for you
  • Larger hackathons will cover travelling expenses
  • Companies giving away SWAG
  • Lots of great prizes
  • All experience levels welcome, with preference typically given to first-timers
  • Most hackathons provide free food and travel reimbursement

Here is a list of websites where you can find plenty of hackathons
- MLH - A really good place to start when looking for hackathons
- DevPost - A resource often used during hackathons for project submissions but also advertises a lot of hackathons and coding competitions.
- HackClub - Geared towards high school students but there are some competitions here that allow for post secondary students as well

If you're looking to participate in a hackathon but don't want to go far, then you're in luck! Click here to apply to WinHacks, Windsor's very own hackathon!

Student Exchanges

Jose thinks exchanges are fun and 100% worth it. The Exchange Coordinator, Michelle, is a fantastic and knowledgable person and can help you with any concerns/questions.
- Jose's University of Essex Experience
- Jose's Ewha Womans University Experience
- Student Exchanges at UWindsor

Useful Links

Cheat Sheets and Docs


  • The Modern JavaScript Tutorial - Super in-depth tutorial for modern JavaScript.
  • OpenGL Tutorial - Decent tutorial series on OpenGL including source code in the provided GitHub.
  • Net Ninja - Steven recommends any series from Net Ninja if you're looking to get into web development


As a student in Computer Science there are many free trials, offers, and products that are available to you.