Tony McDonald

Computing & IT

MY DEGREE


Level 1

  • TU100 - My Digital Life
  • MST124 - Essential Maths 1
  • TM129 - Technology in Practice

my digital life

Outline

I completed TU - 100 in my first year of university. This module covered the basics of coding such as variables and functions/methods. In addition, it also introduced the beginnings of computing and how computers are used in modern life. This ranged from the first generation of computers through to modern day computing and the internet. Furthermore, the module covered recognising some hardware.

Communication is an important factor in every part of life and plays an intricate part of our digital lives. The internet involves many computers communicating with each other whether it is a request for information about bees or whether it is a link between a parcel and tracking systems, it all takes hardware and software to make it happen. In basic terms, the internet is lots of computers called servers that store information in databases to be retrieved, modified or manipulated form remote locations via wired and wireless connections by an end user or actor. When people communicate via social media, it is important to remember that nonverbal communication is lost. Netiquette is used to express feeling or emotion through visual representations of facial expressions among other things.

This module also included

Knowledge And Understanding:
  • Ubiquitous and cloud computing,
  • Emdedded Computers,
  • The Pysical Wold In Digital Form,
  • An understanding of the role of standards and why they are used
  • Understanding storing
Cognative skills:
  • Analysis simple problems and find an elegant solution,
  • working in collaboration with others online,
  • Writing simple programs using sense
  • Discuss legal issues around processing and storing of information
  • Build new or modify an application using modeling, diagramming and coding.
key skills:
  • Note taking,
  • Study planning,
  • Learning from feedback,
  • Active reading skills,
  • Use numerical and mathematical skills to calculate and analis data,
  • Communicate accurately and reliably in a structured and coherent fashion to a given audice.
  • Binary.
Preictal and professional skills:
  • Communicating with others using communication technologies,
  • Working in collaboration with others online
  • Writing simple programs using sense
  • Build small computer based systems from pre-existing components

Other areas covered copyright practices and outlined malware, spam, hoaxes, phishing and our online identities.


Essential Maths 1

Outline

This module required the use of mathematiacal software to sovle mathematical problems.

This module also included

Knowledge And Understanding:
  • Basic ideas of calculus and how it relates to graphs
  • Basic ideas vectors in different dimensions and matrices
  • Algebra, trigonometric identities, complex numbers, sequences and series, and the binomial theorem
Cognative skills:
  • Chose and use an aproriate stratagy for problem solving in both practical and abstract concexts
  • Choose and use an appropriate strategy for problem solving in both practical and abstract contexts
  • Moderately complicated mathematical techniques
  • Reading and understanding moderately complicated mathematical text
key skills:
  • Work accurately with algebra, trigonometry, graphs, exponents and logarithms
  • Communicate mathematics effectively in writing
  • Use a computer algebra system
  • Study independently
Preictal and professional skills:
  • Thinking logically about problems
  • Work independently and manage my own time

Technologies in Practice

Outline

This module was in 3 parts:

  1. Block 1 – Robotics and the meaning of life
  2. Block 2 – Introduction to computer networking
  3. Block 3 – Introduction to Linux

Block 1 covered robotics, which involved using software to program a virtual robot. In addition, i learned about the many issues both practical and philosophical surrounding the advancements in robotics. In addition, i looked at the sense, think act module

Block 2 covered basic undestanding of networking from the book 'Windows Networking Essentials' by Darril Gibson.

Block 3 This involved, among other things, exploring the file system of Linux. As part of the block it was necessary to install a Linux operating system (OS): Ubuntu. Using Linux was easy since I have experimented with many Linux OS. I learned about the many different flaviours of Linux.

This module also included

Knowledge And Understanding:
  • Demonstrate your knowledge of the theory and principles underlying robot design, assembly and programming
  • Organise information for effective communication
  • Apply basic programming metaphors to robots
  • Apply simple control strategies for robot control
  • demonstrate your appreciation of the ways in which robots are impacting on human beings and human society
  • How digital technologies can be applied in a range of situations
  • Principles underlying a range of digital technologies
Cognative skills:
  • Identify the key features necessary for a robot to undertake a task in a given environment
  • Create a sequence of instructions to control a robot
  • Be able to explain the interactions between humans and robots
  • Reflect on learning and evaluate achievements.
  • Demonstrate that you can describe and explain the uses of various digital technologies.
Key skills:
  • Develop your abilities to communicate information to an intended audience
  • Make use of different sources of information
  • Search for relevant information on the web.
  • Communicating information accurately and appropriately
  • finding, selecting, evaluating and using information
  • Reviewing and monitoring your own learning
Preictal and professional skills:
  • Write simple programs to control a robot
  • Train a robot to perform a given task
  • Find relevant information on the web
  • Organise and document information from different sources
  • Use specialist software – for example simulations and other professional tools
  • Plan, organise and manage your work effectively
  • Apply practical skills in the context of digital technologies

This module was very philosophical in places and introduced the idea of a truly automated world.

Level 2

  • M250 - Object-oriented Java programming
  • M269 Algorithms, data structures and computability
  • TT284 - Web technologies
  • M256 - Software development with Java

Object-oriented Java programming

Outline

This module covered the underlining principles of object oriented programming. Classes of objects means that a class can produce many objects that can be the same or have different states depending on the value of the variables passed into it. Additionally, the module covered constructors and overloading as well as interfaces and polymorphism.

It is also possible for a subclass the inherit attributes form a superclass. This concept is called inheritence; however, there is another concept called composition.

This module also included

Knowledge And Understanding:
  • the main principles, concepts and techniques associated with object-oriented programming in Java
  • the techniques used in developing object-oriented programs
  • identifying parts of Java programs and their roles in solving a problem.
Cognative skills:
  • identify key elements of problems and construct appropriate object-oriented solutions using facilities such as iteration, selection, inheritance, collection classes and exception handling
  • apply problem-solving techniques to the design of object-oriented software solutions.
key skills:
  • find and use information from a range of sources to support a task, including the Java API documentation
  • interact effectively using electronic conferencing
  • communicate effectively about object-oriented programming.
Preictal and professional skills:
  • use software tools such as a Java IDE to accomplish a range of software development tasks
  • use programming techniques appropriate to a task.

The module had a big emphasis on code reuse.


M269 Algorithms, data structures and computability

Outline

In this module I learned about computational thinking. This involved stating a real-world problem clearly enough to work out the exact steps required in order to solve the problem. The step by step instructions will be the algorithm. This algorithm must complete in a finite number of steps. This module used Python to implement the solutions

Basic Introduction To Python


Not all algorithms are the same. There may be many algorithms that solve a problem, so it is important to create or choose the most efficient to give an elegant solution. Furthermore, the module covered data structures, sorting and searching.



This module also included

  • Demonstrate an understanding of sets, functions and logic, and their application in the design, implementation and analysis of computer-based systems.
  • Discuss the questions ‘What is computation?’ and ‘What are its limits?’, and explain how the answers to these questions have important implications for the practical use of computer-based systems.
  • Analyse, construct and use algorithms and data structures to solve computational problems.
  • Assess the difficulty of computational problems.
  • Apply computational thinking skills to solve problems across a range of application areas.
  • Write a short report which is based on one or more sources and which has a well-argued conclusion.
  • Use the Python programming language to implement algorithms.

The module also covered the limits of computing along with the halting problem.


Web technologies

Outline

In this module I learned the difference between server side and client side technologies and scripting. This module also explored the need for security when passing information to the server.

While this website is an example of a static website with jekyll, this module used php to wrap up the html. The module also looked at CSS to style a site and JavaScript to provide some functionality to the site.

This module also included

Knowledge And Understanding:
  • Describe how the development of the Web has enabled the creation of new forms of interaction and how these systems have impacted commerce and public services
  • Explain different architectural approaches to application design and contrast traditional approaches with the underlying client–server model of Web applications
  • Describe the roles of the range of protocols and standards associated with Web applications and their communications
  • Explain the operation and properties of ‘service’, ‘distributed’ and ‘mobile’ approaches to web architecture
  • Critically evaluate the role of standardisation bodies, and their published recommendations and standards, in terms of their impact on the development of web applications
  • Demonstrate knowledge of a range of different programming languages and explain their differing roles and properties for web applications
  • Discuss how accessibility, usability, localisation and globalisation impact on web design
  • Explain a range of security issues including secure protocols, use of certificates, authentication, authorisation, and firewalls
  • Discuss the nature of static and dynamic content and different approaches to providing content for a website.
Cognative skills:
  • Analyse requirements to produce a design for a simple web application, applying an understanding of requirements for aspects such as usability and accessibility
  • Specify a suitable architecture, components and standards as the basis for the implementation of a web application
  • Construct, using appropriate code, a simple web application, selecting and reusing code where appropriate
  • Produce a mobile application which, as appropriate, transforms content and integrates services
  • Evaluate the suitability of a range of design tools and techniques for the development of an application.
key skills:
  • Find, select and use information from a range of sources to support analysis, design and implementation tasks
  • Plan and produce a well-structured and researched report
  • Plan and manage your time and progress whilst undertaking a project.
Preictal and professional skills:
  • Outline the importance of standards and standardisation bodies
  • Maintain an up-to-date view of ongoing developments in web technology including standards and techniques
  • Produce design and development plans for a specific technical solution to a challenge in Web application development
  • Produce simple project plans for management of time and resources.

Software development with Java

Outline

This module continued with the basic concepts of classes, inheritance and composition. It started with analysing the development process. This begins with the initial idea and the requirements documents.

This module also included

Knowledge And Understanding:
  • To know and understand principles, concepts and techniques associated with object-oriented software development, including user interface development.
Cognative skills:
  • The ability to analyse and specify requirements.
  • The ability to apply the analytical skills of analysis and design.
  • The ability to identify key elements of problems and apply problem-solving techniques in designing an appropriate model.
key skills:
  • To improve personal learning and performance
  • The ability to communicate effectively about object-oriented software development and user interfaces.
  • The ability to provide appropriate, effective documentation for the development process.
Preictal and professional skills:
  • The ability to apply the practical skills needed in most programming workplaces.
  • To have an awareness of the software development process.
  • To have an awareness of issues relating to the design of graphical user interfaces.
  • The ability to use programming skills appropriate to a task.
  • The ability to use a Java integrated development environment (IDE).
  • The ability to plan a complex task.

Level 3

  • TM354 - Software engineering
  • TM351 - Data management and Design
  • TM352 - Web, mobile and cloud technologies (In progress)
  • TM470 - The computing and IT project (In progress)

Software engineering

Outline

This module covered the planning and development of a software project. Much of the content focused on the ideas centred around agile and the agile manifesto.

There are different kinds of agile approach including scrum and xp; nevertheless, the main idea is to focus on the core parts of the project in order to get it running and to servery reduce the paperwork in the interests of efferently. Although this does not mean doing away with the requirements documents altogether, it does mean doing away with the waterfall method meaning that testing happens throughout the development process.

This module also included

Knowledge And Understanding:
  • different approaches to software development, and the stages of the software development life cycle
  • principles, patterns, techniques and practice associated with requirements engineering, object-oriented analysis, software architecture and object-oriented design
  • principles and techniques for implementing and testing a software system
  • the quality issues involved in software products and processes.
Cognative skills:
  • identify the requirements for a software solution for a given problem, and analyse, design, implement and test a system or change request according to that set of requirements
  • evaluate different approaches to software development and justify the approach taken
  • develop strategies for the validation and verification of software systems and critically evaluate the quality of a software product
  • work at different levels of abstraction
  • synthesise concepts and techniques and critically apply them.
key skills:
  • be able to draw on a wide variety of materials, and not just the block materials in order to progress your learning
  • communicate in general your knowledge and understanding of the module via the assessment process
  • communicate with peers on technical tasks.
Preictal and professional skills:
  • develop or amend a given system according to a set of requirements
  • document software systems using notation appropriate to different stages of the software life cycle
  • justify design decisions taken in the development of a software system.

Agile uses an iterative approach mean that the customer gets a working product on the first iteration and an improved produce on subsequent iterations.


Data management and Design

Outline

This was one of my favourite modules to my degree. It included using Jupyter notebooks to create a lab book for analysing datasets using iPython and SQL (postress).

This module also explored the problems with spreadsheets and looked into nonSQL document databases.

This module also included

Knowledge And Understanding:
  • understand the similarities and differences between at least two different database models, and how they are used to manage data collections
  • understand the legal issues surrounding data collection, use and retention
  • select an appropriate database model for a data collection
  • use data to answer a practical question
  • write a report detailing a systematic approach to analysing a dataset
  • use the appropriate query language to extract information from a variety of databases
  • use appropriate software packages to explore a dataset
  • present an analysis of a dataset to a variety of audiences.

Web, mobile and cloud technologies (In progress)

Outline

Cloud computing and mobile technologies offer new possibilities for the production and distribution of IT applications and services. Rapid, elastic and scalable provisioning of IT resources allows organisations to be more innovative, agile and cost effective. In our personal lives, cloud and mobile technologies allow us to store, access and share information online. Storing and processing information with no clear physical location or legal authority raises important concerns around governance and security. In this online module you will learn about the technical and social aspects of cloud computing and mobile technologies, and you will gain hands-on experience of these technologies.

The module is seperated out into three blocks

  1. Block 1 - Web Foundations
  2. Block 2 - The Cloud
  3. Block 3 - Mobile Applications

Block 1 - Web FoundationsThe block first provides a brief overview of the underlying standards and protocols of the web (HTTP, XML, CSS, etc.), including secure protocols (HTTPS, TLS, SSL, SSH) and then reviews the development of modern distributed architectures and different approaches (REST, SOAP) that are used to access web services and how these relate to cloud approaches.

Block 2 - The CloudThis block required using and building a stack. The block centred around the architecture of a person private cloud, which included the different components to make it work. I was required to examine AWS including the different components such as regions and availability zones. .

Block 3 - Mobile ApplicationsThis block required me to build an app and install it on a mobile phone. It required the installation of unfamiliar software via the command line (Apache Cordova, Node and Gradle).

This module also included...

Knowledge And Understanding:
Cognative skills:
  • Critical evaluation
key skills:
Preictal and professional skills:
  • Using unfamiliar software
  • Using command line tools

footnote...


The computing and IT project (In progress)

Outline

Outline...

More outline ditail...

This module also included

Knowledge And Understanding:
Cognative skills:
key skills:
Preictal and professional skills:

footnote...

About me

Picture of Tony McDonald

Hi, my name is Tony McDonald and I love science, coding, analysing data, wildlife, gardening, cycling, the environment and i am also a very spiritual and family orientated man. I studied Computing and IT (Q62) at the Open University and i graduated in 2021. If you have any questions, you can find me at any of my social media accounts or even email me from the contact page. You can also download my CV from the link below.

Download my CV

Say Hello

free counter
Share on Tumblr
Share on LinkedIn
Share on Reddit
Share on Telegram