Before starting my first year as a Computer Science student at the University of Edinburgh, I had a lot trouble in gauging the difficulty level of first year and what it involved.
# Background
To start of I would be like to talk about my experience and education before starting university.
I did my high school in India with the CBSE Board. In tandem I also prepared for joint entrance exams for engineering colleges like most of Indian High schoolers studying science subjects.
Class 11-12th in CBSE covers what would be equivalent to IB board, while in preparation of entrance exams we covered Maths, Physics and Chemistry to the first year undergraduate level.
I also had done C++ in school for the past two years and had learnt Python on my own.
# First Semester
# Compulsory Courses -
- Introduction to Computation (20 Credits)
- Introduction to Linear Algebra (20 Credits)
You have 20 Credits free which you can take from any school or department. Some of the popular outside courses are listed here.
I spent my 20 Credits on Our Changing World a highly interesting course from the School of Biomedical Sciences.
Plus points were:
- No written exam
- Single lecture per week in the evening
- Stimulating group discussion groups once every week.
Negatives:
- Writing an essay(people from tech backgrounds generally struggle alot in writing academic essays).
In this post I will cover Introduction to Computation.
#Introduction to Computation
The course introduces concepts of computer programming through the Haskell programming language. To those who are unaware Haskell is a purely functional language, and has deep relations with University of Edinburgh and with Scotland in general.
Each new batch of informatics students is generally split 50-50 in those who have prior programming experience and those who don’t. To make sure everyone has something new to learn the school argues that given the differences and obscurity of functional programming languages from imperative languages (like Python,Java, C++ etc.) it is best to teach the course in Haskell.
In my opinion Haskell is a great language to learn for people with prior experience with programming, however for beginners it might be a bit off putting with its syntax and low amount of support available online.This course till 2017-18 was split into two parts:
- Functional Programming, and
- Computational Logic
These two courses were combined from our year (18-19).
Computational Logic part of the course has historically been confusing and boring for many people. Many felt that they barely understood what was being taught until the end. Surprisingly though it is one of the highest scoring exams in the entire School. This happens largely due to a mock exam paper being released few weeks before the actual exam. The actual exam has the same pattern as the mock exam and they sometimes also have overlap in questions.
Sets, relations, propositional logic, finite-state machines, DFAs etc. were all covered in this course, along with their implementation in Haskell.
To complement the 3 lectures every week, we had two one-hour tutorials with question sheets we had to go over and we were given more personal attention by tutors who had a maximum of 15 students under them.
Tutorials are an important part of almost every course in the first year, it is the place where your attendance is marked and you had problem solving practice along with the chance to clear your doubts from the lecturer or your tutor.
Even if you plan to miss lectures, I would still highly recommend going to tutorials, they are generally more engaging, you get to meet new people and if you are an international student meet your attendance requirement.The course has mid-semester exam worth 5% of the total marks. This only tests knowledge of Haskell. There is practical exam for the functional programming part worth 45% and a written exam for the computation and logic part worth 50% of the total marks.
The FP exam is also not difficult, there are 3 questions with the first two questions being especially easy. The third question requires much more effort, and this is the question where people lose most marks. there is partial marking and you get extra credit if you include testing in your code.
The written paper like I have said before is mostly just a copy of the mock exam and if you manage your time well you can score very high marks.
You need an aggregate 40% to pass, which means even if you fail one part of the exam you can pass through the help of other part.
In the next part I will cover Introduction to Linear Algebra.