Welcome to my Website/Blog

Well, hello dear reader. You’ve come across my little section of the Internet.

To start, my name is Sean M. Raleigh. I am a Computer Science Programming major at Worcester State University, a beautiful campus with  hardworking, smart professors and kindly students.

In this blog, I am going to post solely work related content, mainly at first just to keep up with my Robotics class, but other content related to my skills and accomplishments will show up here as well. I will review various methods for programming, working with robotics, and other Computer Science related materials. I hope to use this Blog for the purpose of education and the sharing of knowledge.

I hope you find my site pleasing to the eye and enjoyable to read. Have a great morning, afternoon or night, and I look forward to writing more!

Until we meet again, dear reader,

Sean Raleigh; CS WSU Student.


Image Credit: https://static.pexels.com — used for the purpose of review and education

Software Quality Assurance & Testing (SQAT Post 1)

Hello, Reader, and welcome back to my Computer Science blog. This section of my blog will be dedicated to my class on (you guessed it) the quality of Software and how to assess and manage it.

This post only really serves as an introduction to this section. Our first class today focused on inter-team dynamics and working together to complete Models (a collection of questions related to the days topic.)

I look forward to writing more soon!


Software Development: Mac / Windows / Linux Applications

Hello again, Reader.

There are many, many computers out there. Each of them have either some sort of Windows, MacOS, or Linux distribution loaded onto their Hard Disks / Solid State Drives. As such, software designed for Windows may not work on Mac or Ubuntu (an Operating system built utilizing Linux.) It goes other ways, as well: some software is designed specifically for Apple systems, some for Ubuntu, and these applications just won’t work anywhere else other than on their native operating systems.

In the past, Windows used to be the only operating system with Microsoft Office installed on it. Nowadays, you can install it on Mac and use it online on a plethora of different systems. Some software, like LibreOffice, is cross-platform by default and, while coming packaged with Ubuntu systems, must be downloaded on Windows and Mac systems.

Software on Mac systems, designed for Mac, are just about impossible to run on Windows computers, nor Ubuntu PC’s. I’m thinking of applications such as Garageband, which is a music development suite, or Pages, or Address Book, which just don’t appear on other operating systems.
Overall, Mac applications are -on average- only usable with Mac computers.


In ending, regardless of what Operating system you have, there are applications for every system out there that can get the job done.
I know this was a short post — I’m hoping my next topic can be more interesting / have more to cover in detail.

Until next time,



Software Development: Virus/Antivirus Programs

Hello again, Reader.

Today, I’m covering Antivirus software and the kinds of viruses one can – and should – look out for.


Prior to 1980, antivirus software had not existed where the first kinds of computer viruses were developed. The intent of the first viruses developed, was to reproduce itself indefinitely causing the infected computer major slowdown. The first virus to affect computers outside of a controlled environment was titled the Elk Cloner virus.

Surprisingly, computers affected by this virus were Apple II desktops. Essentially, the virus was developed as a High School kids Prank. It displayed a Poem to the infected users terminal, and would clone itself onto floppy disks inserted and the Boot-sector of the Hard Drive.

In short, this means that the computer affected, and its connected memory devices, would get written over by the program. The program would also write a Signature to the memory device to let itself know that the computer is already infected.


The only way this virus could be fought, without there being Antivirus software already developed, was for the operating system to be rewritten fresh onto the HDD, or for the signature to be produced manually such that the program would choose not to infect the computer (it would believe the computer to be infected already, and the virus would not activate.)

Antivirus programs – at this time – only functioned to disable the reproducing of specific viruses. In the beginning, they also only appeared on specific systems, like Atari computers, or Apple II computers.

Nowadays, there is a wide selection of both free antivirus programs and paid programs. These pieces of modern antiviral software now protect us from all sorts of different viruses and infections that could harm us or our computers.


Now, what are some of the viruses one could come across?

Boot Sector viruses would infect the portions of the hard disk which loaded first. They are now mostly obsolete, as this type of virus was more effective on older hardware.

Web Scripting viruses are harder to track, as they infect content without the user or moderator of that content being notified. This type of virus is script level and usually left in comment fields on videos or as part of a harmful sites programming, for example.

Trojan Horse viruses harm the user by sitting unnoticed on their device, while stealing information behind the users back. This could be Keys that the user presses, to credit card information, and more.

There are many other viruses, as well. Viruses to hijack the homepage and browsing capabilities of a user, viruses to delete important or random files, viruses to automatically send emails from a users address…
However, the antivirus software of today can ease ones worries about their safety online, and most casual computer users will not have to worry about these viruses. If one visits a lot of random, unfiltered websites, or downloads sketchy programs, then the risk of infection would grow dramatically.
If you need an antivirus program, AVG Antivirus is one of the best Free antivirus software out there. For paid software, McAfee and Norton are very well reviewed but cost around $60 for a year subscription (from my knowledge.)

In ending, viruses can and have been very annoying and difficult to deal with throughout the History of Technology, but with proper protection, one does not need to worry nowadays for the safety of their PC.

I hope you’ve enjoyed reading this post, and until next time,

Warm Regards;



Software Development: MS-DOS Software Review

Hi Again: Sean Raleigh here to type more words at you!

Today, my word-typing will have to do with an Operating System that has everything to do with typing and nothing to do with using a mouse!
You guessed it (or, well, read the title…)


So, what does MS-DOS Stand for? It stands for Microsoft Disk Operating System. Software for this Operating System mainly consisted of a lot of text-based applications, but there were rudimentary 2D video games developed for the system.

In fact, the original first person shooter video games became popularized after the release of Wolfenstein and DOOM for DOS. There were other games developed, mainly point and click using the arrow keys instead of a mouse, and others I won’t take the time to go into detail here.


Mainly, however, MS-DOS worked best for Locally stored databases, writing documents, and other kinds of work that depended just about solely on Input and Output.


To end off this post, lets compare MS-DOS with the first release of Windows. The very first release of Windows had a rudimentary yet accessible GUI (graphical user interface.) This meant that the kinds of applications that could be developed for it increased: now, the user could manipulate a full 2D space with more than just one DOS application/light applications.


This would be the start of graphical computing, and more in depth programming which could accomplish much more than the average DOS program.

Next time, I will cover viruses and antivirus programs. Again, I hope you’ve enjoyed reading, and I look forward to continuing this series.


Warm Regards, yours truly,

Sean Raleigh – SMR

Software Development: 1990-Present

Sean Raleigh, here again after a long hiatus.
I was focusing on making up work for my robotics class, and for my Software Construction, Design, and Architecture Class.


When I started writing for this blog, one topic I wanted to cover was how technology has evolved and influenced (throughout its evolution) the development of Software, as a whole.


Circa 1990, Macintosh systems were mostly popularized at home where Windows would find a lot of success in business industries. One of the ways Windows challenged Macintosh systems, was with the release of Windows 3: This version of Windows introduced the multitasking of MS-DOS programs.

Over the years, Memory (in terms of Random Access Memory, and Hard Drive Disc space) began to increase dramatically, along with how quickly CPU’s would run. Initially, we gauged CPU power in Megahertz. Nowadays, CPU’s are one-thousand times (at least) as powerful as CPU’s: we measure modern CPU’s in Gigahertz.

One could guess how this influences the development of software.


In the beginning, software was designed for computers with very small amounts of ram, under-powered CPU’s (by Modern Standards,) lower resolution screens, and many more Impeding factors.

This led to many programs just being text related; however, there WERE graphical capabilities in older computers.

Nowadays, we can have multiple programs each with multiple processes running on the Generic 2018 PC, with no slow down. If one were to try and multitask, using modern applications, on a decade old PC… Well, there would be no luck in that (it probably would freeze, in my experience.)


In essence, Modern PC’s have enabled the creation of more Advanced, Sophisticated pieces of software. With better and better Hardware getting created year by year, one could only imagine how far Software will come.
With the advancement of Hardware comes the Advancement of Software, and sometimes vice versa.

I hope you’ve enjoyed reading this post, and I hope to have a lot more to say in the near future. Until next time;



Simplifying post title for ease of use (Software Construction Design and Architecture.)

Today we are covering the implementation of the singleton program development method. Going over how it works in an example. 

Learned in Java something cannot be abstract and static at the same time.

Classes that extend a Master class get that classes variables and methods to use (or overwrite.)
We are covering how to better implement systems to make the program for assignment one run better.

I don’t see anything else to add to this post, so I conclude thusly.

Robotics: Post 2

Today was quite the step up in complexity for Urooj, Braxton and I. We had to set up our robots with light sensors by attaching them manually. I’ll give a quick runthrough of how we set up the robot, the light sensors, and then I can get to the coding part.

Nevermind, I forgot to work on this earlier so Ill give the shorthand version. We had two light sensors, the light sensor that read the largest amount of brightness drove the robot either towards or away from the light, using its motors.

Software Construction, Design, and Architecture: Post 2

Hello Reader. I’m back here again, ready to cover another day in class.
So, it turns out I’m going to have to modify this and some of my past posts, so that they are grade-able for the class. Otherwise, my posts are still gonna follow the same sort of format, where I just candidly cover everything going on in class, as much as I can.

It’ll include a reflection on the material and I’ll be answering  some questions put forth by my Professor, Dr. Wurst. As for right now, I’m preparing to take on whatever we have to get done for today.

Come to think of it, there is a word count restriction on the posts for the class. I will make separate posts for those questions, specifically.

We are talking about UML Class diagrams today. They are the most commonly used UML diagram. We use these diagrams to put on paper what makes up a software program, from the classes set up within the program, to details about said classes, and then the relationships between classes.

First, you have the class name. Within a box divided into three boxes horizontally, the top box is the class name. Then, you have their properties, second box. Finally, the last box contains methods that the class/other classes (depending on its visibility) can call on to use.


Sorry I havent uploaded this, not going to add onto anymore as of now but just uploading what I wrote.

Lab 3: Obstacle avoidance and Multi-process systems

Before I would like to start, I would like to speak openly here for the intelligent Dr. Wurst, my professor, to ask him something really quick.
Would this blog post count as acceptable for a lab notebook entry? It would be a pleasure and a great convenience if you will accept this!

I will answer all of your questions in the following paragraphs and write about me, Urooj, and Braxtons time working on Lab 3 for Robotics.

Let us begin.
Today, I am working on finishing up our multi-process c program that will have the robot adjust its direction and speed at the same time, thus two processes working in a multi-process system can be observed.

If we had approximately four or so hours straight to spend on this lab, we would have completed it all in one day in my opinion.

But that is fine, now I am back and now I am more than ready to solve some problems!

There begs a question: What will I do first? Well, right here and right now is a start. Keeping steady lab notes and tracking everything I do will be most beneficial for us all in the long run, as we all can learn easily about anything — we must simply have a passion for whatever it may be!

I apologize. I am writing much like a Philosopher. One could say I am a philosopher of technology. With this out of the way however, I would like to actually get down to business. I will now begin [:chuckling:]

I am going to produce a program to read the Sonar Sensor attached to the 0th analog position in the Botball device. After I do this I will begin to track the sensor readings for the following materials and light levels.
If my hypothesis is correct then light levels will not affect the Sonar sensor, as it uses echolocation to sense its surroundings. What a smart device truly!

However if I were to attach light sensors and IR sensors, I could create even more functionality to the robot.  Heck, imagine if I put a camera on the front of the robot to stream to my phone! And a bluetooth keyboard to have the user gain full control of the robot itself.
Goodness, technology endlessly brings me so much interesting new stuff to work with! Okay, I am going to stop writing here now so that I can accomplish the programming for the Botball.

Attempt Number 1: Robot keeps moving forward, stops to check IR readings (sensing left value vs right value.) but fails to adjust course in second function. Layout of functions: First function is the IR reading function, then comes the DRIVE function. The IR reading (and, well, writing as well) function keeps track of the devices input readings and adjusts variables so that the drive function performs as we want it to — to avoid obstacles or turn around if there is no way forward.

Changed motorValue from changing using is equals ( == sign) with = sign. Maybe program will work now. Attempt number 2 will be detailed in the paragraph/s below.

Attempt Number 2:
Attempt 2 was a success!! The robot followed the instructions perfectly this time after setting each analog state (0 and 1 as floating points) and used multiple functions in rapid succession. Time to implement C multi-process capabilities and if this works the robot is all set. Its behavior is to like stimuli and approach it (when it senses more from one IR to the other, it goes towards the stimuli closest.)

Attempt Number 3:

Pre-program test: Using multi-process function in KIPR C programming environment means I might not be able to use the defer method. Initially I would have used this in between processes to defer the need of one process to the need of the other process. Let us try to see how it works.

Post-program test:

Robot functionality lost while using start_process and kill_process. Maybe I should use kill_process in while loop? Next attempt will be below.

Attempt Number 4:
Put the start processes and kill processes before and after with while loop. Did not work. Now attempting to change kill_process(0 and 1) to kill_process(1 and 2). Maybe this will finally work?

Attempt Number 5:
Everything is balls [:tears forever:]

Quality Software Design

Note: I don’t use Emojis in plain text, so I label my reactions a specific way
I denote it the following way as to give the reader a sense of my personal mental thoughts or reactions towards something. It’s kind of like an Emoji… Except its just boring text! [:laughing:]

Sub-note: Apologies for not updating for this class for a few classes. I’m working to get back on track!
We begin today by speaking of good software design. Lets talk about it.

Some qualities of good software design? One quality that well-made software have against poorly-made software is that it shows a large variety of functions and features related to its purpose. Another is the ability to add new features seamlessly. Java allows us to do this throughout its classes. These classes can interact with one another, have many variables and many different methods (or functions.)

Java is a well chosen example of a good software designer, as it allows for easy creation of objects and systems that work together to make one whole large system. It also allows for massive levels of modification and for addition or deletion of content on a whim. It is all up to the programmer!

There are also difficulties to come with the advancements seen in Java. One must learn of its many ins and outs to be able to successfully conjure up oneself a piece of beautiful software!

Lets say we have a player class, and it has methods that pertain to a player of a video game. Then, a character inherits or extends this class, but overrides unnecessary methods within the class. The player class is a interface if its subclass inherits from it, and if a subclass inherits from it, its an interface.

Otherwise, the player class is an abstract class. An abstract class has its subclass extend from it.

In the big picture (according to our professor Dr. Wursts slide) there are two main things to consider: the IS-A relations and the HAS-A relations. The person class is a class. The person class has a method/s and variable/s.

Mainly, today we have been talking a lot about the things we can do in a Java-based system. I know I haven’t been as detailed as my last few posts, but regardless, I hoped you enjoyed the read!
(goodness even the caffeine could not drive me to write well today! [:laughing:] )