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.
Courses for year
Updated Winter 2021
❤️ 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 Code||Course Name||Fall||Winter||Summer||Required||Prerequisite(s)|
|COMP-1000||Key Concepts in Computer Science||Offered||Offered||Offered||❤️💙💛💚💜🖤|
|COMP-1047||Computer Concepts for End-Users||Offered||Offered||Offered|
|COMP-1400||Intro to Programming and Algorithms I||Offered||Offered||Offered||❤️💙💛💚💜🖤|
|COMP-1410||Intro to Programming and Algorithms II||Offered||Offered||Offered||❤️💙💛💚💜🖤||COMP-1000 or MATH-1720, COMP-1400|
|COMP-2057||Intro to the Internet||Offered||Offered||Offered||COMP-1047 or COMP-2067 or COMP-1400|
|COMP-2067||Programming for Beginners||Offered||Offered||Offered|
|COMP-2077||Problem Solving and Information on the Internet||Offered||Not Offered||Offered||COMP-1047, COMP-2057|
|COMP-2097||Social Media and Mobile Technology for End Users||Offered||Offered||Offered|
|COMP-2120||Object Oriented Programming Using Java||Offered||Offered||Offered||❤️💙💛💚💜🖤||COMP-1410|
|COMP-2140||Computer Languages, Grammars and Translators||Not Offered||Offered||Not Offered||💙💚🖤||COMP-1000, COMP-2120|
|COMP-2310||Theoretical Foundations of Computer Science||Offered||Offered||Offered||💙💚🖤||COMP-1000, MATH-1020|
|COMP-2540||Data Structures and Algorithms||Offered||Offered||Offered||❤️💙💛💚💜🖤||COMP-1000, COMP-1410|
|COMP-2650||Computer Architecture I||Offered||Offered||Offered||❤️💙💛💚💜🖤||COMP-1400|
|COMP-2660||Computer Architecture II||Offered||Offered||Not Offered||❤️💙💛💚||COMP-2650|
|COMP-2707||Advanced Website Design||Offered||Offered||Offered||COMP-2057|
|COMP-2800||Software Development||Not Offered||Offered||Not Offered||💚||COMP-2120|
|COMP-3077||Web-Based Data Management||Not Offered||Offered||Not Offered||COMP-2707|
|COMP-3110||Introduction to Software Engineering||Offered||Not Offered||Not Offered||💙💚||COMP-2120, COMP-2540|
|COMP-3150||Database Management Systems||Offered||Offered||Not Offered||❤️💙💛💚💜🖤||COMP-2540, COMP-2560 or COMP-2650|
|COMP-3220||Obj Oriented Software Analysis and Design||Offered||Offered||Offered||❤️💙💛💚||COMP-2120, COMP-2540|
|COMP-3300||Operating System Fundamentals||Not Offered||Offered||Offered||❤️💙💛💚💜||COMP-2120, COMP-2540, COMP-2560, COMP-2650 or COMP-2660|
|COMP-3340||WWW Information System Development||Not Offered||Offered||Offered||❤️💛💜||COMP-2120, COMP-2540|
|COMP-3400||Advanced Object Oriented System Design Using C++||Not Offered||Offered||Not Offered||💛||COMP-2120, COMP-2560|
|COMP-3500||Introduction to Multimedia Systems||Offered||Not Offered||Not Offered||COMP-2540, COMP-2650|
|COMP-3520||Introduction to Computer Graphics||Not Offered||Offered||Not Offered||COMP-2540, MATH-1250|
|COMP-3540||Theory of Computation||Offered||Not Offered||Not Offered||💙💚||COMP-2140, COMP-2310, COMP-2540|
|COMP-3670||Computer Networks||Offered||Not Offered||Offered||💙💛💚💜||COMP-2120, COMP-2540, COMP-2560, COMP-2650|
|COMP-3680||Network Practicum||Not Offered||Offered||Not Offered||COMP-3300, COMP-3670|
|COMP-3710||Artificial Intelligence Concepts||Not Offered||Offered||Not Offered||COMP-2540, STAT-2910 or STAT-2920|
|COMP-3770||Game Design, Development, and Tools||Offered||Not Offered||Not Offered||COMP-2540, COMP-2120|
|COMP-4110||Software Verification and Testing||Not Offered||Offered||Not Offered||💚||COMP-3110, COMP-3300|
|COMP-4150||Advanced and Practical Database Systems||Offered||Not Offered||Not Offered||💛||COMP-3150, COMP-3300|
|COMP-4200||Mobile Application Development||Not Offered||Offered||Not Offered||💛||COMP-3150, COMP-3220|
|COMP-4220||Agile Software Development||Offered||Not Offered||Not Offered||💛||COMP-3220|
|COMP-4250||Big Data Analytics and Database Design||Not Offered||Offered||Not Offered||💛||COMP-3150|
|COMP-4400||Principles of Programming Languages||Offered||Not Offered||Not Offered||💙💚||COMP-2140, COMP-2310, COMP-2540|
|COMP-4540||Design and Analysis of Algorithms||Offered||Offered||Not Offered||💙💚||COMP-2310, COMP-2540, COMP-3540|
|COMP-4670||Network Security||Offered||Not Offered||Not Offered||COMP-3670|
|COMP-4680||Advanced Networking||Not Offered||Offered||Not Offered||COMP-3670, COMP-3680|
|COMP-4730||Machine Learning||Not Offered||Not Offered||Not Offered||COMP-3710|
|COMP-4740||Advanced Topics in AI II||Not Offered||Offered||Not Offered||COMP-3710|
|COMP-4770||Artifical Intelligence for Games||Not Offered||Offered||Not Offered||COMP-3770|
|COMP-4800||Selected Topics in Software Engineering||Not Offered||Offered||Not Offered||💚||COMP-3110, COMP-3220, COMP-3300|
|COMP-4990||Project Management: Techniques and Tools||Offered||Offered||Not Offered||💙💛💚|
|MATH-1020||Mathematical Foundations||Not Offered||Offered||Offered||💙💚||One of COMP-1000, MATH-1250, MATH-1260 or MATH-1270|
|MATH-1250||Linear Algebra I||Offered||Offered||Offered||💙💚|
|MATH-1720||Differential Calculus||Offered||Offered||Not Offered||💙💚|
|MATH-1730||Integral Calculus||Not Offered||Offered||Offered||💙💚||MATH-1760 or MATH-1720|
|MATH-3940||Numerical Analysis for Computer Scientists||Offered||Not Offered||Not Offered||💙💚||COMP-1410, MATH-1730 and one of MATH-1250, MATH-1260 or MATH-1270|
|STAT-2910||Statistics for the Sciences||Offered||Offered||Offered||💙💚|
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:
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.
They are 3 credits PASS/FAIL courses that will count toward your electives. These courses are the flexible version of co-op placement.
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.
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.
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.
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:
|Assistance||Workshops for resumes, applications, basic interviewing skills provided by co-op department||You have to seek assistance/research yourself. https://reddit.com/r/cscareerquestions is a good resource.|
|Pay||Usually around $18-22/hour in Canada||Varies significantly but tend to pay more than co-op|
|Cost||~$500/semester once co-op starts||None|
|Companies||Limited 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|
|Locations||Mostly 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/Applications||Co-op portal lists all companies, applications usually done within the portal||On 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.
|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|
|Internship||It's free to apply||It's hard to get your foot in the door|
Eric recommends studying/practicing technical interview questions for any mid-to-large-sized company. Most of them will ask you highly technical coding questions.
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.
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.
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.
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.
If you have any questions, send us an email! We are happy to help.
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.
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!
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
As a student in Computer Science there are many free trials, offers, and products that are available to you.