COMS10008
Ian Holyer
Old lab, plus atrium overflow
Coursework is supposed to take roughly 5 hours per week (based on a 40h week) to be done in:
There is an assignment every week, one in three will count towards your credit for the unit (no exam)
The unit web site is
https://csijh.gitlab.io/COMS10008/
It also has a link to SAFE (faculty server) for coursework submission and
marks:
https://wwwa.fen.bris.ac.uk/COMS10008/
Learning to program is like learning to drive:
Don't get stressed by other people racing ahead of you
Get help from the students near you in the lab
Or the lab helpers
Or your tutor
Or Ian in MVB 3.27, see calendar (csijh)
If you get behind for any reason, then talk to Ian, get some personal tuition
I prefer to see you in person - don't rely on email
Don't get stressed, get help
Each assignment typically comes in two parts
The first part is closed - it is fully specified, it is about precision, it is marked automatically, there is a skeleton program for you to fill in, which includes all the tests, and the number of tests passed when you submit is almost certainly the mark you'll get for it
The second part is open, "do what you like", marked by hand
If you only want to pass, or you lack confidence, aim for a 50% mark by doing the first parts of the assignments (40% is a pass)
If you want a high mark, submit the first part for 50% then work out how much time you have left and spend it on the second part
Beware diminishing returns
There are various different kinds of programming languages:
Imperative means telling the computer how to do things
C is imperative, and it is the lowest level of language you are likely to want to use
Only assembly languages are lower
It is a good early language because it's cross-platform, most common languages including OO languages are based on its ideas, and it helps you to learn how computers work
Functional means telling the computer what needs doing
Haskell is functional, and it is the highest level of language you are likely to want to use
It is a good early language because it forces you to design instead of hack, it helps you to learn how to solve problems, and it illustrates the other end of the language spectrum
The C language is old (1970s) but not the oldest (Fortran, Lisp, 1950s)
It is important because
The text of a program is often called code
This is ok for 'machine code', but a rubbish name for higher level languages, because it encourages unreadable programs
A program should be extremely clear and readable (if you are fluent in the language, of course)
A coder is the lowest order of program writer
Our aim is to lift you to the level of programmer by the end of the year
And to lift you to the level of developer by the end of your degree
Of course, there are other things in your degree as well