INTRO TO PROGRAMMING I
“GRADESCOPE IS THE MOST FRUSTRATING THING EVER.”
-I think i said that over 100 times, but you eventually learn
OVERVIEW
If you don’t know how to code going into this class (like me), that’s okay! APSC 141 is meant for complete beginners. In this course, you’ll learn how to work with a programming language called C. The lectures will be online videos and you’ll have in-person labs to complete each week.
This course is only 4 weeks long. In 2023, a course called APSC 143 was split into two parts: APSC 141 and APSC 142. APSC 141 is what you’ll do in first semester: it’s only about 4 weeks long, but it’ll cover a good introduction to programming. Most importantly, it’ll provide you with the skills you need for the software component of your APSC 101 design project.
ONE THING TO KEEP IN MIND: this is generally the course with the biggest “divide” between student types:
IF YOU KNOW HOW TO CODE: this class will be a breeze for you. You’ll still need to put in effort to complete the class requirements, but a handful of people last year managed to get over 100% in the class due to extra credit. If you’re good with the course topics, it’s always appreciated when you help out others with practice/understanding concepts. PLEASE refrain from talking about how “easy” the course is; many people (like myself) are learning the content for the first time and struggle with completing the course requirements on time.
IF YOU DON’T KNOW HOW TO CODE: this is a good introductory class and you get to learn everything from scratch! Make sure to pay attention to the lectures and ask the TAs for help during the labs. A little more effort may be required, but it is entirely possible to do just as well in this course as people who have previous experience.
The labs (have been called “learning modules” in the past) are worth a BIG part of your grade. If possible, try and read the instructions of the labs before arriving to class to figure out exactly what concepts you’ll be using. I found it useful to rewatch some lecture videos if I was uncertain about certain elements.
Also, ASK YOUR TAs FOR HELP. In my year, people were scared to ask them for help at first, so they were just walking around with nothing to do. If you ask them for help, not only will you get through everything so much faster, but you’ll also learn a thing or two that you might have missed during a lecture video.
LABS
Assignments
Depending on what grading software the course uses (it has changed in the past), the assignment submission might be more difficult than the assignment itself. This is because while your code seems like it’s working on your IDE, the grading platform might use slightly different software, meaning some of your code might not work. Because of this, you’ll likely have to “trial and error” your code until you figure out the error. ASKING PROFESSORS AND TAs FOR HELP is the best thing you can do for this type of issue. Last year, going to the class helpdesks/office hours was so helpful (you can find the hours for this on OnQ), but make sure to go early because I found it could get busy very quickly.
For me, the assignments were pretty daunting (I found there was a lot of info dumping and it was hard to find the time to do them sometimes). PLEASE start them early, and do them before the weekend because it’s very difficult to finish them in one night.
For my year, the final exam was online & proctored (it uses an online video software). The course instructor will tell you exactly how the exam will proceed, but if you’re using an online proctoring software, make sure to do a practice run with it and have everything properly set up in advance. I skipped out on that part and the actual exam was pretty stressful and I almost got kicked out. For these types of online exams, there are staff you can call in case you run into technical issues (which I did, and it saved the day).
For us, the final exam was a mix of multiple choice, short answer, and longer answer problems. Most of the time, it was interpreting how a given line of code was supposed to work (ex. “what is the output of the following code”), but there were also questions to ask us to write lines of code (only part of a program) or a small-sized program (nothing crazy).
I found that many people studied the coding portion too much and not the actual theory. If I were doing the course again, I would review the hardware components involved with computers, definitions, etc. because that’s something that could be covered on the exam.
A good way to prepare was re-doing the labs and the practice modules/problems provided. The level of difficulty on the exam was somewhat similar, and re-doing the labs was a good refresher for content we’d done earlier on in the semester.
And finally, make sure you’ve NAILED the difficult concepts (for me, that was nested loops), because they’ll definitely be quizzing you on that content."
Final EXAM
Pro tip: when you’re watching the lecture videos, have your Ide OPEN. Every time the videos go through an example problem, code the example problem at the same time as the instructor. You’ll remember wayyy more, and you’ll be more comfortable during the labs.”
OUTSIDE RESOURCES
OUTSIDE RESOURCES
I would HIGHLY recommend you ONLY stick with the course content since this is only an introductory course and outside content gets too complicated. If you really want help though, these are some resources to help you out:
Make yourself a cheat sheet
This really helped when I was studying for the final and needed to consult syntax quickly. Save time and make one with your friends! I’ve linked an example of a cheat sheet online, although some of it is blurred out because I’m not cool enough to have the pro version. It’s still gives you a good idea of what you can do:
BroCode
There are a lot of YouTube guys out there, but I liked this guy because his videos were pretty short and he showed his IDE, which allowed me to code at the same time as him and copy what he was doing. Select “C tutorial for beginners”:
COURSE RESOURCE
COURSE RESOURCE
Made for APSC 143, this guide is an excellent review of course concepts, programming terms, and how to approach problem-solving. Keep in mind that it has content for APSC 142 (programming class in second semester), so do not worry about the concepts beyond what the course syllabus outlines. I’ve highlighted the main sections that are covered in the intro course, but this is a rough estimate. Created by one of the coolest upper years to have set foot at Queen’s, if you use this guide, there is one condition you must follow:
"Feel free to share this package with your friends, family, enemies, pets, future frosh, and anyone else you want to share this with, on the condition that whoever receives this document must acknowledge and agree that I, Michael Wang, am the coolest FREC of Sci 20.”
Michael Wang