Richard was born on December 5th, 1982 in Sundsvall, Sweden.
He is married to a Chilean woman of c. 14 years and they have been blessed with four children, three girls and a boy.
Richard sees himself as a passionate person when it comes to subjects and activities that he has set forth or been asked to perform.
Richard cares for Sweden's natural heritage and believes that many take it for granted. When he and his family have the chance, they devote their time to explore the surrounding wilderness and hope to spot any wildlife in their normal habitat, as well as to learn the names and useful attributes of plants that are nearby.
He also loves level designing as it was something he has been interested in since before high school. He is currently working on his own campaign for the game called Kohan 2: Kings of War designed by TimeGate Studies. More information about this campaign can be found under the fansite that he made and you can find this project under the portfolio.
Richard has an interest in astronomy and hope that one day the children will share his enthusiasm in the beautiful and dangerous aspect of outer space. The outer space is mysterious, dangerous but crucial for the development of our societies and cultures, and every generation need to understand that out there is where our future lies.
Richard is a loyal member of any dedicated development team, he is committed to any task set forth by anyone involved. He will come with own recommendations, if some are required or just seem suited for the task at hand, to increase the quality of the final product.
He has the understanding of developing through the mindset of object-oriented programming and he feels concerned when the rules and guidelines are not being followed. He also has an interest in keeping a certain design throughout the project, regardless if it is the style of the documentation, code indentation or whatnot.
Software engineering takes devotion; it takes time and skill to take an idea and transforming it into a functional, secure, desirable, powerful experience.
There are many levels and aspects of software engineering which will affect the decisions you make during the development of your latest creation, factors like target audience, hardware limitations and restrictions, budget and timeframe, framework and languages that are either accessible and/or available for the specific project or feature within it, security concerns are just a few to mention.
Of course nobody is flawless. So if you find something wrong with this website, then send a message to the developer in question. He will no doubt appreciate any tips, criticisms or whatnot that you put forth. There are aspects of this website, and other projects, that are made in a special way for different reasons. Some could be lack of time, lack of experience, lack of artistic skills, or just a misstake of not seeing it.
Position: Student, Web Developer
Customer: College of Gotland
Date: Oct 1st, 2011 - Dec 8th, 2011
This project is built on pure HTML and CSS with some Multimedia elements. It has no dynamic content, no validation or database access. It's a purely static.
The website was created during the HTML and CSS course that I undertook at College of Gotland. The purpose was to create a website that would attest to everything that I’ve learned about the web development process, regarding HTML and CSS.
Things like headline hierarchy had to be intact and correct. As well as for those that have either a sight or a movement disability, meaning that they should still be able to use or navigate the website, the website will let you navigate with the help of other I/O hardware.
It was also important that you understand how colour and font combinations can cause a negative impact for a website if used incorrectly. Sitemaps and breadcrumbs where also implemented to make it easier to navigate and find what you are looking for. The website is also fitted with a printable CSS stylesheet, so some pages (icon present) can be printed without draining the cartridge.
The website is NOT responsive as we never covered responsive design and I have no plans on updating this website.
Most of the information and multimedia were found on the official and unofficial websites dedicated to the game called Kohan 2: Kings of War ®. Other details, like the Royalist Campaign ©, was designed and written by me.
Comprised of: HTML, CSS, Sitemap, Breadcrumbs, Print-friendly, User-friendly, embedded HTML elements.
Position: Web Developer
Customer: Mats Richard Hellstrand
Date: Jul 9th, 2015 - Dec 31st, 2018
This project is built on PHP, HTML5 and CSS3 coding. It has object-oriented programming aspects. JavaScript is used for validation and minor client activities. Finally, MySQL is used for loading data and AJAX is used together with the contact form to send an e-mail.
In the files that I provide for this project, you can find information about how the website is built from the ground up. There are a few UML diagrams and other details in several files that should give you a better idea on how it all works. Stating this information in text will take several pages or even chapters. [TO COME!]
The website present files (by only allowing certain extensions) that are stored under the server for each specific project. So if I add a file manually to the server, the files will be presented under the specific page dynamically.
I tried to be as user-friendly as possible as well as thinking about critical details, which I learned during my studies at College of Gotland, but it's not always possible to follow ALL guidelines. I have chosen not to support earlier versions of Internet Explorer. I know this breaks one of the major guidelines of the old course but the amount of work required to make this website look decent for IE under 9.0 is just not worth it. IE above 9.0 and Edge should behave just as the other supported browsers.
The responsiveness behind this website comes from the logic behind the Bootstrap framework. I copied the CSS styles regarding the column, offset and push/pull. I also made the website responsive regarding the font-size, depending on the viewport of the device, it will make the size change depending on the resolution. The website also has a responsive menu that will disappear for the smaller screen resolutions, this could be helpful when trying to use the contact form on a handheld device. The CSS code still needs some adjusting for resolutions larger than 2560x1600.
The website is made so ALL pages are generated each time you press the refresh button. This page is built with anchors, so by pressing links and such you jump to the information that you are searching for. I made this design decision because it makes the automatic generated Sitemap.xml file, the Sitemap page and the breadcrumbs (todo), so much easier to implement.
Now comes a list of the main pages of the website.
The About page holds information about myself and what I think about software development, as well as some links to profiles that I currently use on social media, in case you wanna contact me in other ways.
The Portfolio page displays the projects that I've done to date. Under each subpage you will find information about each project, as well as a list of thumbnails for each screenshot. There are also download links for each file that I felt like sharing with the public, regarding the project of course, lastly there are detailed information about the project itself.
The Sitemap page contains automatic generated content which is derived by the sections found under this website. Each section has an id, which are then used to create each link listed under this page. The breadcrumbs are used in a similar manner.
The Contact page can be used to contact me. It requires JavaScript to be enabled in the browser, otherwise the validation scripts will not run and the send button will be disabled. AJAX is used to send the e-mail, as the website will send the form information to a PHP file for processing. The page will give details on what is accepted for each input field as well as the textarea.
The Qualification page is a hubpage for several other subpages, which are listed below.
The Education subpage holds a list of degrees and courses that I've taken, from different institutes. As new courses get completed they will be added to these pages, as there are some that are ongoing. Each subpage have detailed information about either the degrees (of the programmes) or the courses themselves.
The Career subpage holds a list of positions that I've had during my career. The list will display a short description of each and each subpage will describe them all more thoroughly. You will find a description of each position, date from when I stated until I finished, a link to their website (if any) as well as what the position was all about. In case of a software engineering position I will display all the technologies, tools, frameworks and subjects that I was dealing with during this period.
The Results subpage holds a list of tests (or exams) that I felt like sharing with you. Each subpage will give you some information about the results and a link (if any) to where I took this test or exam.
The Experience subpage tries to display my skill tree. You will first find a summary page where all of the different skills, under each group, are calculated by average and the progress bar will expand accordingly. The subpages will display each group, the skills under this group and a matching progress bar as well as a description where I try to explain how I tried to place a value on the different skills.
The
Certifications subpage holds a list of certifications that I have currently been able to gain. Each subpage will give you some information about the certification and a link (if any) to where, or by whom, the certification was issued.
The Download subpage contains automatic generated content which is derived by the sections found under this website. Each section has an id, which are then used to display the pages that have downloadable items. Instead of going through all sections you can find all the files here.
The Awards subpage holds a list of awards that I felt like sharing with you. Each subpage will give you some information about the award and a link (if any) to where, or by whom, the award was given.
The Testimonials subpage holds a list of testimonials, that I have been blessed with, recieved from employers during my career or otherwise. For testimonials that are large, I've chosen to make them smaller so they would fit the website, or not to divulge important information that could either be harmful for me, my clients and/or employers. The originals, if possible, can be given on requests.
Comprised of: PHP, HTML5, CSS3, MySQL, JavaScript, OOP, Responsive design, AJAX and File management.
Position: Jobseeker
Customer: SpeedLedger
Date: Jul 15th, 2018 - Jul 18th, 2018
The goal of this project was to create a simple REST-based web service, which can provide information about stored bank accounts.
Comprised of: Java 8, Restlet, OOP, REST-API
Position: Web Developer
Customer: Paulina Hellstrand
Date: Sep 25th, 2018 - UFN
Paulina has created her own company regarding translation of english and spanish text. Her website will give you all the information you need regarding what she offers as a translator and editor of text. You will also find testimonials, rates, as well as links to her social media accounts, incase you are in need of her services.
The multimedia resources that are used, were found under Pixabay.com and the creators are listed below.
Paper background: ChrisFiedler
Flower background: darkmoon1968
Note: Dorothe (darkmoon1968) has of 19th of November, 2018 verified her acceptance of me using her artwork for this project. Thank you, Dorothe! =o]
Comprised of: HTML5, CSS3, JavaScript, TODO: Responsive design
Awards
#0
Testimonials
#2
Degree: Higher Education Diploma
Graduated: Jan 29th, 2016
Programme: Advance Webprogramming
Specialization: Software Engineering
Credits: 120 ECTS points
Date: January 29th, 2016
Institution: Uppsala University, Campus Gotland
Issued by: Marianne Thorén (Vice-Chancellor)
The following courses are included in this degree:
- IT-security
- Computer Systems
- Object-Oriented Programming with Java I
- Object-Oriented Programming with Java II
- Design Patterns
- Computer Networking for Programmers
- ASP.NET and PHP
- Software Development Methods
- Software Project
- Web design with HTML and CSS
- Actionscript in Flash
- Actionscript in Flash II
- Software Engineering Project
- Webdesign with JavaScript and Document Object Model
Note: Some of the courses listed above was not part of the programme, but was included into this degree nonetheless.
My own thoughts and comments will come as their official programme page does not have an english page for this programme and as of this moment I do not have the time to translate their text and the programme has changed since I undertook the programme. You can read about the courses that I've taken to get some idea what this programme was all about.
Keywords: Android, Android SDK and Java
Keywords: The Internet Protocol stack, Application layer, Transport layer, Network layer, Link layer and various Local Area Network (LAN) systems, Overview of mobile and wireless networking technologies
Keywords: The relational model and relational databases, Database Modeling, ER (Entity Relationship) modeling, Normalization, Relational Algebra, SQL (Structured Query Language), Stored Procedures, Triggers, Transactions, Performance and Index
Keywords: PHP, HTML5, CSS3, JavaScript, File management, Responsive design, CanvasJS and Agile development with Scrum
Keywords: C++, Variables, Classes, Functions, Composition, Iterations, Conditionals, Inheritance, Polymorphism, Exception handling and a Java project
Keywords: System verification, Statement Coverage, Decision Coverage, Path Coverage, Black-box testing, White-box testing, Test Plan, Test, UML and Java
Keywords: Shellscript-programming, Linux/Unix and C programming
Keywords: Network communications, Firewalls, Policies and Encryption
Keywords: Java, Variables, Classes, Methods, Composition, Iterations, Conditionals, Inheritance, JUnit, Polymorphism and Exception handling
Keywords: Operating systems, Hardware, Assembler, Thread programming in Java and Numbering systems
Keywords: Design Patterns (such as Observer pattern, Factory pattern and so on) and some Java programming
Keywords: Java, RMI programming, Socket programming, Server programming and Network theory (regarding e.g. communication protocols)
Keywords: PHP, ASP.NET, C# and Object-oriented programming
Keywords: UPEDU, Use case, Test case, Test plan, Risk list, Sequence diagram and Collaboration diagram
Keywords: PHP, HTML, CSS, JavaScript and RUP
Keywords: Java, Javadoc, NetBeans, UML, GUI, Swing and Object-oriented programming
Keywords: HTML, CSS, Sitemap, Breadcrumbs, Print-friendly, User-friendly and embedded HTML elements
Keywords: Flash, ActionScript 3.0, Physics, Collision detection and Object-oriented programming in ActionScript
Keywords: Flash, ActionScript 3.0, Physics, Collision detection, OOP, Debugging, Tweening and Effects
Keywords: Agile development, Scrum, DSDM, XP and Requirements analysis
Keywords: AJAX, Web 2.0, JavaScript, XML, (X)HTML, CSS, DOM, Design Patterns, Regex, Asynchronous communication, Browser independent code, Validation of code and Class libraries
Keywords: JavaScript, DOM, Prototype, AJAX, JSON, (X)HTML, CSS and Regular Expressions
Keywords: Lorem ipsum, Lorem ipsum, Lorem ipsum, Lorem ipsum, Lorem ipsum
Keywords: Lorem ipsum, Lorem ipsum, Lorem ipsum, Lorem ipsum, Lorem ipsum
Course: Mobile applications development, 3 ECTS points
Date: Incomplete
Type: Part of programme
COURSE OBJECTIVES
The student should be able to:
- be able to evaluate the quality of the developed mobile application
- be able to assess in which situations operating system-specific applications and web applications are preferred for smartphone development
- have an understanding of the special possibilities and limitations that the handheld environment implies
- reflect and have an idea of a business model (how to distribute, sell, etc) to distribute or commercialize the application
- to develop an executable application for smartphones based on the platform chosen in the course
- have an understanding of opportunities to utilize cloud services in the apps
CONTENTS
The aim of the course is that the course participant will acquire skills in developing applications (apps) with good utility for handheld devices.
This course was part of the International Software Engineering programme at Blekinge Institute of Technology. The remaining work regards to actually develop the Android application that I started developing as well as create a final report regarding what I've learned during this project. These two parts would give me another 4,5 ECTS.
Note: As of October 1st, I have chosen to end my work with this course. Either I have not touched it in a while or the institution do not allow me to continue with this course. I have a full-time job so I have other things to think about.
Part 1: Project Design, 1 ECTS credits
- Create a project design for your Android application, create Mock-ups for how you believe each view should look like. You also have to detail what pros and cons each view might entail.
Part 2: Project Proposal, 2 ECTS credits
- Create a project proposal for your Android application, detail as many aspects as you can think of regarding stakeholders, features and a final description for your application before the development begins.
Part 3: Android application, 0 ECTS credits
- Create your Android application according to your project design and project proposal documents. The TODO project can be found under the Portfolio.
Part 4: Final assignment, 0 ECTS credits
- Validate your project in a report.
GRADING
The student can receive one of the following grading levels:
- Pass with distinction (an A or a B)
- Pass (somewhere between a C and an E)
- Fail (obviously an F)
- A, B, C, D, E, Fx and F
I got the following grades:
- Part 1: Pass
- Part 2: Pass
- Part 3: INCOMPLETE
- Part 4: INCOMPLETE
- Final grade: INCOMPLETE
Note: Swedish National Agency for Education: here
Comprised of: Android, Android SDK and Java
Course: Computer- and Telecommunication, 7.5 ECTS points
Date: Jun 14th, 2013
Type: Part of programme
COURSE OBJECTIVES
The student should be able to:
- understand the basic principles of
data communication
- understand how the routing and IP addressing works
- understand how switching works
- understand what services the data link layer
provide
- implement a client-server application
wireless networks
- understand how the protocols for wireless networks (802.11)
works
- understand how mobile networks are built
- explain the advantages and disadvantages of network communications
- understand how the internet transport (TCP and UDP) are built and what they provide
- understand how the protocols work to have Internet access from a mobile terminal
- understand how the most common network applications'
communication protocols are built
CONTENTS
The aim of the course is that students gain basic knowledge of the subject data communications, specializing in Internet
and an overview at the system level with GSM and future mobile telephone.
This course was part of the International Software Engineering programme at Blekinge Institute of Technology.
Part 1: Laboratories, 3 ECTS credits
- Create a Tic-Tac-Toe game that uses network communications, which will let it send data. So two Tic-Tac-Toe games can communicate with eachother.
Part 2: Assignments, 0.5 ECTS credits
- Answer questions every week regarding the topics of this course.
Part 3: Exam, 4 ECTS credits
- Hand written exam regarding the topics of this course.
GRADING
The student can receive one of the following grading levels:
- Pass with distinction (an A or a B)
- Pass (somewhere between a C and an E)
- Fail (obviously an F)
I got the following grades:
- Part 1: Pass
- Part 2: Pass
- Part 3: Pass
- Final grade: Pass
Note: Swedish National Agency for Education: here
Comprised of: The Internet Protocol stack, Application layer, Transport layer, Network layer, Link layer and various Local Area Network (LAN) systems, Overview of mobile and wireless networking technologies
Course: Database Techniques, 7.5 ECTS points
Date: Jan 6th, 2015
Type: Part of programme
COURSE OBJECTIVES
The student should be able to:
- be well versed in relational databases and have a overall understanding of its use, it's advantages and disadvantages
- clearly understand and apply the process to develop a database from a problem to finished client application
- structured and detailed modeling and a document database in the form of an ER (Entity Relationship) model
- based on an existing model, create practical and change and use a database with SQL (Structured Query Language)
- design and implement a well-functioning database application with associated (client / server) client application
- briefly understand, explain and argue about databases and database management systems in general
- have a thorough, both theoretical and practical, ability to use relational databases
CONTENTS
In Applied Information Technology Development of applications based on a large database area. An important component in these applications is the development of the database itself which aspects such as modeling and design, performance and
response times, as well as structured programming and expandability are important components. The student will have a thorough briefing on the subject, both theoretical and practical, aimed at students independently to understand and learn use the process to model and implement a database application.
This course was part of the International Software Engineering programme at Blekinge Institute of Technology.
Part 1: Database modelling, 1.5 ECTS credits
- Perform a database modelling of a known website. In this case Blocket.se was chosen.
Part 2: SQL laboratory, 1.5 ECTS credits
- Perform SQL laboratory assignments.
Part 3: Project, 1.5 ECTS credits
- Create a simple but full banking system. Libreoffice Calc should be used by board of directors to manage the bank. Java should be used to build the ATM from where the customer can withdraw money. PHP should be used to build the website from where the customer can access their account. C++ should be used to build the interface that the cashier shall perform everyday activities. Conceptual, logical and physical models should be created. Project is suppose to be done in teams.
Part 4: Exam, 3 ECTS credits
- Hand written exam regarding the topics of this course.
GRADING
The student can receive one of the following grading levels:
- Pass (somewhere between a C and an E)
- Fail (obviously an F)
- A, B, C, D, E, Fx and F
I got the following grades:
- Part 1: Pass
- Part 2: Pass
- Part 3: Pass
- Part 4: C
- Final grade: C
Note: Swedish National Agency for Education: here
Comprised of: The relational model and relational databases, Database Modeling, ER (Entity Relationship) modeling, Normalization, Relational Algebra, SQL (Structured Query Language), Stored Procedures, Triggers, Transactions, Performance and Index
Course: Software Engineering Project, 7.5 ECTS points
Date: Jan 15th, 2016
Type: Part of programme
COURSE OBJECTIVES
The student should be able to:
- be able to carry out a software development project
- be able to account for the difference between different development models
- be able to write a requirement specification in dialogue with
a customer
- be able to maintain a professional image throughout the project with all stakeholders
- be able to develop a software application according to a specification and deliver on time just as the agreed between stakeholders
- be able to explain how verbal and written communication with a client can affect a software development project
- be able to plan a software development project throughout the different phases and have a thorough knowledge of the content and scope of these phases
CONTENTS
To succeed with software development is a challenge which demands a broad technical know-how, one ability is to see the pros and cons of different technical solutions, a responsiveness in communication with the client as well as a well-organized and structured way of working. The course aims at the ability to according to a specific schedule and budget design and deliver a software with its associated documentation according to the stakeholder's specification. By implementing a software development project with an external client, the student acquires the abilities, insights and practical experience necessary to succeeds in project-based small-scale software development in the future.
This course was part of the International Software Engineering programme at Blekinge Institute of Technology.
Part 1: Software Development Project, 7.5 ECTS credits
- The InnoMech2 project can be found under the Portfolio.
GRADING
The student can receive one of the following grading levels:
- Pass (somewhere between a C and an E)
- Fail (obviously an F)
I got the following grades:
- Part 1: Pass
- Final grade: Pass
Note: Swedish National Agency for Education: here
Comprised of: PHP, HTML5, CSS3, JavaScript, File management, Responsive design, CanvasJS and Agile development with Scrum
Course: Programming, Datastructures and Algorithms, 16.5 ECTS points
Date: Oct 1st, 2017
Type: Part of programme
COURSE OBJECTIVES
The student should be able to:
- understand the background of programming
- understand and be able to describe and use concepts in programming
- be able to break down a major problem in smaller parts
- using object-oriented techniques to structure a solution
- be able to implement a solution for a given problem
- be able to handle the programming language called C++
- be able to test and troubleshoot source code
- be able to accept, select and motivate the chosen solution
- understand and be able to describe and use data structures
- understand and be able to describe and use algorithms
- be able to search and assimilate new information
- be familiar with another object-oriented language such as Java or C#
CONTENTS
Programming is the foundation of applied IT. A large part of today's system are built according to object-oriented principles with different variants of data structures and algorithms. The aim of the course is that the student will have fully grasp these elements at the end of the course by gaining knowledge of object-oriented programming, data structures and algorithms required for further studies in the field of computer science.
This course was part of the International Software Engineering programme at Blekinge Institute of Technology. The remaining work regards to actually develop a game and the final exam. These two parts would give me another 6 ECTS.
Note: As of October 1st, I have chosen to end my work with this course. Either I have not touched it in a while or the institution do not allow me to continue with this course. I have a full-time job so I have other things to think about.
Part 1: Assignments A, B and C, 1.5 ECTS credits
- Three assignments to learn object oriented programming in C++.
Part 2: Assignments D and E, 1 ECTS credits
- Two assignments to learn object oriented programming in C++.
Part 3: Assignments F and G, 1 ECTS credits
- Two assignments to learn object oriented programming in C++.
Part 4: Assignment H, 0.5 ECTS credits
- One final assignments to learn object oriented programming in C++.
Part 5: Project I, 0 ECTS credits
- Create a game.
Part 6: Project II, 2 ECTS credits
- Create a second game. A draughts game was written in Java, it is called EmpireKings and can be found under the Portfolio.
Part 7: Exam I, 6 ECTS credits
- Hand written exam regarding the topics of this course.
Part 8: Exam II, 4.5 ECTS credits
- Hand written exam regarding the topics of this course.
Part 9: Exam III, 0 ECTS credits
- Hand written exam regarding the topics of this course.
GRADING
The student can receive one of the following grading levels:
- Pass with distinction (an A or a B)
- Pass (somewhere between a C and an E)
- Fail (obviously an F)
I got the following grades:
- Part 1: Pass
- Part 2: Pass
- Part 3: Pass
- Part 4: Pass
- Part 5: Pass
- Part 6: Pass
- Part 7: INCOMPLETE
- Part 8: Pass
- Part 9: FAIL
- Final grade: INCOMPLETE
Note: Swedish National Agency for Education: here
Comprised of: C++, Variables, Classes, Functions, Composition, Iterations, Conditionals, Inheritance, Polymorphism, Exception handling and a Java project
Course: Basic Systemverification, 5 ECTS points
Date: Oct 1st, 2017
Type: Part of programme
COURSE OBJECTIVES
The student should be able to:
- be able to account for different test methods
- be able to account for different parts of the test process
- be able to perform tests according to test instructions
- be able to follow a test plan
- understand what test, test organization and test competence means
- be able to formulate a test strategy and test plan with reasoning for the choices made
- be able to put together a test instruction based on a number of known requirements
CONTENTS
The purpose of the course is to introduce system verification
and testing. The course addresses test methods, strategies
and test environment. It is also brought up how the group organizes the testing and how the test group works with other elements of the system development group. Testing of software systems is a complex and important part of getting a working system delivered to users. Competence with system verification and testing are and will always be requested by many stakeholders.
This course was part of the International Software Engineering programme at Blekinge Institute of Technology. The remaining work regards to finish the first lab and create a test plan. This part would give me another 2,5 ECTS.
Part 1: Laboration I, 2.5 ECTS credits
- Solve several assignments regarding systemverification. Flow graph, data flow test and create test cases and the tests should be implemented with JUnit, those are a few examples of this laboration serie.
Part 2: Laboration II, 0 ECTS credits
- Solve several assignments regarding systemverification. Black box testing, create a test plan, create a simple bowling game through Test Driven Development (TDD), those are a few examples of this laboration serie.
Part 3: Exam, 2.5 ECTS credits
- Hand written exam regarding the topics of this course.
GRADING
The student can receive one of the following grading levels:
- Pass (somewhere between a C and an E)
- Fail (obviously an F)
I got the following grades:
- Part 1: Pass
- Part 2: INCOMPLETE
- Part 3: Pass
- Final grade: INCOMPLETE
Note: Swedish National Agency for Education: here
Comprised of: System verification, Statement Coverage, Decision Coverage, Path Coverage, Black-box testing, White-box testing, Test Plan, Test, UML and Java
Course: Programming in UNIX Environment, 2.5 ECTS points
Date: Oct 1st, 2017
Type: Part of programme
COURSE OBJECTIVES
The student should be able to:
- be able to use the UNIX system command line interface
- have basic knowledge of doing programming in a script language
- be able to develop programs in C and assembly languages that can run in a UNIX environment
- be able to motivate, discuss and evaluate their solutions orally and in writing
- have an understanding of the UNIX system's main parts and how these parts are associated
- be able to write the building blocks of programs using the UNIX programming interface
- be able to determine how abstract the level of programming is most appropriate for solving a particular task
- have a basic knowledge of how programs are written in the C language and how it interact with the operating system in a UNIX environment
- have a basic knowledge of how source code are written in the assembly language and how the software interactions work with hardware on machine level
CONTENTS
The aim of the course is that the student should acquire an in-depth understanding of UNIX-based systems and for operating system programming. This means, among other things, being able to program operating system's most abstract level, closest to the user, and down through the abstraction levels to the lowest level, system calls. The course teaches how to design software like interacts with the computer through the UNIX operating system (and UNIX-based / similar operating systems such as Linux and MacOS). It lays the foundation for further studies in other areas (for example data security) that requires a concrete understanding of its underlying technology. The purpose is achieved by the student by letting the student do a series of laboratory exercises, by getting practical experience in developing programs in a UNIX environment.
This course was part of the International Software Engineering programme at Blekinge Institute of Technology. The remaining work regards creating a webserver in C as well as creating your own compiler written in assembler. This part would give me another 4,5 ECTS.
Part 1: Shell-script programming, 2.5 ECTS credits
- Group assignment of creating a shell script based network log analyzer.
Part 2: UNIX programming, 0 ECTS credits
- Group assignment of creating a webserver using C capable of handling multiple requests using fork, pre-fork, threads and/or IO multiplexing.
Part 3: Assembly programming, 0 ECTS credits
- Group assignment of creating a simple compiler written in assembler.
GRADING
The student can receive one of the following grading levels:
- A, B, C, D, E, Fx and F
I got the following grades:
- Part 1: A
- Part 2: INCOMPLETE
- Part 3: INCOMPLETE
- Final grade: INCOMPLETE
Note: Swedish National Agency for Education: here
Comprised of: Shellscript-programming, Linux/Unix and C programming
Course: IT-security, 7.5 ECTS points
Date: Nov 4th, 2009
Type: Part of programme
COURSE OBJECTIVES
The student should be able to:
- describe how to protect against attack
- understand how encryption and decryption is done and perform it practically
- identify threats and weaknesses of computers and computer networks
- describe ways to get into the computer system
- establish a safety analysis
- describe how computers and applications communicate
CONTENTS
This course should give the students a view on what the internet offers but also what you are open to at any given point. Course handles topics ranging from network communications, firewalls, policies to encryption.
This course was part of the Advance Webprogramming programme at College of Gotland.
Part 1: Introduction, 2 ECTS credits
- threats
- concepts in IT security
- password
Part 2: Network security, 2.5 ECTS credits
- encryption
- secure transmission
- computer communications
Part 3: Home user systems and Security policy, 3 ECTS credits
- firewalls
- antivirus
- secure email
- safety
GRADING
The student can receive one of the following grading levels:
- Pass with distinction (an A or a B)
- Pass (somewhere between a C and an E)
- Fail (obviously an F)
I got the following grades:
- Part 1: Pass with distinction
- Part 2: Pass with distinction
- Part 3: Pass with distinction
- Final grade: Pass with distinction
Note: Swedish National Agency for Education: here
Comprised of: Network communications, Firewalls, Policies and Encryption
Course: Object-Oriented Programming with Java I, 7.5 ECTS points
Date: Dec 31st, 2009
Type: Part of programme
COURSE OBJECTIVES
The student should be able to:
- develop object-oriented Java applications
- learn the fundamental aspects of programming like classes and so on
- develop with the fundamental aspects of programming with focus on Java
- perform analysis of class and algorithm sequence diagrams to develop code
- analyze objects and perform debugging using unit tests
CONTENTS
The course focuses on object-orientation through object-oriented principles such as clear responsibilities, encapsulation of data and weak links. We use class diagrams
be able to communicate and discuss the aspects of object-orientation. The course also introduces problem solving and algorithms where the sequence diagram used to clarify issues and their solutions. Unit testing is introduced at an early stage so the students will learn to write solid code, and for them to write code that is easy to test. The course is practice-oriented where students continuously apply the theoretical content in exercises and labs.
This course was part of the Advance Webprogramming programme at College of Gotland.
Part 1: Fundamental object-oriented programming, 2.5 ECTS credits
- classes, methods, variables, and composition
- iterations and conditionals
Part 2: Object-orientation and test, 1.5 ECTS credits
- inheritance
- testing with JUnit
Part 3: Object-orientation and exception handling, 3.5 ECTS credits
- polymorphism
- exception handling
GRADING
The student can receive one of the following grading levels:
- Pass with distinction (an A or a B)
- Pass (somewhere between a C and an E)
- Fail (obviously an F)
I got the following grades:
- Part 1: Pass with distinction
- Part 2: Pass with distinction
- Part 3: Pass
- Final grade: Pass with distinction
Note: Swedish National Agency for Education: here
Comprised of: Java, Variables, Classes, Methods, Composition, Iterations, Conditionals, Inheritance, JUnit, Polymorphism and Exception handling
Course: Computer Systems, 7.5 ECTS points
Date: Apr 30th, 2010
Type: Part of programme
COURSE OBJECTIVES
The student should be able to:
- describe the most common types of number representation
- describe the computer way to represent and store data
- describe a computer's structure and operation
- write programs in an assembly language
- describe the main services an operating system provides
- use the processes and threads in programming
- carry out numerical calculations in different numbering systems and convert numbers between number system
CONTENTS
Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.
This course was part of the Advance Webprogramming programme at College of Gotland.
Part 1: Numbering systems, 1.5 ECTS credits
- binary arithmetic, binary number representation and binary codes
- decimal, binary and hexadecimal numbers and convert between these numbering systems
Part 2: Computer architecture, 3 ECTS credits
- computer history
- basic computer architecture
- types of memory and memory system
- assembler programming
- interrupts and interrupt handling
- architecture of modern computers
Part 3: Operating systems, 3 ECTS credits
- introduction to operating systems
- process and thread management
- scheduling
- memory management
- filesystem
- compiling, linking and loading of programs
GRADING
The student can receive one of the following grading levels:
- Pass with distinction (an A or a B)
- Pass (somewhere between a C and an E)
- Fail (obviously an F)
I got the following grades:
- Part 1: Pass
- Part 2: Pass with distinction
- Part 3: Pass with distinction
- Final grade: Pass with distinction
Note: Swedish National Agency for Education: here
Comprised of: Operating systems, Hardware, Assembler, Thread programming in Java and Numbering systems
Course: Design Patterns, 7.5 ECTS points
Date: Nov 9th, 2010
Type: Part of programme
COURSE OBJECTIVES
The student should be able to:
- how software pattern (Design Patterns) works and are structured
- what problems the different categories of patterns can solve
- apply software patterns in software development
- to assess the patterns that are suitable for use in various design situations
- analysis and application regarding creation of software patterns (creational)
- analysis and application of structural design software (structural)
- analysis and application of behavioral pattern software (behavioral)
CONTENTS
The first project was about creating a very simple Chat application which actually sent messages between clients, just like any other instant messanger application on the market. The second project was about analyzing a game called Hnefatafl. As well as describing all design patterns and those that you find in this application. Last application was a duck shooting game, that you were suppose to improve, so it followed a few design patterns that you have learned during the course.
This course was part of the Advance Webprogramming programme at College of Gotland.
Part 1: Chat program, 2.5 ECTS credits
- Design a Chat program that has the basic functionality of similiar programs on the market. The program was designed with the Observer Pattern and in this case UDP protocol is used for transfering data between two clients.
Part 2: Analysis of Hnefatafl, 2.5 ECTS credits
- Analyze the Hnefatafl source code and determine which design patterns that are being used. As well as making remarks on the comments placed in the source code, if they are valid or if something is missing/incorrect.
Part 3: Game improvements, 2.5 ECTS credits
- A Duck shooting game is provided and you should try to improve it with your own game design elements (like new weapons, targets, bonuses etc). With the source code you should try to incorporate design patterns and make the application more secure, faster and thread safe.
GRADING
The student can receive one of the following grading levels:
- Pass with distinction (an A or a B)
- Pass (somewhere between a C and an E)
- Fail (obviously an F)
I got the following grades:
- Part 1: Pass
- Part 2: Pass with distinction
- Part 3: Pass
- Final grade: Pass
Note: Swedish National Agency for Education: here
Comprised of: Design Patterns (such as Observer pattern, Factory pattern and so on) and some Java programming
Course: Computer Networking for Programmers, 7.5 ECTS points
Date: Nov 12th, 2010
Type: Part of programme
COURSE OBJECTIVES
The student should be able to:
- describe how the network is constructed
- describe the threats and defense measures on data communication
- explain central network protocols and their function
- describe the structure of network protocols, especially TCP / IP protocol stack
- use sockets and RMI for network programming
CONTENTS
The course is based on the Internet and deals with data communication based on a programmer's point of view. Central parts of the course consists of Java development, which makes the student learn about data communications by developing code regarding socket programming and RMI (Remote Method Invocation). The student will also learn about protocols and standards used in practice in data communication.
This course was part of the Advance Webprogramming programme at College of Gotland.
Part 1: Theory and Server project, 1 ECTS credits
- aspects of data communication, TCP, IP, routers and so on
- implement a server with basic server responses
Part 2: Theory and Transmission project, 2 ECTS credits
- aspects of data communication, TCP, IP, routers and so on
- implement a program which will accept and/or abort packages that are sent between clients depending on factors like protocols
Part 3: Theory and RMI project, 2 ECTS credits
- aspects of data communication, TCP, IP, routers and so on
- implement a program with the Java RMI to make one client update another
Part 4: Exam, 2.5 ECTS credits
- large and complicated exam to accommodate for distance studies
GRADING
The student can receive one of the following grading levels:
- Pass with distinction (an A or a B)
- Pass (somewhere between a C and an E)
- Fail (obviously an F)
I got the following grades:
- Part 1: Pass
- Part 2: Pass with distinction
- Part 3: Pass with distinction
- Part 4: Pass
- Final grade: Pass with distinction
Note: Swedish National Agency for Education: here
Comprised of: Java, RMI programming, Socket programming, Server programming and Network theory (regarding e.g. communication protocols)
Course: ASP.NET and PHP, 7.5 ECTS points
Date: Feb 18th, 2011
Type: Part of programme
COURSE OBJECTIVES
The student should be able to:
- design, develop and deploy dynamic Web applications with PHP and ASP.NET
- integrating the web application with external systems such as databases
- analyze and describe how PHP and ASP.NET relate to each other
CONTENTS
To design and develop a web application using PHP and ASP.NET that can interact with external systems, the course covers areas such as the foundation of the PHP and C# languages as well as templates, features, dynamic tables, forms, validation of information, cookies, sessions, headers, databases, server controls in ASP.NET, events, separation of content and logic.
This course was part of the Advance Webprogramming programme at College of Gotland.
Part 1: Laboratory work in PHP, 3 ECTS credits
- continue developing on a simple e-commerce website in PHP
Part 2: Laboratory work in ASP.NET with C#, 3 ECTS credits
- convert the earlier developed e-commerce website in PHP to an ASP.NET counterpart
Part 3: Specialized assignment, 1.5 ECTS credits
- create a report where you validate and highlight positive and negative aspects of the PHP language and the ASP.NET framework
GRADING
The student can receive one of the following grading levels:
- Pass with distinction (an A or a B)
- Pass (somewhere between a C and an E)
- Fail (obviously an F)
I got the following grades:
- Part 1: Pass with distinction
- Part 2: Pass with distinction
- Part 3: Pass
- Final grade: Pass with distinction
Note: Swedish National Agency for Education: here
Comprised of: PHP, ASP.NET, C# and Object-oriented programming
Course: Software Development Methods, 7.5 ECTS points
Date: Mar 17th, 2011
Type: Part of programme
COURSE OBJECTIVES
The student should be able to:
- describe an iterative development model for software development
- identify and compile verifiable requirements for an application
- create a design model based on requirements
- describe some test methods then identify and formulate the test cases for an application
CONTENTS
An important part of software development is the method followed. The main theme for this course is the software development, from requirements management to the handover, conducted using an iterative approach.
This course was part of the Advance Webprogramming programme at College of Gotland.
Part 1: Software failures report, 2 ECTS credits
- Create a report regarding the deaths of patience, caused by software failures within the Therac-25 machine.
Part 2: UPEDU report, 2 ECTS credits
- Create a report detailing answers to three questions asked by the teacher, regarding Unified Process for EDUcation (UPEDU).
Part 3: Risklist report, 1 ECTS credits
- Create a risk list report regarding the Hnefatafl project. The report includes risks like sick leaves, resources, knowledge required, time limit etc.
Part 4: Use Case report, 1 ECTS credits
- Create a use case report regarding the Hnefatafl project. The report includes use cases like movement of a game piece, new game, open game, exit game etc.
Part 5: Analysis report, 1 ECTS credits
- Create a report with a sequence diagram and a collaboration diagram for the Hnefatafl project.
Part 6: Test Case report, 1 ECTS credits
- Create a test case report and a test plan report regarding the Hnefatafl project. The reports include what needs to be tested to verify full functionality, like what system the application is suppose to be tested on, time plan milestones (man hours) etc.
GRADING
The student can receive one of the following grading levels:
- Pass with distinction (an A or a B)
- Pass (somewhere between a C and an E)
- Fail (obviously an F)
I got the following grades:
- Part 1: Pass
- Part 2: Pass
- Part 3: Pass
- Part 4: Pass
- Part 5: Pass
- Part 6: Pass
- Final grade: Pass
Note: Swedish National Agency for Education: here
Comprised of: UPEDU, Use case, Test case, Test plan, Risk list, Sequence diagram and Collaboration diagram
Course: Software Project, 15 ECTS points
Date: Aug 26th, 2011
Type: Part of programme
COURSE OBJECTIVES
The student should be able to:
- perform a requirements dialogue with the customer and maintain ongoing customer meetings
- work iteratively and incrementally in the development of an application
- plan the work with the intent of resources and time
- identify and compile verifiable requirements for an application
- analyze requirements and design an application
- describe an application's design with UML diagrams and be able to justify a chosen design
- constructing an application in accordance with a set design
- identify test cases and carry out the testing of an application
- documenting requirements, planning and finally implement these requirements based on the documentation
- reflect on and analyze the chosen development method's suitability for completed project
CONTENTS
In the course, students are trained in practical work iteratively and incrementally when together with other students conducting a software project. Projectmodel adapted by the students, but based on the models discussed in previous courses. The course gives students the opportunity to apply earlier skills and immerse themselves in new areas.
This course was part of the Advance Webprogramming programme at College of Gotland.
Part 1: Project, 15 ECTS credits
- plan, design and implement a project based on the desires put forth by the customer
- perform testing to keep the code of high quality, effective and secure
- keep the customer informed about the current progress
- learn new languages and technologies needed for this project if these were not already known
GRADING
The student can receive one of the following grading levels:
- Pass with distinction (an A or a B)
- Pass (somewhere between a C and an E)
- Fail (obviously an F)
I got the following grades:
- Part 1: Pass
- Final grade: Pass
Note: Swedish National Agency for Education: here
Comprised of: PHP, HTML, CSS, JavaScript and RUP
Course: Object-Oriented Programming with Java II, 7.5 ECTS points
Date: Sep 6th, 2011
Type: Part of programme
COURSE OBJECTIVES
The student should be able to:
- apply object-oriented principles
- develop robust applications using exception handling and testing
- develop graphical user interfaces with Swing
- using Javadoc and Java APIs
- create an object-oriented design based on a problem area
- describe a design using UML (Unified Modeling Language)
CONTENTS
Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.
This course was part of the Advance Webprogramming programme at College of Gotland.
Part 1: Analysis and design, 1.5 ECTS credits
- basic analysis and design using object-oriented principles
- use of UML
Part 2: Java class library, 3 ECTS credits
- graphical interface
- use of Javadoc and Java APIs
Part 3: Application development, 3 ECTS credits
- testing of application
- development of a game
GRADING
The student can receive one of the following grading levels:
- Pass with distinction (an A or a B)
- Pass (somewhere between a C and an E)
- Fail (obviously an F)
I got the following grades:
- Part 1: Pass with distinction
- Part 2: Pass with distinction
- Part 3: Pass with distinction
- Final grade: Pass with distinction
Note: Swedish National Agency for Education: here
Comprised of: Java, Javadoc, NetBeans, UML, GUI, Swing and Object-oriented programming
Course: Web design with HTML and CSS, 7.5 ECTS points
Date: Dec 8th, 2011
Type: Single course
COURSE OBJECTIVES
The student should be able to:
- analyze websites from an usability and an accessibility perspective
- using Cascading Style Sheets (CSS) for various types of media
- apply basic HTML and CSS coding
- interpret HTML and CSS templates
- customize images for optimum performance on the Internet
- plan and develop a website
- produce technically accurate and accessible websites
CONTENTS
The course covers the design and development of static Web pages. The emphasis is to learn how to plan and develop a website but also how to use
standards-compliant HTML and CSS. The course highlight the importance of the accessibility perspective. Validation of a website using various tools and highlighting the standards are also covered. Furthermore the theories behind the design, such as balance, color, texts and images are also discussed.
Part 1: Accessibility and HTML, 2 ECTS credits
- availability according to established guidelines
- write and interpret standardized HTML
- validation of HTML code
Part 2: Design with CSS, 2.5 ECTS credits
- write and interpret cascading style sheets
- style sheets for different types of media
- theories of design including image customization for the web
- validation on stylesheets
Part 3: Design Process, 3 ECTS credits
- planning and structuring of the website
- commissioning of the website
- creation of a website based on customer and user requirements that have been validated and tested regarding availability
GRADING
The student can receive one of the following grading levels:
- Pass with distinction (an A or a B)
- Pass (somewhere between a C and an E)
- Fail (obviously an F)
I got the following grades:
- Part 1: Pass with distinction
- Part 2: Pass
- Part 3: Pass with distinction
- Final grade: Pass with distinction
Note: Swedish National Agency for Education: here
Comprised of: HTML, CSS, Sitemap, Breadcrumbs, Print-friendly, User-friendly and embedded HTML elements
Course: Actionscript in Flash I, 15 ECTS points
Date: Jan 20th, 2012
Type: Single course
COURSE OBJECTIVES
The student should be able to:
- use the Flash tool to develop interactive web content
- create dynamic interfaces, animations and simple games in Flash
- grasp basic concepts and techniques regarding ActionScript 3.0
CONTENTS
The course includes the production of interactive Flash applications and consists of a series independent practical exercises in ActionScript and Flash. The exercises are supplemented with a consolidates the terminology and the theoretical foundations. The exercises cover include: drawing tools and timeline metaphor in Flash. Also included programming concepts such as variables, functions, flow control, events, array, timers, input, output, and basic gaming related concepts like interaction, movement, physics and collision detection.
Part 1: Basic concepts, 0.5 ECTS credits
- Learn the basics like variables, data types, operators etc.
Part 2: Functions, 0.5 ECTS credits
- Learn about functions in ActionScript 3.0.
Part 3: MovieClip, 0.5 ECTS credits
- Learn about and what you can do with a MovieClip in ActionScript 3.0.
Part 4: I/O, 0.5 ECTS credits
- Learn about input/output in ActionScript like sound and keyboard/mouse events.
Part 5: Movement, 0.5 ECTS credits
- Learn about movement like making objects move around the screen.
Part 6: Collision, 0.5 ECTS credits
- Learn about collision, make objects react to when they come in contact with other objects and from different angles.
Part 7: Object-oriented programming, 0.5 ECTS credits
- Learn about object-oriented programming in ActionScript 3.0.
Part 8: Game I, 2 ECTS credits
- Create your first game in ActionScript 3.0. The game entails a generic icon that the player can use to navigate the levels and if you want collect items, and kill all enemies before advancing to the next level. The game is called EmpireLevels and can be found under the Portfolio.
Part 9: Game II, 2 ECTS credits
- Create your second game in ActionScript 3.0. Currently, the game entails a single level where you have to defeat enemies on the screen that either stay at a fixed position, and tries to kill you with projectiles, or follows you around the screen. The game is called AlienShooter and can be found under the Portfolio.
GRADING
The student can receive one of the following grading levels:
- Pass with distinction (an A or a B)
- Pass (somewhere between a C and an E)
- Fail (obviously an F)
I got the following grades:
- Part 1: Pass with distinction
- Part 2: Pass
- Part 3: Pass with distinction
- Part 4: Pass
- Part 5: Pass with distinction
- Part 6: Pass with distinction
- Part 7: Pass
- Part 8: Pass with distinction
- Part 9: Pass with distinction
- Final grade: Pass
Note: Swedish National Agency for Education: here
Comprised of: Flash, ActionScript 3.0, Physics, Collision detection and Object-oriented programming in ActionScript
Course: Actionscript in Flash II, 7.5 ECTS points
Date: Sep 20th, 2012
Type: Single course
COURSE OBJECTIVES
The student should be able to:
- have a good knowledge of the Flash platform and the ActionScript 3.0 language
- be able to read and analyze existing code bases and documentation
- with given objectives be able to structure and develop projects
- apply practical troubleshooting
CONTENTS
The course includes a brief refresher of the basics of ActionScript 3.0, including display list, events, timeline, library and stage-metaphor in Flash. This is followed by several smaller gaming projects that students analyze and then complement by applying a general game engine structure, collision detection, external data, debugging techniques and generating graphics and text through code.
Part 1: Code standards, 0.5 ECTS credits
- Continue developing your skills by following the typical code standard with ActionScript 3.0.
Part 2: Debugging, 1 ECTS credits
- Learn about debugging aspects with ActionScript 3.0.
Part 3: Game I, 2 ECTS credits
- Create your third game with ActionScript 3.0. The game entails a cannon that destroys vechiles that are driving on a road. The game is called Alpha Cannon and can be found under the Portfolio.
Part 4: Tweening, 1 ECTS credits
- Introduction of Tweening.
Part 5: Effects, 1 ECTS credits
- Introduction of Effects.
Part 6: Game II, 2 ECTS credits
- Create your fourth game with ActionScript 3.0. The game entails a breakout type game with enhanced aspects like Tweening and Effects. The game is called Alpha Break and can be found under the Portfolio.
GRADING
The student can receive one of the following grading levels:
- Pass (somewhere between a C and an E)
- Fail (obviously an F)
I got the following grades:
- Part 1: Pass
- Part 2: Pass
- Part 3: Pass
- Part 4: Pass
- Part 5: Pass
- Part 6: Pass
- Final grade: Pass
Note: Swedish National Agency for Education: here
Comprised of: Flash, ActionScript 3.0, Physics, Collision detection, OOP, Debugging, Tweening and Effects
Course: Agile System Development, 7.5 ECTS points
Date: Apr 26th, 2012
Type: Single course at Mid Sweden University
COURSE OBJECTIVES
The student should be able to:
- describe the principles of the Agile development methods
- evaluate the usability of a website
- describe the Waterfall model
- perform requirements analysis
- have knowledge of "The Agile manifesto"
- being able to use technologies, principles and methods to streamline development
CONTENTS
The course aims to provide an introduction to the mindset, methods and tools included in the concept of agile system. Agile system is an approach common to a group of so-called agile system development methods, such as Scrum, DSDM and XP. The basic idea behind this is that in a changing world requires developing methods to handle change as part of reality.
Part 1: Two Reports, 3,0 ECTS credits
- The first report should contain a comparison between Agile development and other more traditional system development methods. The report shall also include summary, references and analysis. Extreme programming, Scrum, Waterfall model and Rational Unified Process was chosen for this report. With the second report you are suppose to analyze the content of another report written by someone else, regarding software engineering, found within the institute's library archive.
Part 2: Report, 2,0 ECTS credits
- Create a report with the aspects of Requirements Management, to analyze the process of documenting, analyzing, tracing, prioritizing and agressing on requirements for a project in mind. For this report the student is suppose to choose a project.
Part 3: Report, 2,5 ECTS credits
- Create a report that entails a pre-study and a rough planning of a system development project. For this report the student is suppose to choose a project.
GRADING
The student can receive one of the following grading levels:
- Pass (somewhere between a C and an E)
- Fail (obviously an F)
- A, B, C, D, E, Fx and F
I got the following grades:
- Part 1: Pass
- Part 2: C
- Part 3: B
- Final grade: C
Note: Swedish National Agency for Education: here
Comprised of: Agile development, Scrum, DSDM, XP and Requirements analysis
Course: Web 2.0 with AJAX, 7.5 ECTS points
Date: May 31st, 2012
Type: Single course at Mid Sweden University
COURSE OBJECTIVES
The student should be able to:
- give a general account of the Web's impact on society and individuals
- explain current rules and guidelines for the design of websites
- evaluate the usability of a website
- designing, creating and deploying websites
- get an understanding of Design Patterns
- report on Web 2.0 technologies and how they can be applied to create added value for the users
CONTENTS
The students acquire basic knowledge of design and programming of interactive Web applications with Web 2.0 technology. The course provides basic knowledge about different technologies and methods for Web development.
Part 1: Laboratory work and assignments, 4.5 ECTS credits
- fetch input data and validate with Regex
- use AJAX to gather file data and place the results on the page
- implement the typical hide/unhide functionality in JavaScript
Part 2: Project development, 3 ECTS credits
- develop a page with AJAX, (X)HTML, CSS to register work hours
Part 3: Exam, 0 ECTS credits
- determines the grade of the entire course
GRADING
The student can receive one of the following grading levels:
- Pass with distinction (an A or a B)
- Pass (somewhere between a C and an E)
- Fail (obviously an F)
- A, B, C, D, E, Fx and F
I got the following grades:
- Part 1: Pass
- Part 2: Pass
- Part 3: C
- Final grade: C
Note: Swedish National Agency for Education: here
Comprised of: AJAX, Web 2.0, JavaScript, XML, (X)HTML, CSS, DOM, Design Patterns, Regex, Asynchronous communication, Browser independent code, Validation of code and Class libraries
Course: Web design with JavaScript and DOM, 7.5 ECTS points
Date: Jun 10th, 2012
Type: Single course at Umeå University
COURSE OBJECTIVES
The student should be able to:
- validate input data from a form
- using AJAX to search for information asynchronously through a browser
- using DOM to find and update a tag
CONTENTS
The course aims to provide understanding and practical knowledge of how web pages dynamic behavior can be shaped using JavaScript and the Document Object Model (DOM). The design of web pages can be divided into three aspects: (1) the content and structure, (2) presentation and (3) behavior. In modern, standards-driven web development, we strive towards a separation of these three aspects.
A central feature of the course is the JavaScript programming language that is used as a tool to create dynamic web pages by manipulating and changing a page's DOM model.
The course also introduces the use of modern web development technologies (AJAX) and how such a development can be supported and facilitated by the use of fully developed script library.
Part 1: Input validation, 1 ECTS credits
- fetch input data and validate with Regex
Part 2: Calculating, 2 ECTS credits
- fetch cell data and summarize the total and place this in a specific cell
Part 3: AJAX with JSON, 2 ECTS credits
- use AJAX to gather file data and place the results on the page
Part 4: View and Hide, 2 ECTS credits
- implement the typical hide/unhide functionality in JavaScript
GRADING
The student can receive one of the following grading levels:
- Pass with distinction (an A or a B)
- Pass (somewhere between a C and an E)
- Fail (obviously an F)
I got the following grades:
- Part 1: Pass
- Part 2: Pass
- Part 3: Pass
- Part 4: Pass with distinction
- Final grade: Pass with distinction
Note: Swedish National Agency for Education: here
Comprised of: JavaScript, DOM, Prototype, AJAX, JSON, (X)HTML, CSS and Regular Expressions
Course: Data Management, 0 ECTS points
Date: Mar 17th, 2018
Type: Single course
Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
Note: Swedish National Agency for Education: here
Comprised of: Lorem ipsum, Lorem ipsum, Lorem ipsum, Lorem ipsum, Lorem ipsum
Course: Software Analysis and Design, 0 ECTS points
Date: Jun 2nd, 2018
Type: Single course
Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
Note: Swedish National Agency for Education: here
Comprised of: Lorem ipsum, Lorem ipsum, Lorem ipsum, Lorem ipsum, Lorem ipsum
Duration: 2018 - UFN
Keywords: Java 8, IntelliJ, Git, Test Driven Development (TDD), VirtualBox, Maven, Jenkins, Vagrant, Docker Toolbox, Cygwin, KeyStore Explorer, Jira, Notepad++
Duration: 2016 - 2018
Keywords: Agile development (Scrum, group of 6), C++, XML, Eclipse, Google Mock, Linux, NoMachine, Hansoft and PuTTY
Duration: 2015 - 2015
Keywords: WordPress, PHP, HTML5, CSS3, Aurelia, Node.js, Bootstrap, Gulp, NPM, JSPM, Git, GitLab, Vim and Google Maps
Duration: 2015 - 2015
Keywords: PHP, HTML5, CSS3, JavaScript, File management, Responsive design, CanvasJS and Agile development with Scrum
Duration: 2015 - 2015
Keywords: Agile development (Scrum, group of 5), Java, XML, SoapUI, JUnit, Mocktesting, Git, POJO, Groovy, SQL Developer, SQLPlus, Gradle, Ant, Bash scripting and Jenkins/Linux (server activities)
Employeer: Cloopio AB
Duration: 2013 - 2014
Keywords: PHP, HTML5, CSS3, OOP, MySQL and PHPFox
Duration: 2009 - 2010
Keywords: Phone interviewing
Position: Consultant
Duration: Jan 29th, 2018 - UFN
Type: Roving official
I will be directly undertaking a permanent employment at Annevo Development AB to one of their largest clients. I will be developing code in Java with security and certifications in mind. It looks like I will be doing Test Driven Development (TDD). It sounds really interesting! =o]
Comprised of: Java 8, IntelliJ, Git, Test Driven Development (TDD), VirtualBox, Maven, Jenkins, Vagrant, Docker Toolbox, Cygwin, KeyStore Explorer, Jira, Notepad++
Position: Consultant
Duration: Aug 15th, 2016 - Jan 26th, 2018
Type: Permanent employment
I was undertaking a permanent employment at Sigma IT Consulting in Gothenburg, Sweden. The primary assignment that I was tasked with, during this period, was to a large company located in Gothenburg. I was sitting in the local Sigma office, with six other developers, while performing my duties. I had a probationary employment at the beginning, which was continued into a permanent after six months.
Duties included:
Comprised of: Agile development (Scrum, group of 6), C++, XML, Eclipse, Google Mock, Linux, NoMachine, Hansoft and PuTTY
Position: Consultant
Duration: Oct 1st, 2015 - Dec 31st, 2015
Type: Probationary
I was undertaking a probationary based employment during a three month period at HiQ Karlskrona AB in Karlskrona, Sweden. Due to a lack of assignments I had to leave this position as of new years (originally it was a six month probationary).
Duties included:
Comprised of: WordPress, PHP, HTML5, CSS3, Aurelia, Node.js, Bootstrap, Gulp, NPM, JSPM, Git, GitLab, Vim and Google Maps
Position: Student, Web Developer
Duration: Sep 28th, 2015 - Dec 6th, 2015
Type: Student project
I was assigned to a real customer during one of the project courses at Blekinge Institute of Technology, and the project entailed to create a website that would display the energy output from the solarpanels found at the grounds of the institute. More about this project can be found under the portfolio and Innomech 2.
The company is no longer active!
Duties included:
Comprised of: PHP, HTML5, CSS3, JavaScript, File management, Responsive design, CanvasJS and Agile development with Scrum
Position: System Developer
Duration: Feb 16th, 2015 - Sep 30th, 2015
Type: Roving official
I was undertaking a project based employment during an eight month period at Ericsson Telecom AB in Karlskrona, Sweden. I was recruited by Experis IT Sweden , with four other developers.
Duties included:
Comprised of: Agile development (Scrum, group of 5), Java, XML, SoapUI, JUnit, Mocktesting, Git, POJO, Groovy, SQL Developer, SQLPlus, Gradle, Ant, Bash scripting and Jenkins/Linux (server activities)
Employeer: Cloopio AB
Position: Web Developer
Duration: Dec 1st, 2013 - Dec 1st, 2014
Type: Project employment
I was tasked with creating the Zulinda project for this startup company. After that project I was also tasked to get an understanding of the Social Networking Service called PHPFox.
The company is no longer active!
Duties included:
Comprised of: PHP, HTML5, CSS3, OOP, MySQL and PHPFox
Position: Market Researcher
Duration: Jul 1st, 2009 - Apr 30th, 2010
Type: Hourly employment
I worked as an interviewer, for a variety of clients, I mostly interviewed people in my native tongue but I really enjoyed it when I got to interview foreign people, with the beautiful english language!
Note: Between the years 2010 and 2013, I worked for another seven months, but with a month or so between each project.
Comprised of: Phone interviewing
Name: Java Test
Date: Jun 15th, 2018
Score: 21 of 30
Test name: Java Test
Test type: Multiple choices, coding analysis, OOP and Java theory
Overall score: 21 points
Total score: 30 points
Rating: 1191/1329 (Excellent)
Elapsed time: ~29 minutes
Name: Java Test
Date: Dec 19th, 2017
Score: 18 of 30
Test name: Java Test
Test type: Multiple choices, coding analysis, OOP and Java theory
Overall score: 18 points
Total score: 30 points
Rating: 1096/1329 (Excellent)
Elapsed time: ~42 minutes
Agent: Mensa
Name: Mensa IQ test
Date: May 6th, 2016
Score: 112
Attempt #1
Name: Provtest
Type: Multiple choices of figures
Date: May 6th, 2016
Score: 112 points
Time: 10 minutes
Size: 24 questions
Site: Mensa.se
Based on current classifications found on Wikipedia, the IQ value of 112 suggests High Average intelligence.
Name: Phone list
Date: Mar 9th, 2016 - Mar 10th, 2016
Score: 2.76
Test name: Phone list
Test type: PHP coding
Script runtime: 2.76 seconds
Script time limit: 4 seconds
Elapsed time: ~2 days (between first attempt until server accepted)
The Phone list assignment was about determining if a number can be found from the beginning of other numbers. This has a huge impact for example if you try to call the 911 number. Since this is an emergency number there can not be any private numbers which start with 911 like 91125426. It was noted that leading zeros in a phone number are significant, e.g., “0911” is a different phone number than “911”.
The script for solving the assignment, comments not included, contained thirtynine (39) lines of code.
According to the test results my PHP script was able to complete the five test cases during 2.76 seconds (four out of five test cases are unknown to the developer). You had a total of 4 seconds for all test cases to pass, otherwise the test server would end prematurely.
It took me fourteen (14) attempts before the test server accepted my code and the five test cases passed (four unknown).
Name: Ladder
Date: Mar 8th, 2016
Score: 0.01
Test name: Ladder
Test type: PHP coding and problem solving with mathematics
Script runtime: 0.01 seconds
Script time limit: 1 second
Elapsed time: 6 minutes (between first attempt until server accepted)
The Ladder assignment was about solving a problem regarding Pythagorean theorem.
I was suppose to calculate the hypotenuse by having a known angle and a known edge. By the usage of the tan and the cos functions, and the mystery function required for solving this assignment (since others might do the same assignment I'm not gonna divulge what function was required and for what reason), I was able to complete the assignment kinda quickly.
The script for solving the assignment, comments not included, contained six (6) lines of code.
According to the test results my PHP script was able to complete the five test cases during 0.01 seconds (four out of five test cases are unknown to the developer). You had a total of 1 second for all test cases to pass, otherwise the test server would end prematurely.
It took me four (4) attempts before the test server accepted my code and the five test cases passed (four unknown).
Name: Javascript Test
Date: Feb 26th, 2016
Score: 27 of 30
Test name: Javascript Test
Test type: Multiple choices, coding analysis, JavaScript theory
Overall score: 27 points
Total score: 30 points
Elapsed time: ~23 minutes
Name: PHP Test
Date: Feb 25th, 2016
Score: 20 of 30
Test name: PHP Test
Test type: Multiple choices, coding analysis, OOP and PHP theory
Overall score: 20 points
Total score: 30 points
Elapsed time: ~26 minutes
Name: One Assessment
Date: Jan 22nd, 2016
Score: 582 of 787
Test: Leveled Literacy Intervention (LLI)
Overall score: 582 points
Total score: 787 points
Elapsed time: <30 minutes
Level: Vantage or upper intermediate (level 8)
General
You scored 582 out of a total possible 787 points. The placement levels for this test range from Basic Level to Level 10. Your score places you in Level 8.
Although learners at Level 8 make some mistakes, they are generally comprehensible discussing a wide range of topics. They can understand the main ideas of authentic English texts on familiar topics. They can understand presentations and discussions in their areas of expertise.
Note: Your Common European Framework (CEFR) level equivalent is B2 (vantage or upper intermediate).
Overall results
Listening: ~8.7 out of 10
Reading: ~8.3 out of 10
Listening results (max 15 min)
Long Conversations: ~9.8 out of 10
Short Conversations: ~9.5 out of 10
Describing Pictures: ~9.3 out of 10
Understanding Questions: 0 out of 10
You did particularly well on:
‒ Long Conversations
‒ Short Conversations
‒ Describing Pictures
You had problems with:
‒ Understanding Questions
Reading results (max 15 min)
Understanding Pronouns: ~9.9 out of 10
Understanding the Main Ideas: ~8.3 out of 10
Vocabulary: ~7.1 out of 10
You did particularly well on:
‒ Understanding Pronouns
You had problems with:
‒ Vocabulary
Note: All result values are an estimate based on the graphs that are displayed by Pearson.com, where decimal values for the bars are not given.
Name: C# and ASP.NET
Date: Dec 17th, 2015
Score: 21 of 30
Test name: C# and ASP.NET
Test type: Multiple choices, coding analysis and .NET / C# theory
Overall score: 21 points
Total score: 30 points
Elapsed time: ~20 minutes
Name: JavaScript
Date: Dec 17th, 2015
Score: 20 of 30
Test name: JavaScript
Test type: Multiple choices, coding analysis and JavaScript theory
Overall score: 20 points
Total score: 30 points
Elapsed time: ~20 minutes
Name: Java 6
Date: Feb 5th, 2015
Score: 3.25 of 5.00
Test name: Java 6
Overall score: 3.25
Total score: 5.00
Test type: Multiple choices, coding analysis, OOP and Java theory
Elapsed time: 55 minutes and 49 seconds
Proficiency level: Proficient
Percentile: Scored higher than 73% of previous examinees.
Demonstrates a solid understanding of core concepts within this topic. Appears capable of working on most projects in this area with moderate assistance. May require some initial assistance with advanced concepts, however.
Software engineering
Design patterns
Object-oriented programming
Software
Runtime environment
Database technology
Web Services
Software development
Repositories
Testing
Framework
Linguistics
Data serialization technology
Distributed streaming platform
Data visualization technology
Under the following pages you can find the different categories of expertise. When it comes to the grading of each skill, it's really hard to make it fair across the board. There are many factors which affect my grading, from my point of view of course.
The summarization bars are generated by calculating the average of each category.
A short description, of what I perceive each level actually entails, are found under the following pages.
As of 2016, when I started working for Sigma IT Consulting, I've come to adopt a new grading tree for the following skills.
The skills are summarized in a five level grading range, where the ranges are as follows:
1: Some knowledge (beginner)
2: Basic knowledge (basic)
3: Good knowledge (good)
4: Very good knowledge (advance)
5: Professional (expert) *
* Nobody is 100% at anything, there are always something you haven't tried! Dude, be realistic! You too, ma'am!
PHP, JSON, XML, UML, Android development, HTML5, Responsive Web Design (RWD)
HTML, CSS
JavaScript, AJAX, Representational State Transfer , CSS3
Some knowledge (beginner): You know but have never worked with this competence.
Something that downgrades my perceived skill level is time. There are things that I have not worked with for a long time, I understand in theory but I could have forgotten the practical aspect of making the code. Design Patterns is a good example of this. As I love the Observer pattern, I would not be able to do the code for the others, mentioned during the course, unless I have a book or internet at hand.
Another thing that could keep this topic on a low level is the amount of times I've used this language, framework or tool. AJAX and Gulp are two good examples of this. They are things that you use once per project and then it could take months before you touch it again.
Strategy Pattern, Observer Pattern
Design Patterns
Basic knowledge (basic): You have a good basis to stand on and could start to work with this competence within reasonable time and with some training.
Many would argue to not summarize a developer's skills in this way, but I just wanted to display my skill tree in an artistic way rather than to just write them up and down.
However, I wanna clarify that if I write that I'm advance in a topic that does not mean I'm advance in ALL the aspects of that field.
C++, OOP
Java
Good knowledge (good): You can start to work independently with this competence now.
Another factor which I believe makes a huge difference is the amount of group projects, or projects done through the corporate world. I believe I could increase a few topics on these pages if I worked more in group. As well as any team leading positions and assignments.
JRE
Node.js
Professional (expert): You are a true expert in this competence area.
I currently have no idea what it takes at this level. Ask me again in ten years, as I can not leave a description at this time!
MySQL
MS SQL
Some knowledge (beginner): You know but have never worked with this competence.
Something that downgrades my perceived skill level is time. There are things that I have not worked with for a long time, I understand in theory but I could have forgotten the practical aspect of making the code. Design Patterns is a good example of this. As I love the Observer pattern, I would not be able to do the code for the others, mentioned during the course, unless I have a book or internet at hand.
Another thing that could keep this topic on a low level is the amount of times I've used this language, framework or tool. AJAX and Gulp are two good examples of this. They are things that you use once per project and then it could take months before you touch it again.
REST-API
Basic knowledge (basic): You have a good basis to stand on and could start to work with this competence within reasonable time and with some training.
Many would argue to not summarize a developer's skills in this way, but I just wanted to display my skill tree in an artistic way rather than to just write them up and down.
However, I wanna clarify that if I write that I'm advance in a topic that does not mean I'm advance in ALL the aspects of that field.
Rational Unified Process (RUP)
Scrum, Agile software development, Front-End, Back-End, Test-driven development (TDD)
Good knowledge (good): You can start to work independently with this competence now.
Another factor which I believe makes a huge difference is the amount of group projects, or projects done through the corporate world. I believe I could increase a few topics on these pages if I worked more in group. As well as any team leading positions and assignments.
Git
GitHub, GitLab
Very good knowledge (advance): You already have a high level of work experience within this competence.
I believe that I can research, develop, test and support whatever I put my mind on. More or less.
Restlet
Bootstrap
Some knowledge (beginner): You know but have never worked with this competence.
Something that downgrades my perceived skill level is time. There are things that I have not worked with for a long time, I understand in theory but I could have forgotten the practical aspect of making the code. Design Patterns is a good example of this. As I love the Observer pattern, I would not be able to do the code for the others, mentioned during the course, unless I have a book or internet at hand.
Another thing that could keep this topic on a low level is the amount of times I've used this language, framework or tool. AJAX and Gulp are two good examples of this. They are things that you use once per project and then it could take months before you touch it again.
Swedish, English
Spanish
Basic knowledge (basic): You have a good basis to stand on and could start to work with this competence within reasonable time and with some training.
Many would argue to not summarize a developer's skills in this way, but I just wanted to display my skill tree in an artistic way rather than to just write them up and down.
However, I wanna clarify that if I write that I'm advance in a topic that does not mean I'm advance in ALL the aspects of that field.
Apache Avro
Good knowledge (good): You can start to work independently with this competence now.
Another factor which I believe makes a huge difference is the amount of group projects, or projects done through the corporate world. I believe I could increase a few topics on these pages if I worked more in group. As well as any team leading positions and assignments.
Apache Kafka
Very good knowledge (advance): You already have a high level of work experience within this competence.
I believe that I can research, develop, test and support whatever I put my mind on. More or less.
Grafana
Professional (expert): You are a true expert in this competence area.
I currently have no idea what it takes at this level. Ask me again in ten years, as I can not leave a description at this time!
Date: May 23rd, 2017
Category: Oracle Certified Associate (OCA)
Name: Java SE 8 Programmer
Date: May 23rd, 2017
Category: Oracle Certified Associate (OCA)
Exam name: Java SE 8 Programmer I
Exam number: 1Z0-808
Exam type: Single/multiple choices, coding analysis and Java theory
Performed at: Cornerstone Sweden AB, Gothenburg, Sweden
Duration: 150 minutes
Amount: 70 questions
Minimum passing score: 65%
Date: Jan 26th, 2018
Summary: Richard's work has been characterized by an enthusiasm, sense of responsibility, and a drive to solve his tasks.
Date: Sep 29th, 2015
Summary: Richard has shown great interest in software development and in particular in the fields of Verification and Test.
Author: Per Karlsson, Business Unit Manager
Date: Jan 26th, 2018
Richard Hellstrand has been a member of an agile team for Sigma IT Consulting during the period August 15th, 2016 until January 26th, 2018.
During his time as a consultant, Richard has commissioned Sigma's commitment to Ericsson. He was placed in one of our scrum teams as a C++ developer. The duties entailed new development, documentation and correction of bugs.
Richard, who ends his employment at his own request, has proven skilled in his mission and performed his duties to our full satisfaction. His work has been characterized by an enthusiasm, sense of responsibility, and a drive to solve his tasks.
Having been loyal and showing good cooperation, he has been well-liked and appreciated by both customers and colleagues. I can therefore leave him with my best recommendations and I wish him all the best in the future.
Note: This testimonial was translated by Richard and the original, can be
given on request. Some changes have been made to make it compact and minor
grammar changes might have been made since a direct word-by-word translation
would not make much sense.
Author: Elias Blomqvist, R&D Manager
Date: Sep 29th, 2015
Richard Hellstrand has been a member of an agile team in collaboration with Experis AB during the period February 16th, 2015 until September 30th, 2015.
The mission at Ericsson AB, under the Planning & Fulfillment department, was to develop a software component, as well as performing basic function testing and certain system analysis. Richard has shown great interest in software development and in particular in the fields of Verification and Test.
We would like to thank Richard for his time with us and wish him the best of luck in his future endeavours.
Note: This testimonial was translated by Richard and the original, can be
given on request. Some changes have been made to make it compact and minor
grammar changes might have been made since a direct word-by-word translation
would not make much sense.