Browse by Tags: software engineering

Up a level
Export as [feed] RSS 1.0 [feed] Atom [feed] RSS 2.0
Number of items: 12.

collection
COMP1004 Programming Principles
These are the resources used for the Computer Science course Programming Principles, designed to teach students the fundamentals of computer programming and object orientation via learning the Java language. We also touch on some software engineering basics, such as patterns, software design and testing. The course assumes no previous knowledge of programming, but there is a fairly steep learning curve, and students are encouraged to practice, practice, practice!

Shared with: World

Programming Principles: Computational Thinking
In this session we look at how to think systematically about a problem and create a solution. We look at the definition and characteristics of an algorithm, and see how through modularisation and decomposition we can then choose a set of methods to create. We also compare this somewhat procedural approach, with the way that design works in Object Oriented Systems,

Shared with: World

Programming Principles: Conclusions
This is the revision session for our Programming Principles course. We take a whistle-stop tour of the topics covered in the course, look at the three pillars of object oriented programming, and look ahead to the exam.

Shared with: World

Programming Principles: Designing Applications
In this session we look at the how to use noun verb parsing to try and identify the building blocks of a problem, so that we can start to create object oriented solutions. We also look at some of the challenges of software engineering, and the processes that software engineers use to meet them, and finally we take a look at some more Design Patterns that may help us reuse well known and effective solutions in our own designs.

Shared with: University

Programming Principles: Polymorphism
In this session we build on inheritance and look at overriding methods and dynamic binding. Together these give us Polymorphism - the third pillar of Object Oriented Programming - and a very powerful feature that allows us to build methods that deal with superclasses, but whose calls get redirected when we pass in sub-classes.

Shared with: World

Programming Principles: Software Design
In this session we look at some of the basics of good code design, including avoiding duplication and designing for loose coupling and high cohesion.

Shared with: University

Programming Principles: Testing and Debugging
In this session we look at the sorts of errors that occur in programs, and how we can use different testing and debugging strategies (such as unit testing and inspection) to track them down. We also look at error handling within the program and at how we can use Exceptions to manage errors in a more sophisticated way. These slides are based on Chapter 6 of the Book 'Objects First with BlueJ'

Shared with: University

Requirements Capture: Using UML Use Cases
This is a presentation for our year one INFO1008 course of Computational Systems. It covers the need for requirements capture and the difficulty of building a specification based on user information. We present UML Use Cases and Use Case diagrams as a way of capturing requirements from the users point of view in a semi-structured way.

Shared with: World

System Design: UML Activity and Sequence Diagrams
In this session we look at how to model flow of control and interactions between components using UML Activity and Sequence Diagrams. This is an introductory session and so for Activity Diagrams we only cover branching, forks and joins and swim lanes, and for Sequence we cover lifelines, messages and returns, and alt, par and opt frames.

Shared with: World

System Design: UML Class Diagrams
In this session we look at UML Class Diagrams and how they fit into both the family of UML models, and also the software engineering process. We look at some basic features of class diagrams including properties, operations, associations, generalisation, aggregation and composition.

Shared with: World

System Design: Using UML Use Cases
In this lecture we cover how UML Use Cases can be used for requirements capture. We look at the anatomy of a Use Case Description, and the way in which use cases can be brought together in a use case diagram. We also look at the way that use cases can be derived from problems using noun verb analysis.

Shared with: World

The Web 2.0 Development Survival Guide
Building software for Web 2.0 and the Social Media world is non-trivial. It requires understanding how to create infrastructure that will survive at Web scale, meaning that it may have to deal with tens of millions of individual items of data, and cope with hits from hundreds of thousands of users every minute. It also requires you to build tools that will be part of a much larger ecosystem of software and application families. In this lecture we will look at how traditional relational database systems have tried to cope with the scale of Web 2.0, and explore the NoSQL movement that seeks to simplify data-storage and create ultra-swift data systems at the expense of immediate consistency. We will also look at the range of APIs, libraries and interoperability standards that are trying to make sense of the Social Media world, and ask what trends we might be seeing emerge.

Shared with: World

This list was generated on Wed Oct 1 19:18:22 2014 BST.