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.
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.
Updated Winter 2020
❤️ 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)
|Course Code||Course Name||Fall||Winter||Summer||Required|
|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||Not Offered||Offered||Offered||❤️💙💛💚💜|
|COMP-2057||Intro to the Internet||Offered||Offered||Offered|
|COMP-2067||Programming for Beginners||Not Offered||Offered||Offered|
|COMP-2077||Problem Solving and Information on the Internet||Offered||Offered||Not Offered|
|COMP-2097||Social Media and Mobile Technology for End Users||Offered||Offered||Offered|
|COMP-2120||Object Oriented Programming Using Java||Offered||Offered||Offered||❤️💙💛💚💜|
|COMP-2140||Computer Languages, Grammars and Translators||Not Offered||Offered||Not Offered||💙💚|
|COMP-2310||Theoretical Foundations of Computer Science||Offered||Not Offered||Not Offered||💙💚|
|COMP-2540||Data Structures and Algorithms||Offered||Offered||Offered||❤️💙💛💚💜|
|COMP-2650||Computer Architecture I||Offered||Offered||Offered||❤️💙💛💚💜|
|COMP-2660||Computer Architecture II||Offered||Offered||Not Offered||❤️💙💛💚|
|COMP-2707||Advanced Website Design||Offered||Offered||Not Offered|
|COMP-2800||Software Development||Not Offered||Offered||Not Offered||💚|
|COMP-3077||Web-Based Data Management||Not Offered||Offered||Not Offered|
|COMP-3110||Introduction to Software Engineering||Offered||Not Offered||Not Offered||💙💚|
|COMP-3150||Database Management Systems||Offered||Offered||Not Offered||❤️💙💛💚💜|
|COMP-3220||Obj Oriented Software Analysis and Design||Offered||Offered||Offered||❤️💙💛💚|
|COMP-3300||Operating System Fundamentals||Not Offered||Offered||Offered||❤️💙💛💚💜|
|COMP-3340||WWW Information System Development||Not Offered||Offered||Offered||❤️💛💜|
|COMP-3400||Advanced Object Oriented System Design Using C++||Not Offered||Offered||Not Offered||💛|
|COMP-3500||Introduction to Multimedia Systems||Offered||Not Offered||Not Offered|
|COMP-3520||Introduction to Computer Graphics||Not Offered||Offered||Not Offered|
|COMP-3540||Theory of Computation||Offered||Not Offered||Not Offered||💙💚|
|COMP-3670||Computer Networks||Offered||Not Offered||Offered||💙💛💚💜|
|COMP-3680||Network Practicum||Not Offered||Offered||Not Offered||💙💛💚💜|
|COMP-3710||Artificial Intelligence Concepts||Offered||Not Offered||Not Offered|
|COMP-3770||Game Design, Development, and Tools||Offered||Not Offered||Not Offered|
|COMP-4110||Software Verification and Testing||Not Offered||Offered||Not Offered||💚|
|COMP-4150||Advanced and Practical Database Systems||Offered||Not Offered||Not Offered||💛|
|COMP-4200||Mobile Application Development||Offered||Not Offered||Not Offered||💛|
|COMP-4220||Agile Software Development||Offered||Not Offered||Not Offered||💛|
|COMP-4250||Big Data Analytics and Database Design||Not Offered||Offered||Not Offered||💛|
|COMP-4400||Principles of Programming Languages||Offered||Not Offered||Offered||💙💚|
|COMP-4540||Design and Analysis of Algorithms||Offered||Offered||Not Offered||💙💚|
|COMP-4670||Network Security||Not Offered||Offered||Not Offered|
|COMP-4730||Maching Learning||Offered||Offered||Not Offered|
|COMP-4740||Advanced Topics in AI II||Not Offered||Offered||Not Offered|
|COMP-4770||Artifical Intelligence for Games||Not Offered||Offered||Not Offered|
|COMP-4800||Selected Topics in Software Engineering||Not Offered||Offered||Not Offered||💚|
|COMP-4960||Research Project||Offered||Offered||Not Offered||💙💚|
|COMP-4990||Project Management: Techniques and Tools||Offered||Offered||Not 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.
See Eric's presentation on behalf of CSS for landing an internship. This covers a bit of everything (resumes, applying, interviews).
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?
|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.
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. Eric highly suggests trying to land an internship in the Bay Area or New York.
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.
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.
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.