Introduction

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.

Contributing

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...).

Contributors

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

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.

Jose's recommended course sequence for the first two years of University

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 Physcology (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 enrol?

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.

Requirements:

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).

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:

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.

Resume Examples

Job Boards

intern.supply - 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.

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.

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.

Visa

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.

Research

Outstanding Scholars

Uwindsor offers Outstanding Scholars program for students to get involved in research projects. Student will get paid for the placement under the supervision of the instructors. The program requires student 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?

As you are reading this section that means you have interests in research, however whether it is the right path that aligns your career goal.

If you plan to do graduate studies, research is the best way to get you started. It will give you the helpful insight of how the research study works. You will build a good relationship with different faculty members that 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.

Pros:

Paid placement 2nd/3rd year 16.35$/hours and 4th year 17.30$/hours.

Flexible total hours for working 45-100 hours per placement.

Great opportunities to pursue grad school.

A lot of machine learning research projects and cyber security focusing on different kind areas such as social network analysis and document and network analysis.

Placements are not limited in the department. OS program is an golden key that could open any research doors for you.

Cons:

Depends on research projects, do not expect to code a lot. Unless you are buidling a traning model for machine learning algorithm or simulating model.

Weekly or Bi-weekly meeting. Must keep close contact with professor with your progress.

If the supervisor is too busy, we know most 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.

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.

Requirements:

Academic accomplishments: GPA 85% or higher.

Evident desire to do research or original creative work for the benefit of others.

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 interests.

A reference letter from a faculty member or instructor. To get a greate reference letter, you could get to know more about the professor research project during the office hour. This will shows that you are curious and willing to learn. They will put a good word for you.

Bugs in the OS program system

If you complete only 9 courses for 2 semesters in the first year, then you will not receive an invitation to apply for the program. Do not worry, you could contact Dr. Simon du Toit to inform him about your interests in the program.

If you complete more than 14 to 15 courses already, could 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 of 3 years of your study. If you have complete more than 10 courses then you have less than 6 semesters left. You will not meet the requirement. However, if you plan to take an extra summer course and do 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

Miscellaneous

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

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