Programming I (CM10134 - CM50147)
This is the public homepage of the programming I unit which is mandatory for all first year undergraduate students in computer science (double unit) and students on Msc. in Human Communication and Computing (single unit).
Here you can find: the people involved, the content, the Aims and Objectives, the venue , course material, the learning environment moodle, support lists and forums, the assesment criteria, the unit outline, the lab exercises and the coursework specification.
- Unit Lecturer: Dr. Marina De Vos
- Unit Tutors
- Tom Crick
- Silvie Girard
- Dahlia Khader
- Carina Murman
- Mark Wood
Introduction to computers and programming. Introduction to object-oriented systems development. Algorithms. Control structures: sequence, selection and iteration. Scope and extent. Primitive data types. Testing. Object-orientation: reuse, inheritance, classes, objects and methods. Recursion. Exception Handling. Files and Streams.
Aims and Objectives
- To introduce students to the development of computer software, including problem analysis, establishing requirements, designing, implementing and evaluating.
- To provide practical skills at reading and writing programs and producing programs to solve real world problems.
- Objectives: On completion of this unit students will be able to:
- design, construct and test short object-oriented programs.
- defend design decisions.
- understand the idea of type and to use data types appropriately.
- develop iterative and recursive programs.
- read, and comprehend the behaviour of, programs written by others.
- Lectures: Thursday 14.15 - 16.05 in 5W2.3
- Lab classes: From the first week.
- Course Text:
David J. Barnes and Michael Kolling
Objects First with Java. A Practical Introduction using BlueJ
This is our main text book for the year. All the exercises will come from this book, so having a copy at hand during the labs and at home is needed
- Additional Book:
Thinking in Java, 3rd Edition
Free online copy: http://www.mindview.net/Books/TIJ/
This Java book is not only free, it also very well written and suited for both the beginning as the more experienced programmer.
- Pre-course Material: Pre-Course Material
Some introductory material to get you started.
- Unix/Linux Intro:
Introduction to Unix/Linux
Explains the basic linux/unix commands and has an excellent section on Makefiles. Not only useful for this unit but something all (future) computer scientist need to know
Moodle From this year, this unit will be run through the e-learning Moodle platform. The course can be found at http://moodle.bath.ac.uk/moodle5/course/view.php?id=425 . The site contains all the lecture hand-outs, quizzes to test your understanding of the material, lab exercises, coursework descriptions and discussion forums. The portal will also be used to submit your coursework, to announce information about the course, provide feedback on your work and lab status.
Support List and Forums
- Moodle forums Three moodle forums have been set up to ask general questions about the lectures, labs and coursework
- tutors-programming1"at"cs.bath.ac.uk: This mailing list can be used to
contact the tutors/lecturer of this unit.
This list should be used to submit lab sheets in case you could not attend the lab due to illness or other mitigating circumstances. Furthermore, more specific questions regarding courseworks can be posted on this list. To allow for a faster response to your questions, do not contact tutors/lecturer individually.
The formal assesment of this double unit is based on 40% coursework and 60% written exam.
- Exam: Answer three questions out five on the more theoretical issues of programming. You will only need to write small programs.
- Coursework: Write four medium sized programs in an object oriented way using the design methods discussed in the lectures and practised in the labs.
You can check your lab status via Moodle by accessing your grades. You need 7 completed labs.
The formal assesment of this single unit is based on 50% coursework and 50% written exam.
- Exam: Answer three questions out four on the more theoretical issues of programming. You will only need to write small programs.
- Coursework: Write two medium sized programs in an object oriented way using the design methods discussed in the lectures and practised in the labs. Furthermore, write a medium sized essay on issue relating both programming design and emperical studies
You can check your lab status via Moodle by accessing your grades. You need 5 completed labs.
The transparencies and handouts are available via
The exercises for the lab session can be accessed via
For the undergraduates, remember you have to complete 7 of them successfully in order to sit the exam
and to obtain marks for the coursework. For those on the Msc. in HCC, you need
to complete 2 labs from the first five and 2 from the last five. The deadlines given are the ones for the undergraduates.
The labs are designed to prepare you not only for the coursework but also for the exam. Although you do not to complete all labs to gain marks for this unit, it is advisable that you do try to complete all of them.
- Lab 1: To be completed by week 3
- Lab 2: To be completed by week 4
- Lab 3: To be completed by week 5
- Lab 4: To be completed by week 6
- Lab 5: To be completed by week 7
- Lab 6: To be completed by week 8
- Lab 7: To be completed by week 9
- Lab 8: To be completed by week 10
- Lab 9: To be completed by week 11
- Lab 10: To be completed by week 12
Information will be available on October 18th 2006