MSc Computer Science- Object Oriented Information Systems ePortfolio

Overview

This page contains a summary of the work that I have done throughout the “Object Oriented Information Systems” module as part of my MSc in Computer Science.

Module Learning Outcomes

  1. Appraise and evaluate critically the concepts and principles of information systems
  2. Design or modify and document an object-oriented information system using appropriate tools
  3. Develop an object-oriented information system design, implementing this knowledge in applicable programming languages, such as Python and SQL
  4. Develop, implement and evaluate critically information system solutions to facilitate business decisions

Learning Artefacts

Various assignments were given throughout the module, and their artefacts are given below. Each artefact has a description of how it helped me reach specific learning outcomes.

Forum Discussion: Information System Failure

An assignment given during the first unit was to create a forum post which discusses a scenario where an information system has failed, and the consequences thereof. By doing this in conjunction with completing the required reading, I was able to achieve learning outcome 1, because I was learned how to interpret software failure within the context of an information system and identify which components of that information system contributed to the failure.

Initial post and peer feedback

In addition to my own post, I also posted feedback on the posts which my peers had created. I asked questions related to other case studies and found my peers’ insights useful. This also helped me achieve learning outcome 1, because the different perspectives helped me identify different ways of using information system concepts to critically analyze real-world situations. It also helped me reach learning outcome 4, because a lot of discussions were related to finding ways of preventing similar failures from happening in future, in our own work. My responses and questions are included below:

Feedback given to fellow students

After unit 3, we were required to create a summary post. The summary post required that we consolidate all that we learned during the first three weeks of the module, and integrate it with the peer feedback which we received. This also assisted me in achieving learning outcome 1, because I needed to express my understanding of information systems in an extremely concise manner.

Summary Post

Practical Activity: Creating an Object-Oriented Design

An assignment given during unit 3 was to create a visual representation of an object-oriented design. This was to be done in the context of a supermarket. This assignment helped me achieve learning outcome 2, because I designed and documented an information system which was to be the basis for an object-oriented design, and thereafter represent it accordingly. My design is available below, and tutor feedback is included.

Object-Oriented Design

Programming Exercises: Python

As part of preparation for Seminar 2, students were required to complete Python exercises related to classes, objects, class functions/methods, and inheritance. These exercises helped me achieve learning outcome 3, because I was able to start implementing the object-oriented design knowledge I gained from the practical activity, in a programming language.

The source files are available below. Note that Codio did not keep separate files for each exercise, so please refer to the files below for the actual source code. Despite this, the files were submitted through Codio and the necessary checks were passed.

Classes and Objects (Exercise 15)
Class Functions and Methods (Exercises 16 and 17)
Class Inheritance (Exercise 18)

UML Class Diagram

An assignment given during unit 5 was to convert our object oriented design from unit 3, into a formalized UML class diagram. This exercise built on the knowledge I gained during the practical activity, and thereby enabled me to achieve learning outcome 2, and to an extent, learning outcome 3. I was able to partially achieve learning outcome 3 because most UML class diagram elements have the relevant behavior supported in Python.

UML Diagram Attempt

UML Diagrams (Class, Sequence, Activity)

This assignment built on the knowledge which students had gained from the previous assignment, which was the class diagram design. In addition to creating a class diagram, students were also required to create a UML activity diagram and UML sequence diagram in the context of a hospital. This improved my understanding of UML and the documentation processes for building an information system, allowing me to achieve learning outcome 2, and to an extent, learning outcome 3.

UML Diagrams

Database Normalization and Entity Relationship Diagram

During the module, database normalization was introduced, which is a set of principles that apply to relational tables, which can be used to ensure that databases remain scalable and protected from integrity issues. An assignment was given which was to create normalized tables based on a schema given for a certain scenario. The normalized tables needed to adhere to 3NF. This assignment helped me reach learning outcome 3, because I could now write SQL in such a way that I could tie my information system designs to persistent data in a reliable and scalable way. Knowledge of these principles also helped me while working on the implementation assignment- normalized tables meant that I could keep my SQL queries short and easy to understand.

Normalized Tables

A follow-up task was to create an Entity Relationship Diagram based on the normalized tables which we created. This improved my documentation and design skills for object-oriented design because I could now express domain concepts and multiplicities in a way that links both to classes and databases, allowing me to achieve learning outcomes 2 and 3.

Entity Relationship Diagram

Forum Discussion: SQL Alternatives

A second discussion was held during the module, which related to an emerging technology: NoSQL. Similar to the forum discussion on information system failure, students were required to create an initial post, create 2 peer responses, and a summary post. Completing the posts helped me reach learning outcomes 3 and 4, because I had to critically evaluate the concept of NoSQL in such a way that I could determine how to apply it to real-world scenarios.

Initial Post and Peer Responses

Summary Post

Exercises: SQL and Advanced SQL

Later in the module, students were required to revise SQL by completing a revision exercise, and an advanced exercise. This helped me achieve learning outcome 3, because the advanced exercises provided me with the proper level of knowledge to implement a complex information system database in a scalable and maintainable way.

SQL Exercises- What is a Database
SQL Exercises- Creating Databases and Inserting Data
SQL Exercises- Altering Existing Databases and Inserting Data
SQL Exercises- Deleting Databases, Dropping Tables, and Deleting Data
SQL Exercises- Constraints and Keys
SQL Exercises- Aggregate Functions
Advanced SQL Exercises

Exercise: Introduction to Flask

One of the final tasks given was to become acquainted with Flask- a web development framework built for Python. This was an interesting exercise and it helped me reach learning outcome 3 because it gave me a chance to further improve my Python skills, and thereby use them to create information system. It also helped me reach learning outcome 4, because after working through the exercise and reflecting on what Flask allows you to do, I could see how websites combine the concepts of an information system and bring life to them- websites enable people to interact with data and business processes.

Introduction to Flask

Blog Post: Emerging Trends in Information Systems

The final task given was to analyze an upcoming area within the field of Information Systems. I chose the area of blockchain, because it operates directly on the data aspect of an information system, meaning that nearly any (digitized) business can make use of it. This helped me achieve learning outcomes 1 and 4, because it challenged me to critically evaluate how new technologies can drive business growth through improving information system functionality.

Blog Article

Reflective Piece

One additional assignment given, as part of the ePortfolio, was to write a reflective piece, wherein I would need to write about my overall experience and impression of the module. The reflection is not just about my thoughts and reflections, but also covers which insights I have gained from my experiences, and how I can use those insights in future, to improve as a computing professional. It has been attached as part of my submission via the VLE.

Skills Matrix and Action Plan

This module has introduced me to new things I’d like to learn, in addition to other skills I would like to improve on in my professional life. In relation to this, students are given a skills matrix in order to track their growth in various domains related to being a computing professional, and are also given an action plan to assist in the process of reaching specific goals. This also helps with remaining accountable for achieving goals that are set. Both have been attached to the VLE submission.