Software Lifecycle
The only one Python doesn't support is Declarative programming
Procedural programming is imperative programming with procedure calls
It is a kind of procedural (imperative) programming which uses the constructs sequence, selection, iteration and recursion rather than “goto” statements
Modular techniques are used to split a large program into manageable chunks
Logic programming is a form of
declarative programming
It is a paradigm that expresses the logic of a computation without expressing its control flow
Programs consist of logical statements
An example would be Prolog
A class is a blueprint for an object defining the attributes and methods that define the 'common characteristics' of that class.
E.g. A cat has 4 legs and eats.
An object is a 'thing' in your program, such as a person, vehicle, animal or event.
Inheritance is the action of an object obtaining methods and attributes from a class. But those object may also have their own methods and attributes.
Encapsulation means to hide all the attributes and methods within one unit, such as a class. So users cannot access the attributes or methods.
Polymorphism is the object having methods or attributes that the parent class does not have, or even redefining them to mean something else.
E.g., A bird may have an attribute eat, but a parrot would take this as eating seeds whereas a chick would take this as eating meat and seeds.
•Each stage is completed
and documented before the next is begun
•The customer does not see the end product until it is completed
•Any change to be made often means the project has to be started again
•Software is developed in rapid incremental cycles
•Each version builds on previous functionality
•Each version is thoroughly tested before release
•Good for small, time-critical projects
•Limited planning is needed to get started
•Extreme programming is a type of agile software development
•Frequent releases of the software are made in short development cycles
•It is intended to improve productivity and responsiveness to changing customer requirements
•The four basic steps of analysis, design, implementation (i.e. programming and testing) and evaluation are followed
•Each successive loop round the spiral generates a new, more refined prototype until the software meets all the requirements
•Workshops and focus groups gather requirements rather than using a formal document
•Prototyping is used to continually refine the system in response to user feedback
•Each part of the system is produced within a strict time limit – maybe not perfect, but good enough
•Software components are reused whenever possible
•Starting with the first item in the list, each item is compared with the adjacent item and swapped if it
is larger
•At the end of the first pass, the largest item ‘bubbles’ up to the end of the list
Challenge: Can you create a pseudocode for a bubble sort algorithm?
•Two of the most common searching algorithms are the linear search and the binary search
•The linear search starts at the beginning of the list and examines every item
•The binary search uses the “divide and conquer” strategy to halve the search area each time an item is examined
•A binary search can only be used if the items are in sorted order – they could be alphabetic or numeric, for example
What sort of searching algorithm is this?
What does this machine language code do?