School of Mathematical & Computer Sciences Dept of Computer Science



Download 0.6 Mb.
Page9/19
Date03.05.2017
Size0.6 Mb.
#18880
1   ...   5   6   7   8   9   10   11   12   ...   19

Year 2, Semester 2




Course Code:

F27SD

Course Title:

Software Design


Course Co-ordinator:

Andrew Ireland, Brian Palmer

Pre-requisites:

F27SA – Software Development 1 OR equivalent

Aims:

  • To provide an understanding of the challenges associated with the software life-cycle, focusing on the processes and techniques which promote the design of high quality software.

  • To instil an understanding of the concepts and benefits of rigorous design.

  • To equip participants with a broad understanding of software design methods and processes.

  • To equip participants with an in-depth knowledge of UML notation

  • To instil an understanding of design patterns and their value

  • To provide a broad understanding of verification and validation issues associated with software engineering.

  • To equip CS participants with an in-depth understanding of analysis techniques, i.e. static analysis and dynamic analysis.

  • To instil IS participants with a broad understanding of the information systems lifecycle, and an in-depth understanding of feasibility studies.

  • To provide participants with an understanding of software design challenges in the real-world via guest speakers from industry.

Syllabus:

  • Motivations for design and the need for design processes and methodologies.

  • Software process models, e.g. waterfall model, Boehm's spiral model, evolutionary development, agile development.

  • Design methods and processes, i.e. architectural design, function-oriented design, object-oriented design, component-based design.

  • Object-oriented design using UML notation & CRC cards: use case diagrams, noun verb analysis, class diagrams, sequence diagrams, communication diagrams, state machine diagrams, activity diagrams.

  • An introduction to patterns and anti-patterns

  • Software testing and analysis: a strategy for dynamic testing; test case design; assertion based testing; functional testing; structural testing; hybrid testing; auto unit testing; reviews & inspections; metrics; flow analysis; formal methods (CS stream)

  • Open source vs closed source and means of assessing which is appropriate to a project – Boehm’s ADA and other methods

  • Documentation practice and standards in software engineering and information systems

  • Information systems lifecycle focussing on feasibility studies. Evaluating potential projects by considering operational, technical, schedule and economic feasibility. Cost/benefit analysis. (IS stream).

Learning Outcomes:

Subject Mastery

Understanding, Knowledge and Subject-Specific Skills

  • To demonstrate a critical understanding of modern software engineering practice and be able to evaluate the strengths and weaknesses of current software engineering methods and technique

  • To be able to choose appropriate metrics to measure software quality and quantity in a modern software engineering environment

  • To understand and demonstrate object oriented design techniques, including the use of UML notation

  • To understand the role of a feasibility study, and to appreciate social and technological aspects of information systems (IS stream)

Learning Outcomes::

Personal Abilities:

Cognitive skills, Core skills and Professional Awareness

  • Take responsibility for own work and exhibit critical reflection on development process. (PDP)

  • To be able to use appropriate methods and standards for practice and documentation in software engineering and information systems.

  • Demonstrate evidence based approaches to problem solving.

  • Use a range of numerical and graphical skills in evaluating and communicating ideas, as well as measuring progress toward achieving goals.

Assessment Methods:


Assessment:

Examination: (weighting – 100%)



Re-assessment:

Examination: (weighting – 100%)





Course Code:

F28DM

Course Title:

Database Management Systems


Course Co-ordinator:

Monica Farrow

Pre-requisites:

F27DB2 Introduction to Database Systems or equivalent

Aims:

To familiarise students with the principles of database management systems, to enable them to design and implement databases for specific applications and to integrate databases with application programs.

Syllabus:

  • Database Design: data requirements, entity relationship diagrams, relational data model, integrity constraints, key constraints, types, integrity maintenance

  • Relational Queries: SQL, Boolean combinations of queries, aggregation, duplicate elimination, nested queries, negation, views, insertions, deletions, updates, command level interfaces, JDBC

  • Query execution and optimisation: data storage principles, file organisation, indexing, indexes in commercial DBMS’s, relational algebra, query execution plans, cost estimation of plans, interpretation of plans, physical database design

  • Concurrency: transactions, schedules, serialisability, concurrency control protocols, locking, two-phase-locking, time stamp based concurrency control.

  • Emerging Database Trends: XML and data warehousing




Learning Outcomes:

Subject Mastery

Understanding, Knowledge and Subject-Specific Skills

  • Broad knowledge and understanding of the concepts and formalisms of database design

  • Detailed knowledge of the building blocks and meaning of relational database queries

  • Critical understanding of the principles of query evaluation and concurrency control underlying database applications

  • Practice in the collection of data requirements and the design of conceptual database schemas

  • Evaluation of emerging database trends and ability to understand their benefits




Learning Outcomes::

Personal Abilities:

Cognitive skills, Core skills and Professional Awareness

  • Practice in working on a development project in a small group under the guidance of a tutor (PDP)

  • Practice in defining the subject and scope of a development project (PDP)

  • Presenting the project orally, and reporting on it in writing (PDP)

  • Use of ICT techniques for presenting the project (PDP)

  • Constructing a website that reports on the progress of the project

  • Practice in designing tests for quantitative analysis

Assessment Methods:


Assessment:

Examination: (weighting – 100%)



Re-assessment:

Examination: (weighting – 100%)





Course Code:

F28PL

Course Title:

Programming Languages


Course Co-ordinator:

Greg Michaelson

Pre-requisites:

F27CS2 Introduction to Computer Systems, F27SB Software Development 2 or equivalent

Aims:

  • To give an appreciation of the context of programming languages

  • To introduce low level programming techniques

  • To introduce system level programming techniques

  • To introduce simple compiling techniques

Syllabus:

    • Low level programming e.g. assembly language: registers, memory models, arithmetic, comparison, branching, subroutines, recursion

    • System level programming e.g C: addressing modes, pointers, arrays and structs, control structures, functions and parameter passing, basic libraries

    • Simple compiling techniques: lexical analysis, recursive descent parsing, AST construction, simple code generation, use of compiler generator tools,

    • Overview of programming language history/paradigms

Learning Outcomes:

Subject Mastery

Understanding, Knowledge and Subject-Specific Skills


  • Appreciation of levels of and correspondences between hardware/software hierarchy

  • Simple assembly language programming

  • Simple C programming

  • Crafting simple language processors

  • Use of compiler generators




Learning Outcomes::

Personal Abilities:

Cognitive skills, Core skills and Professional Awareness


  • Experience of low- and intermediate-level programming

  • Understanding of role and deployment of low-level and system languages in system development

  • Appreciation and use of appropriate formalisms for defining languages and communicating language definitions

  • Ability to apply language processing techniques/tools for wider problem solving




Assessment Methods:


Assessment:

Examination: (weighting – 100%)



Re-assessment:

Examination: (weighting – 100%)


BSc Computer Systems



Download 0.6 Mb.

Share with your friends:
1   ...   5   6   7   8   9   10   11   12   ...   19




The database is protected by copyright ©sckool.org 2022
send message

    Main page