This is an overview of the process for completing an ordinary BS in Computer Science (CS) at the Department of Computer Science at UAF. This page is derived from the UAF Catalog and department policy, which are the definitive, official sources.

  1. While in high school, take some hard classes like math, science, and engineering.  Develop good study habits: the ability to take good notes, ask good questions, and make good use of your time.  Advanced Placement (AP) courses area good way to do some challenging work and earn college credit while you're still in high school. 
  2. In the middle of your senior year of high school, apply to the UAF bachelor's program and get accepted.  Unless you are incredibly rich, fill out the Free Application for Federal Student Aid (FAFSA), and apply for scholarships--your high school guidance counselor can help you with this.
  3. Unless you have other housing nearby, we recommend you move in to the residence halls for your first year.  It's hard enough living away from home, and it's nice to just let Residence Life find you a roomate and set up the network, phone, power, laundry, water, and meals--at an apartment, you would have to arrange for all of these things yourself!  

See the CS bachelor's degree requirements in the catalog.

It's very important to get started on advanced mathematics as early as possible, preferably during high school. Math placement determines where you start in this course sequence via an online test called ALEKS. You can take MATH 151X and 152 during the same semester, but everything else needs all the courses before it. If you start at the beginning, this will take two years of classes before you can even start on calculus and declare as a computer science major!

  1. DEVM 054: Prealgebra (need a C or better)
  2. DEVM 055: Elementary Algebra (need a C or better)
  3. DEVM 105: Intermediate Algebra (need *B* or better)
  4. MATH 151X: Functions for Calculus (need a C or better)
  5. MATH 152: Trigonometry (need a C or better)
  6. MATH 251X: Calculus I (need a C or better)

In addition, ACCUPLACER  is one of the mandatory placement exams used by UAF for any English course requiring a prerequisite and/or placement test (such as WRTG 111X below), and for students applying to a certificate and/or associates degree program.

A typical calculus-ready CS bachelor's degree might look as listed below.  There are many options, but the CS and MATH courses are generally listed at the last possible time you can take them and still graduate in four years.  Pay particular attention to the courses on the "critical path"--the courses that have long chains of prerequisites, and hence need to be started early.  Courses on the CS 441 critical path are marked with *; courses on the CS 472 critical path are marked with +.

  1. Fall, freshman year
    • Take CS 103 (Introduction to Programming) if you've never had programming before, or else jump right into CS 201.
    • Take MATH 251X (Calculus I), needed before Physics 211 or Math 252X. *  If you aren't ready for calculus, see above.
    • Take Chem 105 or another lab science course.
    • Take WRTG 111X.
    • Take COJO 131X or 141X.
  2. Spring, freshman year
    • Take Chem 106 or another science course.
    • Take MATH 252X (Calculus II), needed before Math 253X. *  Or continue your developmental math.
    • Start taking courses needed for the general education requirements in arts, humanities, and social sciences.
  3. Fall, sophomore year
    • Take CS 201 (Computer Science I), needed before CS 202 or CS 301.+
    • Take Physics 211 (General Physics I), needed before Physics 212. *
    • Continue taking courses needed for the general education requirements in arts, humanities, and social sciences.
    • Take an elective.
  4. Spring, sophomore year
    • Take CS 202 (Computer Science II), needed before CS 311.+
    • Take CS 241 (Computer Hardware Concepts), needed before CS 301.  This class replaced EE 341 in 2020.
    • Take MATH 253X (Calculus III), needed before or during Physics 212.
    • Take Physics 212 (General Physics I).
    • Take WRTG 213X.
  5. Fall, junior year
    • Take CS 311 (Data Structures and Algorithms), needed before CS 471 and many CS electives.+
    • Take CS 301 (Assembly Language), needed before CS 321. *
    • Take MATH 307 (Discrete Math), needed before CS 411 or CS 451.
    • Take CS 371 (Ethics & Technical Communication). 
    • Take an elective.
  6. Spring, junior year
    • Take CS 321 (Operating Systems), needed before CS 441 and others. *
    • Take CS 331 (Programming Languages).
    • Take CS 372 (Software Construction)
    • Take an ethics course: BA 323X, COMM 300X, NRM 303X, PS 300X, or PHIL 322X.
    • Take STAT 300.
    • Take the Library Skills (LS) test at UAF Testing Services, Gruening 211.
  7. Fall, senior year
    • Take CS 471 (Software Engineering), needed before CS 472. +
    • Take CS 411 (Analysis of Algorithms), or take CS 451 if offered in a nearby spring.
    • Take two electives.
    • You should start to think about what you want to do after graduation.  If you want to move on to graduate school, be aware most schools' application deadline can be as early as October to start in the fall.
  8. Spring, senior year
    • At the start of the semester, fill out the Application for Graduation form and turn it in to the Registrar's Office by the posted deadline dates: Fall - October 15; Spring - February 15; Summer - June 15
    • Take CS 472 (Senior Project) +
    • Take CS 441 (System Architecture) or EE 443. *
    • You'll need a total of three upper-division CS electives and one math elective to graduate.
    • You should now have your post-bachelor's plans finalized.

We professors have a lot of advice to give you:

  1. Each semester, you should plan on taking about 15 credits--about five courses' worth.  It's mathematically impossible to finish a 120-credit degree in 4 years if you take less than this on average, and taking a few more credit hours allows you to branch out and explore some fields you find interesting, rather than just sticking to what is required.
  2. While at school, develop good habits:
    • Go to class.  It's very difficult to learn the material if you're just cramming from a book the night before an exam. 
    • Participate in the class.  Do the reading the night before, pay attention to the lecture, ask questions about stuff that's unclear, think about the subject in and beyond the class meeting time.
    • Get started on homeworks and projects early.  Give yourself some extra time in case things go wrong.  Zeros on the homeworks can drag down your grade very quickly!
    • Get plenty of sleep.  Sleep deprivation harms both attention and memory consolidation .
    • Before you download that awesome new game, ask yourself: will this distract me from my schoolwork this semester?
  3. Your first year or two will consist of "core" classes, taken from a variety of departments, that are designed to broaden your mind and give you a basic understanding of other disciplines.   You'll then focus down onto CS and Math courses to cover the core of computer science.  The last year, you'll be taking mostly high-level CS classes, and have opportunities to take electives.
  4. When you have questions, talk to a professor.  We're here to help!