|
|
|
|
|
| 4 Tutor-marked assignments (TMAs) | |
| Examination | No residential school |
This course is available for study in the countries shown.
If you want to specialise in computing, this is the course for you. It’s also suitable if you have a mathematical background and are considering computing, or have an interest in the theoretical underpinning of computing. The course covers essential formal and theoretical concepts, and fundamentals of computer science such as specification and abstraction in code; data structures; and data types and classes. It then investigates efficiency and proof of correctness of programs, providing a basis for formal methods of software development, and includes an introduction to formal logic. Mathematical ideas (such as sets and functions) are introduced where they help to clarify computing concepts.
The central theme of M263 is the construction and functioning of modern software. A clear distinction is made between the specification of a task to be performed by software and the code to implement that task. The course uses its own language to express computer code. This language has features used in a wide range of commonly used programming languages (such as C++ and Java), but has fewer, and simpler, features than would be available in a commercial language. Its purpose is to show key features of such languages rather than to be a vehicle for writing large-scale working software.
Course software to illustrate and test code written in the course language is supplied. The course and its assessment includes practical computing work based on this software.
In the first half of the course (Blocks 1 and 2), the emphasis is on forms of data, and on their use in code. Specification of code elements is emphasised, and testing of implementing code against the specification. Blocks 3 and 4 develop this work, and also include some more theoretical material, including an introduction to formal logic and its use in specification, and a technique for proving that a small code fragment correctly implements a specification. The course is divided into four blocks of work, each taking eight weeks. Each block is divided into four units.
Block 1 contains units on: Data: Form and Function, Introduction to code, Data Types and Introduction to Classes. In the first unit, a supermarket checkout is used to introduce data and processes that may arise in an application situation. In Unit 2, the course language for expressing computer code is introduced. A data type is a form of data together with operations available to data of that form. Unit 3 describes primitive data types, based on integers, characters and Boolean values, and also collections of these types in arrays or stacks. These data types provide basic tools available in writing code in the course language, where each variable must be of a declared data type. To make types of data beyond the primitive types available in code, we construct classes. Unit 4 introduces the idea of class. Fundamental techniques for building new classes (extension and composition) are introduced. Modularity and abstraction are emphasised. The specification of a code module gives an external view of the behaviour of the module (for a single process, the specification gives a signature and pre and post conditions). The specification is separate from the code implementing it. The idea of correctness of code (to implement a given specification) is introduced, and tracing is used to test correctness.
In Block 2, a variety of important data structures, and associated classes, are described. Firstly, a LOGO-like graphics class is described. Unit 6 concerns sequence-based collection classes. Unit 7 covers sets (collections without an inherent order to their members). Unit 8 discusses binary trees. Throughout Blocks 1 and 2, and also in Block 4, there are ample opportunities to try out code on a machine. Practical computing sessions (in .html format) are provided as an introduction and guide to the practical aspect of the course.
Block 3 covers two major topics: an introduction to formal logic and aspects of databases. Expressions that are either true or false appear in code as control expressions. Logic notation is also used in the formal expression of specifications. Since specifications are originally expressed in natural language, translation between natural language and the formalism of logic notation is an important skill. Basic constructs of formal logic (propositions, connectives, predicates and quantifiers) are introduced, with the emphasis on translation skills. Taking a more formal view can illuminate certain aspects of the theory of databases. Here, we examine functional dependencies and normal forms for database schemes.
Block 4 starts with a unit on Recursion. This provides a powerful tool for approaching certain problems and developing solutions as code. Efficiency considers the estimation of the time taken to execute an algorithm, and the comparison of the efficiency of different implementations of the same specification. Proof introduces a technique for proving correctness for code involving a while loop. This is based on the method of proof by mathematical induction. Induction can also be used to prove formulas for recurrence systems (these arise in estimating efficiency).
M263 requires little previous knowledge, but it is important that you have suitable previous experience. The important skills expected on entry relate to the use of symbols and to organised thinking. You need to be confident in working with symbols. This experience may come from programming or from mathematics. Ideally, you will have competence in basic algebra and some experience of computer code. The first would be provided by the University’s introductory mathematics course Open mathematics (MU120) (or Using mathematics (MST121)) and the second will be available from the introductory course in computing Data, computing and information (M150). Previous experience of programming is not required (although it will be useful). Some knowledge of manipulative algebra is assumed in a few places, but is not important in most of the course. If you have no experience of working with symbols, then you may need to take a course such as MU120 before attempting M263. If you are uncertain whether you have the necessary previous knowledge to study M263, you can access a diagnostic quiz for the course. Your regional or national centre will be able to tell you where you can see reference copies, or you can buy selected texts from Open University Worldwide Ltd. The M263 course website will provide copies of the course units.
M263 is a compulsory course in our
M263 is an optional course in our
It can also count towards most of our other degrees at bachelors level, where it is equally appropriate to a BA or BSc. We advise you to refer to the relevant qualification descriptions for information on the circumstances in which this course can count towards these qualifications because from time to time the structure and requirements may change.
Sometimes you will not be able to count a course towards a qualification if you have already taken another course with similar content. To check any excluded combinations relating to this course, visit our excluded combination finder or check with our Student Registration & Enquiry Service before registering.
The course materials are available in Adobe Portable Document Format (PDF). Components may not be available or fully accessible using a screen reader and mathematical, scientific, and foreign language materials may be particularly difficult to read in this way. Large print versions of the course material can be provided on request. You will need to spend significant amounts of time using a personal computer and need to be able to access the internet. Our Services for disabled students website has the latest information about availability.
If you are a new student, or new to courses using a computer or the internet, you will need to inform us of your particular needs as soon as possible, as some of our support services may take several weeks to arrange. Details of how to do this and our range of support services are described in our booklet Meeting Your Needs which you can download or request from our Student Registration & Enquiry Service.
You can also find information about accessible course materials, financial support and the Disabled Students' Allowance, equipment and other services, on our Services for disabled students website. It also includes our contact details for advice and support both before you register and while you are studying.
Course units; other printed materials; CD-ROM with the course software. Practical computing sessions (to be downloaded from the course website).
Access to a computer is essential. Many of the units will have practical computing work associated with them. The amount of practical work will vary between units. Some have none but for many it will form about a quarter of the study time. It will be possible to study the majority of the unit texts without immediate access to a computer, though. Internet access is required. Important information (such as any urgent errata) will be delivered through the course website and certain resources will only be available online.
This course includes online computer activities – you can access these using a web browser that can play Flash and Shockwave. Some of your course software will be provided on disk.
You will need internet access and a computer. If you have purchased a new Windows computer since 2002 it should meet your course computing requirements. Check our Technical Requirements section if your computer is older than this or is otherwise unusual. Please note that you can use an Apple Mac or Linux computer if you can run Windows using Boot Camp or similar.
You will have a tutor who will help you with the course material and mark and comment on your written work, and whom you can ask for advice and guidance. We may also be able to offer group tutorials or day schools which you are encouraged, but not obliged, to attend. Where your tutorials are held will depend on the distribution of students taking the course. Contact our Student Registration & Enquiry Service if you want to know more about study with The Open University before you register.
The assessment details for this course can be found in the facts box above.
You will be expected to submit your tutor-marked assignments (TMAs) online through the eTMA system unless there are some difficulties which prevent you from doing so. In these circumstances, you must negotiate with your tutor to get their agreement to submit your assignment on paper.
These assignments provide an essential part of the teaching, so you are expected to complete them all. But if you unavoidably miss or do badly in an assignment, M263 will allow you a ‘substitution score’ on one assignment. You will be given more detailed information when you begin the course.
Students who studied this course also studied at some time:
The details given here are for the course that starts in October 2009. We expect it to be available once a year.
To register a place on this course return to the top of the page and use the Click to register button. For more information and advice about registration see OU Study Explained.
An undergraduate course in Computing and ICT.
This course is quite a strongly based in mathematical theory. It also uses a programming language I had not come ...
Read more
A great course. As a professional software developer I was a little dubious about how much I would actually learn, ...
Read more
See the satisfaction survey results for this course.
Contact an adviser in our Student Registration & Enquiry Service
Email or call +44(0) 845 300 60 90