Module 19324.2 (2007)
Syllabus page 2007/2008
06-19324
Fundamentals of Computer Science 2
Level 4/M C
John Barnden
John Barnden (coordinator)
Links | Outline | Aims | Outcomes | Prerequisites | Teaching | Assessment | Books | Detailed Syllabus
The Module Description is a strict subset of this Syllabus Page. (The University module description has not yet been checked against the School's.)
Relevant Links
Software Engineering part of the module
Databases part of the module: Essential Additional Information
Outline
The module will explore some of the fundamentals of computer science. Topics will include: an introduction to software engineering: the software life cycle and methodologies for software development; relational theory, relational algebra, query languages, data design. The necessary mathematical background will be developed alongside its application in databases. Students will be introduced to an existing database system.
Aims
The aims of this module are to:
- introduce the software life-cycle and its main stages
- demonstrate that the production of quality software in a cost-effective and productive way requires a systematic and disciplined approach
- introduce the fundamentals of database theory
- introduce the core of the SQL query language
- enable students to design a database
Learning Outcomes
| On successful completion of this module, the student should be able to: | Assessed by: | |
| 1 | explain why the production of a large, quality-assured piece of software is a task demanding a disciplined approach to all stages, closely analogous to the methodology used in more traditional engineering activities | Examination |
| 2 | explain the concept of the software lifecycle | Examination |
| 3 | demonstrate knowledge of relevant concepts for each stage of the software life-cycle | Examination |
| 4 | understand the application of software engineering approaches, both as an introduction to professional practice and as an aid to project work | Examination |
| 5 | use SQL to express database queries | Examination, Continuous assessment |
| 6 | apply concepts from relational theory to describe databases, queries, and consistency conditions | Examination, Continuous assessment |
| 7 | analyse a real-world scenario and perform a conceptual database design for it | Examination, Continuous assessment |
| 8 | take a conceptual data design model and translate it into the relational model | Examination, Continuous assessment |
| 9 | use an existing database system | Examination, Continuous assessment |
Restrictions, Prerequisites and Corequisites
Restrictions:
None
Prerequisites:
None
Co-requisites:
None
Teaching
Teaching Methods:
4 hrs of lectures/tutorials per week
Contact Hours:
Assessment
- Sessional: 3 hr examination (90%), continuous assessment (10%).
- Supplementary (where allowed): By examination only.
Recommended Books
| Title | Author(s) | Publisher, Date |
| Software Engineering (8th ed) | I Sommerville | Addison Wesley, 2006 |
| Database Systems: Design, Implementation and Management (7th ed) | P. Rob & C. Coronel | Thomson Learning, 2007 |
| Database Systems : a practical approach to design, implementation and management (3rd ed.) | Th. M. Connolly | Addison Wesley, 2002 |
| Database Management Systems (2nd edition) | R. Ramakrishnan & J. Gehrke | McGraw Hill, 2000 |
Detailed Syllabus
-
Software Engineering
- Introduction: definitions and history of software engineering; models of the software lifecycle.
- Requirements definition: outline, documentation, validation.
- Design: general concepts of traditional designs (structure, modularity, hierarchy), inheritance; design methods; validation.
- Implementation: choice of language and coding strategies; testing and debugging, including white-box and black-box testing.
- Validation: techniques for each stage - informal reviews, formal reviews, testing, formal proofs.
- Documentation: quality, types, techniques for each stage.
- Management of software projects: principles; personnel issues; estimation, scheduling and costing.
- Databases
- Tables and SQL: using the existing relational database implementation, simple select queries, nested queries, aggregate functions, the group-by operator.
- Conceptual database design: entities and relationships, generalisation hierarchies, keys and weak entities, ER diagrams.
- Logical database design and relational theory: translating ER diagrams into tables, relational algebra, functional dependencies, normalisation.
- The physical layer: file formats, indexes, evaluation of relational operators, De-normalisation.
Last updated: 24 Feb 2008
Source file: /internal/modules/COMSCI/2007/xml/19324.xml
Links | Outline | Aims | Outcomes | Prerequisites | Teaching | Assessment | Books | Detailed Syllabus