About the Danish Education System.
I have a previous bachelor's degree in Japanese Studies, so I'm a few years my classmates senior and probably have a different concept of what is important in university.
Beginning at a Possible End: Dropping Out
CS is said to be tough. The dropout rate is high and I can now personally attest that you need to want it, be smart, and work hard to pass even the first year. The dropout rate is a running joke at AU and people often attribute it to freshmen misunderstanding CS, thinking it's about learning how to make video games. From my experience, this misunderstanding is not that widespread. In all university fields, people quit for a myriad of reasons including but not limited to: illness, family troubles, financial problems (yes even in Denmark), lack of interest, change of mind, and difficulty of subject. If you quit, you quit. I don't believe it's anything to feel bad about, it just wasn't right. But the sooner you realise you aren't in the right place, the better. If it doesn't feel right, trust your instincts.
For the past years CS has been divided into half-semesters (let's call them quarters) for the CS subjects and possible whole-semester subjects for later subjects further down the education, including supplementary classes in different fields like mathematics. This means that the first year has 12 classes, 3 in each quarter, each quarter ending in a exam period. This in turn, means that unlike most other studies at AU, you don't get any vacation until summer. Nothing in autumn, winter or spring. No Christmas nor Easter. Oh yes on paper you get vacation, but not in reality. Adding to this, each class has a weekly mandatory hand-in that might be manageable in the first quarter, but quickly becomes rather tough later on. If you don't hand it in on time and all hand-ins aren't approved by the beginning of exams, you won't be eligible for the exam. In other words, hand-ins quickly become like constant exam-like situations, so the first year quickly becomes one long exam. This is very, very stressful. So much that some have to dropout due to the stress.
Structure of Computer Science
The Subjects of Year One
From here, it might be best to simply describe each class of the first year, so give an understanding of the workload, contents and difficulty of CS.
- Perspectival Computer Science (Danish: Perspektiverende Datalogi)
Tools: Some archaic database stuff.
Thought of as an easy subject and often derided as being to close to humanities, this is an introduction to writing academically, it gives you a chance to learn LaTeX (program to write academic documents professionally and useful for writing mathematical symbols). Yes, it is relatively easy, although some of hand-ins can be tough to wrap you head around at this point. You get a real quick introduction to many of the subjects later in the education, many of which I have yet to have had. Basically, if none of the subjects makes you even a little interested, CS isn't for you. The exam is just having completed all hand-ins.
- Introduction to Programming
Very basic introduction to Java programming, using some playful learning programs (Greenfoot and BlueJ). The class is a waste of time for people who already know some coding and isn't very good at teaching coding for those who don't know. But this is your best chance to wrap your head around the basics of coding (variables, loops, if-statements, functions/methods) and some algorithms. Take advantage of the easiness to get really good, the lull won't last. The exam is silly. It's a speed test about writing some predefined simple programs.
- Calculus 1
Tools: Math software of your choice.
Continuation of high-level high school math. I found it tough, but am continually angry at myself for listening to the advice my seniors gave me: They said I shouldn't use a computer, because doing the work by hand would teach me better. This is idiotic and applies for Calculus 2 as well. Use a computer and focus on understanding the math instead of doing it by hand and wasting time on finding small mistakes in your homework.
- Computer Architecture
|Image of how stacks work. From Structured Computer Organization, fifth edition.|
Tools: IJVM, Java, C, Assembly
Tough subject. Big hand-ins. Large curriculum. You work in groups of 2-3 people. Don't let one person do the hand-ins, be firm about this. Only this person will be prepared for the exam. The subject is about how a computer works on the lowest levels and gives you a great respect for what the hell is going on inside all of our devices. You'll work with various assembly-like languages and maybe a bit of C, although that's too high level for most of the class. Multiple-choice exam.
- Programming 2
|Coding an applet in Java. Horrifying ugliness, gratifying results.|
Tools: More Java
Introduction to Programming gone wild. This class is much more difficult than Introduction to Programming. So much in fact, that it seems silly they're allotted the same amount of time. It's a very bureaucratic class with an oral exam. The weekly hand-ins can be a little confusing in what they're asking for, but the execution isn't that complicated.
- Calculus 2
Tools: Math software of your choice.
Calculus 1 and 2 should be one class with a single exam. Pure continuation of Calculus 1. The exam is a 4-hour doozie. The way the questions are phrased can (in my opinion) differ widely from the preparation material, making it difficult to prepare. Not really advice, but be aware.
- Interaction Design
Tools: Your imagination, pen and paper, web design tools.
- Algorithms and Data Structures 1
Tools: Mostly just pen and paper.
|Visualisation of an algorithm. From Introduction to Algorithms, thirds edition.|
Now things start to get computer science-y. Learn about a lot of algorithms and what they do. There's a lot of information and the book is dense as fuck. By now you will also be quite tired from lacking rest (remember, you haven't had real a break in more than 6 months now). This class is to me, the definition of CS. You use programming, but simply as a tool to perform tasks. You might even marvel a bit at what you can do with very little code in this class.
- Web Technology
Tools: Oh boy... too many.
- Programming Languages
Tools: Emacs and Scheme
Not too difficult, but the hand-ins can be enormous, making it tough. Your first introduction to how the linguistics of programming languages. You work functional programming languages and use Scheme. You'll also be pushed to learning emacs. I didn't enjoy emacs but some start to swear by it. Enjoy.
- Algorithms and Data Structures 2
Tools: Pen and paper.
Like Algorithms 1, just bigger and badder. Like Calculus 1 and 2, they really ought to be one class.
- Regularity and Automatons
Tools: Pen and paper, Java
Works together with Programming Languages to give you an understanding of compilers and how a computer interprets languages. The formality of the class can make it extremely difficult and many people simply freeze at the oral exam. The hand-ins are manageable but the subject itself is really really difficult. There can be a lot of Java programming in this class.