j_sulz

Jag har kommit över halva vägen genom Oregon State Universitys datavetenskapsprogram. Det är en (lätt) slitsam handske med 15 kurser, som blir ännu mer slitsam av att jag jobbar heltid och läser två kurser per kvartal (med ett undantag för den gångna sommaren då endast en kurs stod på schemat för att ge mig tid att gifta mig 🙂 ). Hittills har jag läst, eller läser för närvarande, följande kurser (i ingen särskild ordning):

  • Introduktion till datavetenskap I
  • Introduktion till datavetenskap II
  • Diskreta strukturer i datavetenskap
  • Databaser
  • Datastrukturer
  • Webbutveckling
  • Introduktion till databaser
  • .

  • Datorarkitektur & Assembly Language
  • Analysis of Algorithms
  • Operating Systems (pågår för närvarande)
  • Software Engineering I (pågår för närvarande)

Och jag har följande kurser framför mig:

  • Software Engineering II
  • Introduction to Usability Engineering
  • Intro to Computer Networks
  • Mobile and Cloud Software Development
  • Software Projects (Program Capstone)

Som i alla andra program som är utformade för att undervisa en varierande grupp av studenter, som alla har olika inlärningsstilar och som kommer från olika bakgrunder, varierar kvaliteten och svårigheten på kurserna. Enligt min bedömning har de mest intressanta kurserna också varit vad jag anser vara de svåraste.

Introduction to Computer Science II var till synes utformad för att sortera bort studenter som inte var starka programmerare. Kursen var mycket inriktad på att skriva kod (C++ är det primära språket som används i OSU:s program och det var mycket framhävt här) med fokus på objektorienterade designmönster.

Discrete Structures in Computer Science skulle troligen ha varit lättare om mina algebra- och bevisskrivningsmuskler inte var så rostiga. När du väl är varm i kläderna är kursen dock en fascinerande övning i induktivt resonemang och en gedigen introduktion till mängd- och grafteori. Kursen har visat sig vara särskilt användbar när jag undersöker discipliner relaterade till artificiell intelligens som är tunga på de typer av symbolik som du introduceras till i den här kursen.

Datorarkitektur & Assembly Language är en resa. Medan C++ exponerar dig för begrepp som pekare och minnesallokering – saker som de flesta språk abstraherar bort – är assemblering ett helt annat djur. Här lär du dig att flytta runt minne i processorn och ser hur slingor, villkorliga påståenden och funktioner byggs upp från grunden. Du introduceras också till cykeln hämta, avkoda, utföra som alla CISC:er använder. Kort sagt, du lär dig vad en dator är och hur den gör alla de vackra saker som vi tar för givet.

Analys av algoritmer var, konceptuellt sett, den svåraste kursen i programmet. Arbetsbördan var lättare än Introduction to Computer Science II, men sista gången jag tittade på gränsvärden och derivat var i college. Jag fann mig återigen i att gå till Khan Academy på helgerna för att fräscha upp mina kunskaper i kalkylering, men när jag väl hade lärt mig grunderna var det dags för tävlingarna. Den här kursen var den första där jag kände mig som en “datavetare” eftersom begreppen kräver ett abstrakt sätt att tänka som sträcker sig längre än att “bara” programmera eller skriva programvara. Här får du se Big-O-notation och algoritmanalys, dynamisk programmering, komplexitetsteori, grafteori och algoritmer samt klassiska sök- och sorteringsalgoritmer. Kursens kvalitet i sig lämnar något att önska, men ämnena är verkligen vackra.

De andra kurserna är inte “dåliga” i sig, men de saknar antingen de andra kursernas stringens eller djup, eller så är organisationen/föreläsningen/kursarbetet så dåligt att det distraherar. Med det sagt har varje kurs sina egna guldkorn av intressant innehåll, och viktigast av allt, den fortsatta handlingen att lösa problem är nyckeln till att lära sig hur man blir en “utvecklare”, “ingenjör”, “datavetare” (eller vad man nu vill kalla någon som flyttar bitar runt i hög hastighet).

Och nu är jag inne på slutspurten! Under de kommande tre kvartalen kommer jag att avsluta sju kurser, med majoriteten av de kurser som återstår (användbarhetsteknik, programvaruteknik, molntjänster) som alla är saker som ligger inom mitt område. I augusti i år kommer jag att vara den stolta ägaren av en B.S. i datavetenskap från Oregon State University och jag kommer att gå vidare till Georgia Techs masterprogram i datavetenskap. Tidsåtgången för det här programmet har ibland varit stressande, men jag skulle inte byta den här erfarenheten mot något annat.

Lämna ett svar

Din e-postadress kommer inte publiceras.