Edinburgh University, Computer Science and Artificial Intelligence, Semester II

Labs @ Edinburgh University

Labs @ Edinburgh University

As I have promised earlier, here's the second part of my impressions about the individual courses in the first year of Computer Science and Artificial Intelligence at the University of Edinburgh. Hopefully you will find it useful, e.g. when choosing your outside courses, preparing for the exams or simply getting a taste of the CS undergraduate life in the University of Edinburgh.

Once again, please bear in mind that all what is written below represents only my personal opinion.

Innovation and Enterprise for Scientists and Engineers
Professor: Khaled Benkrid

Lectures: a brilliant introduction to the main components and aspects of modern entrepreneurship, definitely one of the most interesting business courses that I’ve been to so far. Not only will you get the basic theoretic concepts of the modern business (like industry, marketing, operational, financial analyses, risk assessment), but you’ll also put them into practice while writing a business plan for your own idea, which will then account for 50% of your final grade.

What’s more, you’ll get the guest talks of local entrepreneurs (either spin-offs from the university, or related in some other way), an overview of the legal system regarding UK start-ups and businesses (PLCs, sole-traders, etc) and on top of that – it will all be related to the science and engineering (with Dr. Benkrid being a computer scientist himself!).
All in all – a highly inspiring, exciting and recommended course!

Exam: well… it all can’t be that interesting. In the first half of the two hours closed-book exam you’ll have to prove that you’re capable of learning things by heart: you might be asked to list Porter’s five competitive forces, describe the four elements of any business model or give the five most common myths about entrepreneurs.

During the other hour, you’ll be given a much more reasonable task (in my humble opinion) to analyze and discuss a real-life business success/failure story from the various entrepreneurial aspects and answer a couple of more specific questions. To sum it up – even if you’re not very fond of learning things by heart, you’ll be all right if you’ll put some effort into your business plan. It won’t be easy to get a 100, but it surely is possible to still get an A (that's what I got).

Data and Analysis
Professor: Alex Simpson

Lectures: a fairly broad (and sadly/fortunately not that deep) grounding course on the data collection, representation and interpretation methods across different areas of Computer Science. Starting with the relational databases (E-R diagrams, relational algebra, tuple-relational calculus, SQL), XML (DTDs, XPath) and corpora (properties, annotation, tagging, querying using CQP), and finishing with information retrieval system topics (the vector space model, precision-recall tradeoff) and basic methods of statistical data analysis (Pearson's correlation coefficient, Chi-square test).

Exams: quite surprisingly Dr. Simpson (being a brilliant mathematician himself, and hence supposedly a rational man) wants you to learn by heart a lot of things that you would typically look-up online. For the exam you will be supposed to know syntaxes of SQL and SQL DDL queries, XML document type definitions, XPath expressions and even the syntax of CQP queries for the CorpusWorkBench.

Besides all that, during the exam you will probably need to design a database from a given scenario (and to draw an E-R diagram, to write SQL DDL statements and a couple of relational/TRC/SQL queries for it as well). You will also have to produce an XML document, together with a couple of XPath queries; do some evaluation for the given IR systems, discuss the necessary properties of corpora, find the correlation between the statistical data and check the hypothesis using the Chi-square test, so…  better do your tutorial exercises during the semester, ask a lot of questions in the lectures/tutorials and go through the past papers against the clock, because the exam is time-wise intense as well. It’s surely worth doing so, since the exam counts for the 100% of your grade (I managed to reach 97).

Object-Oriented Programming
Professor: Ewan Klein

Lectures: not much to say here, actually. If you have done any Java programming before (and since you have applied to study Computer Science at one of the best IT departments in the whole world, chances are that you have) it’s going to be a breeze. Nothing sophisticated (read: interesting) here: methods, objects, inheritance, polymorphism, interfaces and abstract classes.

And I wouldn’t bother spending too much time doing the lab assignments (especially the optional ones): most likely you won’t be able to submit them to Web-CAT (the automatic grading system), or the Web-CAT won’t be able to compile, run or grade them. Oh, and they count for nothing to the final grade anyway. To be perfectly honest, they’re as useless, as the tutorials during which you should discuss your lab assignments, which a) you have done, and since they’re straightforward – there’s nothing more to discuss, or b) you haven’t done, and i) you have no clue what’s going on or ii) you’d like to learn how to do them, but what you haven’t realized is that learning to program by talking about it is as reasonable as learning to swim by reading the manual.

Exam: two 20-minute tasks for which you will have two hours, one involving implementing a couple of simple methods with the arrays and the second involving implementing a list of classes from the given UML featuring some simple inheritance and polymorphism.

Maybe you shouldn’t read this, since I have had a reasonable amount of experience with Java before starting the course, but… if you have some experience with Java as well – most likely you won’t have to spend a single minute preparing for the exam, you’ll leave after the first half an hour and you’ll get a 100. At least, that’s what I did. And if you don’t have any experience, you’ll do fine as well.

My only advice to you then is – forget the lab assignments. Come up with the project that you always wanted to do – a simple adventure game or a text-based LAN chat application – and implement that in Java. You’ll get much more pleasure and benefit from it (and not only for the exam).

Mathematics for Informatics 2
Professors: Martin Dindos, Antony Maciocia

Lectures: compared to the first semester the maths will get more interesting (especially the calculus). You’ll delve into growth rates, complex numbers, power series, partial differentiation and first order differential equations; graph theory, recurrent relations, geometry in R² and R³, and end-up with matrices and Gaussian elimination.

However, due to the nature of the course itself, it's broad, but not that deep. The lecturers will do a great job making all the material easy to grasp as well, but it surely doesn’t mean that you won’t have to make an effort to understand it, quite the opposite (it’s still mathematics, at the end of the day). The key thing to remember here (and I cannot overstress it) is DO the hand-in assignments! Not only will it help you to stay on top of the material, to formulate and ask the right questions during lectures and tutorials, but it will also account for the 15% of your final grade.

Exams: a two and a half hours run through all the material. Just to scare you off a bit – in year '07/'08, 53% percent of all the students taking the course have failed this exam (after the re-sits).

Now, it was a lot easier when I took it (in '08/'09) – I don’t know the statistics, but I managed to get a 100, and I’m not brilliant at maths, so… draw your conclusions.

Anyway, there seem to be no guaranteed shortcuts in this course. The exams tend to be comprised mainly of the same type of exercises that you have done in your tutorials/hand-ins, and they’re focused more on the quantity than on the quality, so, if you managed to do those exercises – you should be on the right path.

22 Kudos

Leave a Reply

Your email address will not be published. Required fields are marked *

− three = 4