Skip to main content

First Year Advice from an AI

· 2 min read
GPT-3
GPT-3
Artificial Intelligence
note from Jeremie

The following article was written by an artificial intelligence called GPT-3 in response to the following prompt: "Write a long newsletter article written by yourself, GPT-3, for the UWindsor Computer Science Society Newsletter, giving advice to the incoming first years." I hope you enjoy!

Hi everyone!

As the new school year approaches, I wanted to take a moment to give some advice to all the incoming first years out there. Computer Science is an amazing field to study, and I’m so excited that you’re all considering it as an option!

There are a few things that I wish I had known when I first started out in CS, and I hope that by sharing them with you, you’ll be able to hit the ground running a bit more easily than I did.

First and foremost, don’t be afraid to ask for help! Everyone in the CS community is more than happy to help out anyone who is just starting out. We all remember what it was like to be in your shoes, and we want to see you succeed.

Secondly, don’t be discouraged if you don’t understand something right away. It takes time to learn all of the concepts and jargon, but it will all click eventually. Just keep plugging away and you’ll get there.

And finally, have fun! Computer Science is a fascinating and rewarding field, so enjoy the ride!

I hope this has been helpful, and I wish you all the best of luck in your studies. Welcome to the world of Computer Science!

Sincerely,

GPT-3

Keep Your Head Up!

· 2 min read
Abdulaziz Khan
Abdulaziz Khan
Career Advisor, CSS

As the semester is zooming past us many of us feel overwhelmed by the number of assignments, midterms and work we all have. Although it may be overwhelming you should make sure that you take time to relax and take care of your mental well-being. Make sure to always take care of yourself and enjoy the time you have at university; it is not all courses and tests. Talk to your friends, do an activity with them, go for a walk outside or play a sport. There are many ways to relax and take a break from the grind of assignments and tests.

If you cannot find any way to de-stress yourself would be to go to The Forge or go for a swim, if you feel overwhelmed and burnt-out talk to someone, that may be a board member or a fellow friend or someone at the University. There are many resources provided to students to ensure that they stay healthy both mentally and physically. To conclude please ensure that you guys are taking care of yourself as school begins to ramp up, if you need to talk to someone, we at CSS are here for you and we can also direct you to the various resources available from the university!

How I Became a CS Major because of One YouTube Recommendation

· 3 min read
Kelly Owenya
Kelly Owenya
First Year Representative, CSS

The world’s got a lot of lessons to teach all of us, but sometimes the most enjoyable ones are the ones we stumble on completely by chance. In my case, one of those impromptu discoveries ended up deciding my major and entire career path – and so far? I don’t regret it (except, admittedly, the Calculus parts).

So, without further ado…here’s the tale of the time I, formerly a complete beginner to anything and everything Computer Science, found one little YouTube video…and the rest is history.

I was relaxing over March Break and, as usual, fell straight down the YouTube rabbit hole of recommendations (that never fail to be eerily accurate, and extremely tempting to boot). In doing so, I came across this innocuous little video titled “Make Windows Look Better” by Urim Bersha.

Tired of the outdated UI of Windows 8 that I had on my old laptop, and being the notorious aesthete that I am, I clicked – intrigued by the sleek, city night themed desktop it promised. After watching, the beautiful theme and the easy, foolproof instructions enticed me, and I downloaded a computer program called Rainmeter, intent on following his instructions to a T.

Except - I did not. My imagination got the best of me, and soon I was envisioning not just a city, but a pixelated pastel paradise perfectly suited to my taste. What was originally intended to be a few hours of applying the tried-and-true steps to my computer ended up being a full 3-day adventure into the previously untravelled world of coding. I was so intrigued by what the program could do when editing the source code of sample objects and using the (...mostly) informative words of forums like Reddit as my guide, I set to work building my pastel paradise.

Through this unexpected little foray, I was able to get a grasp on C++ and Lua, and despite my rudimentary knowledge based completely on internet forum advice and messing around with the code until something stuck, I was able to begin to construct it. Even though it was not easy, I was so enthralled by it that none of it felt like a chore, and I was having genuine fun solving the problems I encountered along the way. After 72 hours (about 3 days) of toiling away behind my screen, with the odd food or bathroom breaks (sleep was, admittedly, a tad compromised), my peachy pixel paradise was complete, and I felt so incredibly satisfied. Borne out of all the errors, glitches, and missing files (that I had to scramble to find and label) was this custom theme I built, and it looked amazing.

Not only did I come out of that experience with a sweet desktop theme, but a newfound interest and passion for the intricacies of computers, which eventually led me to where I am today! That, I am and will be forever grateful for.

Nowadays, I’ve continued on my personal mission to customize everything I use, including my Discord, Spotify, VSCode, phone screen, browser window…you name it, I will find a way to slap my favourite colours on it somehow. I plan to learn HTML, CSS and JavaScript soon to turn my customization cravings into actual skills that will contribute towards my dream of being a front-end software engineer! It is crazy to think that I would have never even considered this career path if it weren’t for that one video, so life-changing opportunities can truly be found in the strangest of ways, so always keep an eye out…yes, even for a YouTube video.

Coding Convention Tips to Keep Track of

· 2 min read
Hamza Hussein
Hamza Hussein
Student Contributor

Nothing quite kills the joy in programming like silly mistakes do – be it a missing semicolon or faulty logic planning. However, some of these minute blunders can be rectified simply through bolstering your ‘coding style’. Every programmer has a variation of their own modus operandi, but a programmer worth their salt will tend to have these following tricks well-embedded into their programs:

Concise Commenting

Everyone knows commenting is a must. You would lose marks on your labs if you left your program especially ambiguous, right? But the importance of proper commenting stems past these labs – well-structured comments show their true potential when working on more long-term projects. If you took a break for a week off your computer, would you still remember exactly what every function on your program does? Unless the answer is “yes”, commenting remains a very valuable tool to keep the apt programmer in the know.

Ideal Indenting

Much like commenting, the concept of indents has most likely been hammered into your head since high school. But, in case you haven’t already heard of it, proper indentation is one of the most important techniques you can employ in your coding style. This is because it can drastically improve readability to humans, which may not only be you. If you want your TAs to have an easier time grading your work, make sure they can tell when your loops begin and end!

Variable Titles and Terming

Last, but not least: naming your variables and functions. Naming your variables unsuitably may not disadvantage the computer in any way, but it’ll certainly give your TA a reasonable basis to cross out some free marks on your final product. When creating a new variable or function, try not to resort to overly short or lengthy names. Name it appropriately to its functionality without going overboard with the description. Of course, exceptions exist: “i” and “j” are considered good style if your program only has a few loops. Proper naming comes with practice and intuition!

Fun Time at the CSS Super Bowl!

· One min read
Justin Bornais
Justin Bornais
Head of Societal Development, CSS

On Friday, April 8th, the Computer Science Society hosted a CSS Bowling night with 40 attendees. We reserved 7 lanes for people and also ordered 8 large pizzas. This took place at Super Bowl Lanes in Windsor.

The event was a huge success! Every lane was full, everybody had a good time and enjoyed the chance to socialize with the other CS students and representatives. Some participants even got the chance to film material for their campaign.

As restrictions start loosening up more and more, the Computer Science Society is looking forward to hosting more in-person events to allow the students opportunities to hang out and socialize!

Technology on a Roll

· 3 min read
Laila Albalkhi
Laila Albalkhi
Merchandising Coordinator, CSS

Note added by Jeremie: This article was originally written for a print version of the CSS newsletter where the formatting and line breaking of the text was much easier to force. To fully appreciate this article, you need to know where each line would break in the print version. As such, I've bolded each word that would have started a new line in the print version. I'll leave it as an exercise to you to figure out why I've done this.

Never has the field of technology reached these heights. The advances we see day to day are absolutely
going to change the world as we know it. Artificial intelligence and machine learning have allowed us
to discover things that we previously thought were impossible. Now what’s this article about? If you’ll
give me a chance, I’d like to talk about the drastic, incredible, and absolutely amazing advances that
you may or may not have heard about. Some of these things may surprise or astound you, but it’s only
up to you to decide what you’ll do with this information. But I can promise that your perspective will
never be the same.

Going back to the beginning of the tech revolution, we can begin seeing a trend in tech starting
to change our day to day lives. Technology helps you with many things to make your life easier. Phones
let you communicate with people instantaneously, allowing you to connect with loved ones overseas!
You can even check your e-mail, do your schoolwork, and check the weather, all before the sun goes
down! Nowadays, virtual assistants like Alexa help with daily tasks. Engineers at the start of the century
never would have thought talking to robots like Google Home would be possible! Ethical questions are
going to arise from time to time, but the introduction of virtual assistants have helped greatly! In order
to really understand how technology has progressed, think about how long it used to take computers to
run and how quickly they can run now. The introduction of quantum computing introduces speeds of
around 100 million times faster than any classical computer. Think of all the possibilities this will bring
and the improvements to come! What does this mean about the old technologies? Should we just
desert our old ways of thinking? What does this mean about what the future has to hold? Who knows,
you might even have the chance to contribute to this new era!

Battle Rollers - My Game Dev Experience

· 4 min read
Massimo Albano
Massimo Albano
Student Contributor

Game development can be overwhelming, especially if you don’t know where to start, and while I’m not a seasoned developer yet, I’ve learned a lot and am loving every step of the way!

I began my game development journey in the Winter of 2020 after taking a game development course. After the semester ended, over winter break, I began working on a game that I had an idea for a year prior. After about a month and a half, I had a simple game which I called Dungeon Rollers. The game is a dungeon crawler where you battle enemies by rolling dice. My game had no animations, one looping song and was just generally clunky and rough around the edges. With this game, I experienced first-hand what I always hear from established game developers. Don’t spend long on any of your early projects. I had learned so much in the short time that I was working on Dungeon Rollers that to move forward in development I would have to completely redo most of the groundwork that was in place, essentially starting from scratch! Although the game was not what I had originally envisioned, I still consider it to be a great success and it was an amazing experience. On top of learning so much from development, a Twitch streamer that I watched named Dan Gheesling played it on his show and brought fresh eyes to my game (a few hundred people watching live and over 2000 watched the YouTube video after), which led to 701 page views, 358 browser plays, and 41 downloads at the time that I’m writing this article.

After releasing my first game, I was eager to keep developing. But this time, I focused on small projects to hone my skills. I ended up creating 2 more very small games through some game jams that I entered online and although the gameplay for those games isn’t the most riveting, I learned so much from them such as how to set up animations as well as how to better handle user input. The things that I learned in these simple games are still things that I use to this day in my development!

After finishing the development on those games, I decided that I wanted to come back to Dungeon Rollers and make it more like the game I had always envisioned. I started working on the remastered version (which I had renamed to Battle Rollers as there was another game with the name Dungeon Rollers and I didn’t want to cause any confusion). Development ran from the end of April to the beginning of June. Battle Rollers has 2 playable characters, 4 original songs for different areas, and 6 enemy types with unique behaviours! I was so happy with my game and what I had accomplished, and I thought that I would try something new and release it on Steam.

For those that don’t know how releasing games on Steam works, just like I didn’t, there are a couple important things to know. Valve charges a $130 CAD fee for releasing a game on Steam and they take a 30% cut of any sales of your game, if you are selling it that is. With those things in mind, I went forward and released my game on Steam and have been very happy with the experience! While I haven’t yet sold enough copies to break even on the Steam Direct Fee, it’s a crazy feeling to know that anyone, anywhere, can open Steam on their computer and see my game. An even crazier feeling is seeing people from around the world buying my game. At the time of writing this, I have sold copies of my game in the UK, Germany, Russia, and South Korea! I’ve sold a total of 17 copies, with over 160 users keeping it on their Wishlist. At the end of the day, having this experience was amazing and I’m so glad I did it!

Hopefully I’ve inspired some of you to pursue game development in your future and I hope that you enjoyed reading my story! If there’s one thing that you should learn from this article, it’s to just develop your game. It won’t be perfect out of the gate and that’s totally okay! It doesn’t need to be.

If you have any questions about game development, or my game, then get in touch with me! The best way to do so would be to send me an email, or Tweet at me.

Please Don’t Ask Me to Fix Your Printer

· 2 min read
Ben Chittle
Ben Chittle
Secretary, CSS

Computers. Everyone’s got one. They’re in your pocket, on your wrist and sending you push notifications every time a squirrel runs past your doorbell camera. But even as a computer science student, when someone asks me to fix their printer, I’m no more qualified for the job than a car mechanic is to fix an airplane.

Sure, any printer worth its weight in ink cartridges these days is going to be filled with electronic features like a touch-screen menu interface and the ability to connect to Wi-Fi, and yes, I deal with computers that also have these features on a regular basis. However, this does not mean that I know why your printer must be constantly realigned, allowing it to gleefully spew a page’s worth of ink onto a piece of paper "for calibration purposes.” Nor do I know why your paper tray is always empty, though it probably has something to do with goblins.

But if you must recite the sacred words, “Will you please fix my printer?” then you give me no other choice. I must come to your house. I must find your printer. And I must unplug it for five seconds before plugging it back in. This is my fate. You’re welcome.

Hacking, Learning, and Money?

· 2 min read
Jeremie Bornais
Jeremie Bornais
President, CSS

Two questions I’m often asked from first and second year students are “how do I level up my coding skills as a beginner?” and “how do I make my resume stand out with no work experience?” While there are many different ways to accomplish these things, what I always end up recommending is for these students to check out hackathons.

Participants form teams of 1-4 members, and bring a project idea to life for a chance to win money. Sometimes there’s a theme or a specific challenge, and other times it’s more open to interpretation. The reason why I always recommend hackathons to students is because they’re free, fun, and incredibly helpful in learning new skills. From attending workshops about new tech, to receiving advice from mentors, to connecting with your teammates, there are a TON of ways to learn new stuff at hackathons!

One of the cool things about hackathons is you can potentially use a hackathon in three different parts on your resume: you can list the project you built under “projects”, the hackathon itself under “competitions”, and any prizes you won under “awards”. Since MLH has hackathons every weekend, within the span of a month you can go from nothing on your resume to multiple projects and competitions!

Have I piqued your interest? Well, you’re in luck. The University of Windsor has its own hackathon - WinHacks! WinHacks will take place from March 25-27, and there will be plenty of workshops, events, and opportunities to win money! I urge everyone to apply for the hackathon here. Also to participate, you must join our Discord server. I look forward to seeing you all there!

Using Synthetic Data to Improve Machine Learning

· 2 min read
Justin Bornais
Justin Bornais
Head of Societal Development, CSS

Artificial intelligence is becoming an increasingly prominent field of computer science. The idea of computers being able to think for themselves is both amazing and is what motivates me to learn more about programming.

There is only one drawback to AI (Artificial Intelligence): data is needed for the model to learn and mature. A lot of data in fact, especially for sophisticated models. For example, Inception V3 (a model for image classification developed from Google) requires over a million datapoints for training.

That is a lot of data! Collecting the data can be expensive and incredibly time consuming. If only it were possible to generate your own data instead of having to collect it organically.

That is where synthetic data comes in. Synthetic data can solve lots of problems regarding AI. For one thing, it allows developers to work with more data without having to overcome various obstacles they may face. Some of these obstacles include the cost of collecting information, as well as potential privacy concerns.

It also will preserve relationships between variables in a model, as the data will be created intelligently instead of randomly. Not only that, but synthetic data can simulate conditions not yet encountered in your organic dataset. This can be highly beneficial for the health industry, robotics, security and other areas.

Now of course, any synthetic models generating data from already existing models can only go so far. They can only simulate general trends and reproduce specific properties derived from their organic counterparts. Though, a study at MIT in 2017 showed that training a model from real versus artificial data showed no significant performance difference 70% of the time.

Synthetic data is a growing reality in the field of artificial intelligence. As developers discover new and improved ways to generate data, we will see an increasing amount of synthetic data in various machine learning applications.

I hope this excites you as much as it excites me!