Launching into Computer Science January 2021

Student George Alshoufi - #12685570

Learning Outcomes

  • Identify and explain the architecture, structure and functionality of basic components of computer system
  • Demonstrate a critical understanding of core data structures and programming concepts, including algorithm computability
  • Critically evaluate the functionality of different types of software, i.e., operating system, utility programs, languages and applications.
  • Critically appraise the emerging trends in the field, such as cloud computing, big data, cyber security, and the professional and ethical requirements for dealing with such contemporary computer-based technologies.

Table of Content

Grades

Assignments Weighting Submission Unit Grade
Collaborative discussion summaries 20% Units 3 and 8 Distinction
Essay 40% Unit 9 Distinction
Individual implementation of programming code and written commentary 40% Unit 12 Distinction

Unit 1: Computing as a Profession – Responsibilities and Challenges

Responsibilities and Challenges

Learning Outcome

  • Appreciate the roles and responsibilities of computer professionals.
  • Examine the various challenges and threats a computer professional may deal with.
  • Apply the professional ethics and code of conduct in computing practices.

Readings

  • Read sections 4.6, 9.7 and 11.7 from the core textbook: Brookshear, J. and Brylow, D. (2018), Computer Science - An Overview. 13th ed. Harlow: Pearson.
  • BCS code of conduct that are introduced by IT driven organisations. : Read the four key principles of the: BCS Code of Conduct for Computing Professionals (2019)
  • Read about GDPR: European Commission. (2019) Data protection. Rules for the protection of personal data inside and outside the EU. Brussels: European Commission.
  • Read the full version of: IEEE-CS/ACM Joint Task Force on Software Engineering Ethics and Professional Practices (2019)
  • Herschel, R. T. and Andres, P. H. (1997) Ethical Implications of Technological Advances on Business Communication. The Journal of Business Communication 34(2): 160-170.
  • Moor, J. H. (1985) What is computer ethics? Metaphilosophy 16(4): 266–275.
  • Read the abstract only from: Martin, K., Shilton, K. & Smith, J. Business and the Ethical Implications of Technology: Introduction to the Symposium. Journal of Business Ethics 160: 307–317. DOI:10.1007/s10551-019-04213-9

Discussions/Formative activities:

My initial post

When the EU introduced the GDPR regulation, I got many requests from various clients to comply with the new policies and update the terms of use of their websites. I was by then living outside the EU and didn't actually understand how crucial it is to comply with these standards. 

Understanding standardization and regulation is something on my top list to take out of this program. I also belive that many business around the glob reserve a big database of user data and it will be interesting to know how forgien websites and business implement these regulations for visitors from the EU. According to the GDPR compliance guide, the GDPR does apply outside Europe if the organisation uses web tools to track cookies or the IP addresses of people that visit the website from EU countries. 

After Brexit, the UK organisations that process personal data must now comply with the below according to itgovernance.co.uk

  • The DPA (Data Protection Act) 2018 and UK GDPR (General Data Protection Regulation) if they process only domestic personal data.
  • The DPA 2018 and UK GDPR, and the EU GDPR if they process domestic personal data and offers goods and services to, or monitor the behaviour of, EU residents.

References

  • - GDPR.eu. 2021. Does the GDPR apply to companies outside of the EU? - GDPR.eu. [online] Available at: https://gdpr.eu/companies-outside-of-europe/. [Accessed 01 February 2021].
  • - Brexit, GDPR & Data Protection: What You Need to Know . 2021. Brexit, GDPR & Data Protection: What You Need to Know . [online] Available at: https://www.itgovernance.co.uk/eu-gdpr-uk-dpa-2018-uk-gdpr. [Accessed 01 February 2021].

Reflections

I enjoyed working on the first week of the course, it has allowed me to understand the different roles of a computer practitioner and how it’s employed in the current changing market, I have also learned the legal regulations and ethics for collecting and storing personal data such as the General Data Protection Regulation (GDPR) and the BCS Code of Conduct.

e-Portfolio set up

I have worked with GIT and other version control system before, as well as I’m well experienced in HTML5, CSS, and Javascript, which made setting up the portfolio easy. However, I kind of missed a couple of the GIT commands as it’s been a while I didn’t use them, so it was nice to remember those.

Also, I didn’t know that Github pages exist before, this can be helpful in the future.

Unit 2: Introduction to Computer Architecture and the Functionality

Learning Outcome

  • Appreciate the evolution of computer and computing technologies due to innovations
  • Describe the critical functional issues of computer structure components
  • Identify and demonstrate the basic characteristics, functions and features of each element of a computer system
  • Demonstrate the theories and nature of data representation for computers

Readings

  • Read Section 0.2, Chapter 1, Chapter 2, Appendixes A and B of your core text book: Brookshear, J. and Brylow, D. (2018), Computer Science - An Overview. 13th Ed. Harlow: Pearson.
  • Smith, J.E. & Nair, R. (2005) Introduction to virtual machines.
  • Balci, O. et al. (n.d.) Machine architecture: Circuits.
    Balci, O. et al. (n.d.) Machine architecture: Data storage.
  • Balci, O. et al. (n.d.) Machine architecture: Gates.
  • Balci, O. et al. (n.d.) Machine architecture: The central processing unit.

Reflections

Now more than ever, computing continues to change our world, we now interact with others and complete everyday tasks, and impacting factors in our life. While computers are only a tool that interprets and visualise data using special programs for the different media types such as images, audio, video and web pages.

These tools come in different shapes and sizes but they’re mostly built with a  combination of hardware and software allowing humans to use them, such as the below:

  • Input unit: allows the computerised device to receive data, instructions or actions to solve any problem or make an action.
  • The central processing unit (CPU): Once the data is received from the input device, they’ll be processed in the CPU which is considered as the brain of the computer, which includes three major units (Control Unit, Arithmetic and Logic Unit, and Registers)
  • Memory unit: this unit is used to store the data before the actual processing starts, store the input data, intermedia results and final output generated.
  • Output unit: used to deliver the results to the user or other devices, obtained by the execution of a program.

Computers are machines that cant deal with different types of media and data, while in fact computers convert the media type into a numerical data system, a base-2 numeral system or binary numeral system, that allows the computer to interpret and process the data, the data is represented in Bytes.

Unit 3: Emerging Trends in Computer Science

Learning Outcome

    • Appreciate the emerging trend of computing that led to the advancement of human computer interaction.
    • Identify the fundamental technologies that are deployed to support the emerging computing technologies.
    • Identify the risks and threats associated with emerging technology and suggest guidelines to mitigate those risks.

Readings

  • Read Section 4, 4.6, 9.6, 9.7, 10.6, 11.7, Chapter 11 of your core text book: Brookshear, J. and Brylow, D. (2018), Computer Science - An Overview. 13th Ed. Harlow: Pearson.
  • El-Seoud, S & El-Sofany, H. (2017) Big Data and Cloud Computing: Trends and Challenges. International Journal of Interactive Mobile Technologies 11(34). DOI: 10.3991/ijim.v11i2.6561.
  • Neves, P.; Schmerl, B.; Cámara, J. & Bernardino, J. (2016) 'Big Data in Cloud Computing: Features and Issues', In Proceedings of the International Conference on Internet of Things and Big Data - Volume 1: IoTBD 307-314. DOI: 10.5220/0005846303070314.
  • Carsten M. (2017) Security and privacy in the internet of things. Journal of Cyber Policy 2(2): 155-184. DOI: 10.1080/23738871.2017.1366536.
  • This article will talk how the Big Data can be used in different domains for forecasting: Hassani, H., Silva, E.S. (2015) Forecasting with Big Data: A Review. Ann. Data. Sci. 2: 5-19.
  • This sets the concept of BYOC and BYOD: North Bridge (2013) Future of cloud computing survey reveals business driving cloud adoption in everything as a service era; IT investing heavily to catch up and support consumers graduating from BYOD to BYOC .
  • Sultan, H. & Khalique, A. (2017) Internet of Things: Future of Cloud Computing. International Journal of Advanced Research in Computer Science 8(2).
  • Sherman, R. (2014) Strong AI strong artificial intelligence and consciousness. Social Psychology of Cyberspace.

Explore AI tools developed by Google

I choose to explore Tensorflow, which is a software application popular for implementing machine learning algorithms particularly neural networks. What it does, is that i takes input as a multi-dimensional array where we can construct a sort of flowchart of operations that would like to perform on that input. It’s used to process the input, through the system of operations and designed flow and comes out as output.

Explore Google Translation

Google translate has a vast database of the word, and phrases with their alternative in different languages that rely on user’s feedback data when suggesting a translation. It also has a library of verified phrases and contributors. It relies on machine learning to compare the database records from user-inputted data, user feedback and labelled data for suggestion a translation and judging if the output is relevant. As well as showing other suggestions for alternative translation.

Reflection

In this module, I have reviewed my knowledge in artificial intelligence (AI) on its capacity to parse and apply knowledge in different sectors and integrate different data sources to create valuable insights that can help in decision making or services output. I have also investigated the internet of things which brings together information from a series of connected devices that allows for the creation of analytics of systems, I also came across biometrics, blockchain, and robotics.

Unit 4: Computing Infrastructure and Network

Learning Outcome

  • Differentiate between various networking approaches, namely, internet and intranet.
  • Identify various network topologies and appreciate the technologies and protocols that make these networks to work.
  • Critically review a topology selection for a network and review the cybersecurity threats.

Readings

  • Read Chapter 4 of your core text book: Brookshear, J. and Brylow, D. (2018), Computer Science - An Overview. 13th Ed. Harlow: Pearson.
  • Siddiqui, F., Zeadally, S & Salah, K. (2015) Gigabit Wireless Networking with IEEE 802.11ac: Technical Overview and Challenges. Journal of Networks 10(3). DOI: 10.4304/jnw.10.3.164-171.
  • This article introduces to the threats and challenges of networks: CISCO (n.d.) What is network security.
  • TED (n.d.) Avi Rubin: All your devices can be hacked.
  • This is a case example of autonomous car and the article highlights the challenges of such technology: Lu, N., Cheng, N., Zhang, N., Shen, X. & Mark, J.W. (2014) Connected vehicles: Solutions and challenges. IEEE internet of things journal 1(4): 289-299.

Introduction to HTML

The HTML excerises were a good exercise to see how the HTML and HTML5 have evaluated since the first time I learned HTML.

Emerging Technology

Virtual Machine: an instance of a physical computer with the only difference that virtual machines are computing within physical servers, existing only as code. Using virtual machines can be useful to set up a dedicated environment for a program, or a server. Also, during the research and development phase, where it allows us to create an unlimited number of computers with different operating systems using code only and sharing the resources of the same physical computer/server.

Bring Your Own Device (BYOD): This is a policy that’s set by companies to allow employees to use their personal devices such as smartphones, laptops, and tablets for work. Which can help business reduce the fixed costs and maintenance for such while it can have some downside with security risks and privacy, as the device isn’t managed by the company the employee is free to download and use other software and programs that might have access to certain corporate data. Also, other users might be allowed to use their personal computers and might have access to the company files and data.

Parallel computing: Parallel computing refers to the process of breaking down larger problems into smaller, independent, often similar parts that can be executed simultaneously by multiple processors communicating via shared memory, the results of which are combined upon completion as part of an overall algorithm. The primary goal of parallel computing is to increase available computation power for faster application processing and problem-solving.

Hadoop: a collection of tools that allows the storing of big data in a readily accessible and distributed environment. It enables processing the data parallelly, it’s also an open-source framework that is quite popular in the big data industry.

Distributed computing: a field of computer science that studies distributed systems, that systems with components located on different networked computers, which communicate and coordinate their actions by passing messages to one another to achieve a common goal.

Reflections

In this unit, I learned about networking and computer networks which how network infrastructure comprises hardware and software to enables computing and communication between users, services, application and processes using different communication networks security protocols such as Transmission Control Protocol TCP/IP, HTTP, Secure Hypertext Transfer Protocol is the secure version of HTTP, FTP, Secure File Transfer Protocol (SFTP), and Secure Socket Layer (SSL) protocols. These protocols require management protocols to maintain and govern the network through protocols such as ICMP and SNMP.

Unit 5: Software as a Tool - Its Functionality and Development Methodologies

Learning Outcome

  • Classify software and review the selection of software as a creative tool in order to solve a problem in your workplace.
  • Apply different software development methodology to collaborate, design, develop and test software.
  • Identify correct methodology for software validation and correctness.

Readings

  • Read Section: 5.3, 10, 10.1, 10.6, 12.4 and Chapter 7 of your core text book: Brookshear, J. and Brylow, D. (2018), Computer Science - An Overview. 13th Ed. Harlow: Pearson.
  • Wirth, N. (2008) A Brief History of Software Engineering. IEEE Annals of the History of Computing 30(3): 32-39. DOI:10.1109/MAHC.2008.33.
  • Ambler, S. (2012) 2011 IT project success rates survey.
  • This article introduces an important software development methodology adapted by many large and small organisations: Ambler, S. (2014) Agile modeling (AM) home page: effective practices for modeling and documentation.
  • Asur, S. & Hufnagel, S. (1993)Taxonomy of rapid-prototyping methods and tools. Proceedings The Fourth International Workshop on Rapid System Prototyping, Research Triangle Park. Pp. 42-56. DOI: 10.1109/IWRSP.1993.263196.
  • Hughey, D. (2009) The traditional waterfall approach.
  • Lewallen, R. (2005). Software Development Life Cycle. Code Better.
  • This article introduces the basics of SCRUM methodology: Scrum (2014) Scrum.org.

Formative Activities

Identify a system and a piece of software of your choice, i.e. operating system or an application that you are familiar with. Investigate the features of these pieces of software and then compare their features. Where appropriate, use images to demonstrate and explain the functionality of these pieces of software.

Investigating Healthcare by Apple
Apple is developing a platform to help users to keep track of their health, through the Watch and the health app. They’ve recently released a new feature allowing to measures a wearer’s blood oxygen levels and heart rhythms. It seems that Apple is moving toward healthcare, as they’ve increased their healthcare presence by expanding the product capabilities and partnering with leading health centres and research institutions. One of the key successes to Apple, is the access they have to users, and their data that are currently being collecting using various methods, also Apple has gained the trust of the users to share, and store regularly personal and health data. The health app uses automatic syncing of various data inputs to allow users to keep track of their sleep patterns, daily activities and much more.

Reflections

This unit has allowed me to learn about the different types of software and digital solutions, as well as it was very helpful to learn flode to build the flow of data processing, I have developed programs before but never tend to actually visualise the process, now I feel more confident to come up with new algorithms and to be able to visualise it for testing, optimisation, and most importantly to be able to share my ideas and process with others.

Unit 6: System Software – Operating Systems

Learning Outcome

  • Appreciate the functionality, features and tools of OS.
  • Identify the select an operating system that is most suitable to accomplish a task.
  • Demonstrate the data storage and data access supports OS can provide.

Readings

  • Read Chapter 3 of your core text book: Brookshear, J. and Brylow, D. (2018), Computer Science - An Overview. 13th Ed. Harlow: Pearson.
  • This presents a details documentation on Operating System: Power, R. & Ford, R. (2009) Operating System Fundamentals.

Formative activities

OS investigation. Select an operating system of your choice and then perform the following functions:

Main Settings

Other features settings

Display

Apps & features

Default apps

Notifications & actions

Power & sleep

Storage

Offline maps

Tablet mode

Multitasking

Projecting to this PC

Apps for websites

About

Enable Dark Mode

Change the Title Bar Colors

Create Keyboard Shortcuts for Favorite Apps

Switch Default Browsers

Prevent Windows From Re-Opening Apps On Restart

Protect Your Privacy

Enable System Protection / Restore Points

Enable Storage Sense to Save Space

Adjust Display Scaling

Set Up Fingerprint or Facial Recognition

 Delete the OEM Recovery Partition to Save Space

Reflections

I enjoyed the readings where I learned about the history of operating systems, the components, and processes. I also found that python exercises were so insightful and interactive way to learn, I found it a bit challenging to learn the python syntax because it’s case sensitive and the indentation was very challenging for me. It was good to learn python and indentation using Codio because I think in modern IDE’s the editor would suggest the errors and correct formating.

Unit 7: Data Abstraction

Learning Outcome

  • Read Section 6.2, 6.3 and Chapter 8 of your core text book: Brookshear, J. and Brylow, D. (2018), Computer Science - An Overview. 13th Ed. Harlow: Pearson.
  • FAQs.org (n.d.) Queues and priority queues.
  • NIST (n.d.) Dictionary of algorithms and data structures.
  • This website presents the fundamentals of data structure:
  • Virginia Tech (n.d.) Graphs.
  • Virginia Tech (n.d.) Multidimensional arrays.
  • Virginia Tech (n.d.) Ordered list: The implementation view.
  • Virginia Tech (n.d.) Queues: The abstract view.
  • Virginia Tech (n.d.) Stacks: The abstract view.
  • Virginia Tech (n.d.) Trees.

Formative activities

Compare and contrast between linear and non-linear data structure, and Stack and Queue

linear and non-linear data structure

Linear Data structure: data is arranged in a linear sequence where every item is related to its previous and next item. While data can be traversed in a single run. Can be used with linked lists, queue, and stack.

Non-linear data structure: Data isn’t organised in sequence, and every item is attached with many other items. While data cannot be traversed in a single run. Can be used with trees, and graphs.

Stack and Queue

Stack: a linear list that allows insertion or deletion of an element at one end, while the elements can only be removed in the opposite order of insertion.

Queue: a linear list that allows insertion at one end and deletion at another, while the elements can only be removed in the same order of insertion.

Reflections

It was good to read and learn about the different data structure, how to analyse algorithms to evaluate the time and space an algorithm may consume for an operation. I feel now more confident when evaluating and comparing an algorithm and how I can translate a real-life problem into a computer machine problem.

Unit 8: An Introduction to Algorithms and Basic Programming Concepts

Learning Outcome

  • Apply the algorithm framework for describing and solving a problem.
  • Demonstrate a step by step approach to solving a problem using pseudocode.
  • Validate the output using different quality assurance matrices.

Readings

  • Read Chapters 5 and 12, Appendix D of your core text book: Brookshear, J. and Brylow, D. (2018), Computer Science - An Overview. 13th Ed. Harlow: Pearson.
  • Acm (n.d) Collected Algorithms.
  • Dionysis, Z. (n.d) A gentle introduction to algorithm complexity analysis.
  • Ericson, J (2019) Algorithms.
  • An example program that identifies multiples written in Java: Meyer, H.B. (n.d.) Eratosthenes’ sieve.
  • Roughgarden, Tim. (n.d.) Design and analysis of algorithms.

Formative activities

Completed the exercises in Codio

Reflections

Learning to write pseudocode was a bit challenging for me, although it doesn’t have a syntax I felt the need to refer to other Pseudocode examples and references. I kind of prefer using Flode chats as I can visualise the code and interactions where I can perhaps find other ways around the solution from the flow.
Learning how to deal with lists, strings, user-defined functions, and recursion in python was like learning how to speak English in different accents. Although I’m still finding it a bit challenging to keep up with the python syntax where I sometimes forget to indent an if-statement or add the colons, I feel I’ll overcome this once I use python in a full project exercise.

Unit 9: Solving Problems Using Python

Learning Outcome

  • Write an algorithm.
  • Investigate the quality parameters of an algorithm.

Readings

  • The reading this week focuses on the high-level programming language features, structure and their types. This unit also demonstrates examples of algorithms using high-level programming languages.
  • Read Chapter 6 and Appendix E of your core text book: Brookshear, J. and Brylow, D. (2018), Computer Science - An Overview. 13th Ed. Harlow: Pearson.
    Additional Reading
    Lynda.com (n.d.) Programming Languages Tutorials.
  • Mogensen, T. (2010) Basics of compiler design.
  • Virginia Tech (n.d.) Programming languages.

Formative activities

Continue with the Learning Python programming exercises

Reflections

I now feel much more confident using python, I’m now able to write a microprogram with the help of nested functions, user inputs, and being able to export it to the user or even with some extra research to return the data in JSON format which can be done easily using the built-in package called JSON.
I’m grateful for this course to allow me to learn and use Python, it’s something I’ve always wanted to learn.

Unit 10: Data Representation using Database Concepts

Learning Outcome

  • Apply database concepts and theories in the database design in terms of database integrity and data consistency.
  • Create and manipulate data stored in a abase by means of the structured query language, SQL.
  • Review the security and maintenance methods of a database.

Readings

  • Read Chapter 9 of your core text book: Brookshear, J. and Brylow, D. (2018), Computer Science - An Overview. 13th Ed. Harlow: Pearson.
  • Hoffman, J. (1997) Introduction to Structured Query Language.

Formative activities

Completed the Introduction to MySQL in Codio

Reflections

I feel understanding databases and the basic commands of the database management software are the starting point for any database-powered program, also the database architecture has a strategic part in the performance of the program because the database software might need to process multiple tables relations for a single query which can take a lot of processing power and time when dealing with a large database.

Unit 11: Advanced SQL

Learning Outcome

  • Write complex queries to extract the results from a database using SQL.
  • Apply aggregate, arithmetic, date and string functions in SQL for summarised reporting.
  • Evaluate query results.

Readings

  • Hoffman, J. (1997) Introduction to Structured Query Language.

Formative activities

Completed the Advanced SQL lab in Codio and shared my Seminar 6 session on the forum

Advanced SQL lab exercises - Seminar 6 preparation

Reflections

This unit was one of my favourites, as I always wanted to dive deep into the SQL world and the advanced exercises were so helpful to allow me better understand the different SQL commands, joining different tables, and managing databases cautiously. I enjoyed preparing the Seminar 6 document, writing the code explanation has really taught me the ins and outs of SQL syntax.

Unit 12: Research Topics in Computer Science – Data Science, AI and Standards

Learning Outcome

  • Explore the trends and research topics in the area of computer science.
  • Identify and define a problem in the area of computer science.
  • Propose a research question and then support the research question with adequate literature-based evidence.

Readings

  • Chapters 11 and 12.2 of your core text book: Brookshear, J. and Brylow, D. (2018), Computer Science - An Overview. 13th Ed. Harlow: Pearson.

Reflections

I have enjoyed writing the module assignment, this has taught me a lot starting from how to use referencing manager tools, to how to find relevant and reliable information that can be used in reports or project pitches that I’m confronted with at work. However, doing this course and especially the written assignment has changed the way I plan and prepare a report.
This was the last unit, and overall I’m so grateful to have completed this course and I feel so lucky to have learned from Prof Nawaz Khan, where he shared lots of insights and tips on how to tackle the assignments as well it’s an application in business. I have initially signed up for the PG Cert only while now I’m considering completing the full MSc program.

Professional Skills Matrix and Action Plan

What skills have I gained or enhaced as a result of this module and how can I use it? What else do I need to learn?

Download File