Navigating CS 161 at OSU - Intro to Programming

Embark on my CS 161 journey at OSU, delving into Python basics. From application to balancing work and classes, learn about the challenges and triumphs.

  1. Application Process

    Transcripts

    Submitting transcripts was straightforward. Navigate through past universities, send transcripts, and track them through the application portal. Most transcripts were requested online, and their fee was from $5 to $10 per transcript.

    Application Fee Waived

    My $50 application fee was waived because this fee only applied to new students. I'm not entirely sure why my application fee was waived, but I was happy about it. 

  2. Registering Process

    Orientation Hassles

    Registering involved a tedious orientation and acquiring a PIN from my counselor. It was somewhat bureaucratic and time-consuming, hindering the registration process. Knowing what classes you need and how to check the prerequisites for someone with a degree should be straightforward. Anyway, I did it to get the PIN and register.

  3. Canvas: The Hub for Learning

    Navigating through Canvas

    Canvas is the main portal for the syllabus, class materials, quizzes, discussions, group projects, homework, Gradescope, etc. Getting used to it was alright. 

    TA Assistance

    TAs conduct sessions on Teams and Zoom. I think all students had to score at least a B+ or A- in the class. A lot of the TAs are seniors and were very helpful. Some are doing internships at big tech companies and will give you some tricks. I was always grateful for their time. To take advantage of this, I made sure to have specific questions if I needed help understanding something or if I was having a problem with the homework. Some will jump on a video call with you, others will have group sessions, and others will only answer messages because they had so many requests from other students that they didn't have enough time. You just have to know each other's style and adapt. 

    Module Breakdown

    The class is divided into ten modules comprising lectures, videos, homework, quizzes, and recorded review sessions. A series of short articles will follow, detailing each module.

    For CS 161 - Introduction to Computer Science, the modules were the following:

    1. Problem-Solving & Some Context

    2. Input, Output, and a Few Other Basic Operations

    3. Comparison & Logical Operators, Conditional Execution, Iteration, Code Tracing

    4. Functions

    5. Recursions, Classes & Objects

    6. String Manipulation & Lists

    7. Tuples, Mutability vs. Immutability, Object References & Identity

    8. Dictionaries & Sets

    9. More Object Oriented Programming

    10. Combining data collections & object-oriented programming

  4. Setting Up the Work Environment

    After reviewing the syllabus, setting up the work environment was a priority. PyCharm was the chosen integrated development environment (IDE) as the development environment.

    Additionally, we install Git on our computer to tell PyCharm where it's located so you can use Git from PyCharm. We then clone some projects to create our own private repository (or repo) for the project on our GitHub account. GitHub is a popular web hosting service for Git repositories. After setting up, we could commit and push our code; this stores a backup of the current version locally on my computer and in my repository for that specific project on GitHub.

  5. Classes and Support System

    Office Hours

    A highlight was the availability of support. Professors held office hours and live review sessions, providing substantial assistance. It was helpful to try the homework before the live office hours and then ask some specifics if I had any questions. This way, I saved some time, and the professor saved some time. Not many students attended the class, four or six at max.

    Teaching Assistant (TA) Hours

    Thirteen TAs with varied office hours facilitated help. Though sometimes busy, they were crucial for homework assistance. It was nice that the TAs were spread between workable and non-workable hours and weekends. Some even took the time to explain to me some topics that I needed some clarification on.

  6. Homeworks and Quizzes

    Homework Challenges

    Homework varied in difficulty, with some proving challenging. Regular attendance in lectures and seeking clarifications helped. The homework started to get gradually more difficult. Homework for each module was released two weeks ahead. Still, between work, work travel, and personal commitments (Like surfing ๐Ÿ˜… ๐ŸŒŠ๐Ÿ„๐Ÿฝโ€โ™‚๏ธ), I did them weekly. I tried to never wait until the last minute. This strategy worked for me.

    Quizzes Overview

    Quizzes, mainly multiple-choice, were open-book and open-tools with two attempts. They primarily tested knowledge from the module'smodule's lecture. Fairly easy. 

  7. Preparation and Balancing Act

    Prep Work

    I knew that getting the post-baccalaureate in computer science while working was going to be challenging. My method since high school has been to prepare for future classes in my spare time for three reasons: getting a lot of free time, getting good grades, and making the most out of the course. 

    Prior preparation with Codecademy Pro membership, specifically in Python, allowed for a smooth start and effective use of resources. I took the course ""Learn Python 3"" I found out the course was well organized and covered a lot of the material from the class. It allowed me to synthesize the class material faster, be more efficient with my time, and finish the homework faster. 

    I also took an Udemy class called: ""100 Days of Code: The Complete Python Pro Bootcamp for 2023"" when I was trying to learn it by myself without any direction. The course was good and gave me a good foundation as well. 

  8. Work-Life-Class Balance

    Balancing full-time work, classes, and personal life was achievable due to efficient prep work and a focus on physical and mental well-being. I like what I do right now for work and my life outside of work, so I had to be efficient with my time to enjoy all three things. Taking care of myself and being happy would be the metrics I would focus on, so I also bought an Oura Ring to have some device to help me track my health.

  9. Building a Portfolio

    GitHub for Projects

    The class introduced a GitHub account for basic projects. Although the projects that we were doing in this class were very simple, it was a good start. 

    At first, I was discouraged because I imagined that a portfolio should be like a big project like cool software, but then I asked one of the professors, and he explained to me that it wouldn't make much sense since all those cool software look the way they look because the cool software looks cool because they have a lot of employees, different departments and bigger budgets. So he explained that what companies look at on your portfolio is what you have developed, the specifics, your code, and how a programming problem was approached. After that, it made sense.

    Future Portfolio

    Aware of the need for a portfolio, I asked the professor how I could create one. He told me that there are multiple projects online. I was still skeptical because It didn't make much sense to get hired at Google by showing a Hanger, tic-tac-toe, or a calculator on your portfolio.

    I talked to one of my mentors (I will write a post later about the importance of having a mentor and how to find one). I explained my concern about projects like the hanger and tic-tac-toe, and he agreed. He recommended I look into Educative.io for more useful projects. Since I don't want to limit myself, and my current plan is to learn as much as possible and see the biggest output I can get from my learning, Educative.io is an excellent way to go. I will be writing a blog post about this platform. Luckily, with my student ID, we get free access, which is good enough for prep and personal projects. 

  10. Integration into Work

    Applying Knowledge

    The acquired knowledge was applied at work, particularly in streamlining tasks. Excel usage was optimized, reducing the time spent on engineering reports. I could use all the tools learned in this class, and I plan to keep improving my program and share it with all the companies once it is ready. 

Previous
Previous

CS 161: Mastering Intro to Programming - Problem-Solving

Next
Next

Why I Chose Oregon State University Online Post Bacc Computer Science Program