WSU Blog #1 for CS343

http://creately.com/blog/diagrams/uml-diagram-types-examples/

This blog entry teaches us a great deal about the proper uses of UML Diagramming. It has a large number of concise examples that users can learn about. 

I am using Create.ly for my UML app and this is about this application. I chose this blog because it provided tutorials regarding the same types of diagrams we are learning it class. The methods used in the article vary slightly from the marterial in our class and I appreciate the different approaches to the same problems. 

 

From the blog Rick W Phillips - CS@Worcester by rickwphillips and used with permission of the author. All other rights reserved by the author.

Data Science

This podcast is about the field of Data Science but also talked about team building.  I chose this podcast because I saw that she(Angela Bassa) was the Director of Data Science at iRobot and because I am using iRobot’s Create on my robotics class. There was a part in the podcast that I thought was funny but is important when it comes to team building. Angela said that “you cannot have a team full of  unicorns(programming gods basically)”. That was a pretty bold statement. She said that it will take time to get a team full of unicorns and a lot of resources. Then she referenced the “super chickens” who were a group of only the best chicken, but what ends up happening is they killed each other.  I learned that balance is important in everything that we do.

Data Science with Angela Bassa

From the blog cs-wsu – Site Title by csrenz and used with permission of the author. All other rights reserved by the author.

9/18/2017 — 1st Assignment Blog Post

http://urosv.blogspot.com/2008/03/boundary-value-analysis-bva.html
Staying current with the current course topic and keeping things as simple as possible, this blog post gives some interesting examples of boundary value testing that I believe are helpful for understanding the course material on boundary value testing.
Boundary value testing is a simple concept of error checking range functions at the boundary. As stated in the article, it is one of the most important techniques for test case designs that every software developer will come across. It is basically a black box testing technique where knowledge of the source code is not required.
Boundary value testing checks for off-by-one error, a common mistake in computer programming. The most common off-by-one error are the following:
misplacing < with with >=.
Under indexing or exceeding the limit of the storage space of an array
incrementing and decrementing variables that are not needed or failing to do so when needed.
loop conditionals
The simplest example given is that of N apples assembled in a straight line. Each apple is a assigned a number corresponding to its position. Taking all apple from p to q, including the two variables, q-p apples will be off by one, whereas q-p+1 will include all of the apples needed in counting.
Another example given is a function which colors rectangles with coordinates of the upper left and bottom right points. The code given are as follows:

if (points > 90) grade = ‘A’;
if (points > 80 && points 70 && points 60 && points 50 && points < 60) grade = 'E';
if (points < 50) grade = 'F';

This a a typical off-by-one error. The error that needs correction is the < sign which has to be <=. The error is that the last column and row of the rectangle is not colored in.
The final example are simply boundary ranges, say from 1-10. Some good test cases are 1 and 10 or 0 and 11, or perhaps 2 and 9. This is a typical example that is much like the exercises done in class or on the hw assignments.
This blog post gives a variety of interesting examples of a simple concept in boundary value testing that is off-by one error that was not shown in the examples in class or on the hw assignment that I think are worth noting for any entry level programmer. It gives a brief overview of different test cases that any programmer should try to avoid. It gives a decent overview of boundary value testing which is a simple concept of testing boundary values of functions that takes in ranges of independent variables. Those are the reasons why I choose this post for last week’s blog post assignments.

From the blog CS@Worcester – Site Title by myxuanonline and used with permission of the author. All other rights reserved by the author.

Summary of Agile Modeling

After being exposed to agile development last semester, more specifically Scrum, I thought it would be interesting to continue my learning in the topic. Seeing as I am now studying software design principles, agile modeling seems like a great place to start.

This is why I chose an article titled “An Introduction to Agile Modeling” which gives a breakdown on what Agile Modeling (AM) really is and how to apply it to software development using the best practices. Basically AM is a collection of values, principles, and practices which can be applied to any development project in an effective and lightweight manner. It is meant to be applied to base processes like Rational Unified Process or Extreme Programming and frameworks like Scrum. The idea is that AM can be tailored to any developer’s needs.

The values AM is based on:

Communication: All project stakeholders need to be able to openly converse throughout a projects life-cycle.

Simplicity: Always focus and aim for the simplest solution that meets all requirements and solves all problems.

Feedback: Get feedback often and early on the work that is done to course correct and create project transparency.

Courage: Make and stick to your decisions.

Humility: You won’t know everything, others can add value to the project.

The principles AM is based on:

The importance of assuming simplicity. The simplest solution is always best.

Embrace change when working because requirements WILL change.

Strive for rapid feedback to enable the agility of incremental changes.

Model with purpose, if you don’t why then you shouldn’t be doing it.

There’s more than one way to model and be correct. Content > Representation

Open communication is crucial for teamwork.

Always focus on the quality of work. The product owners should be proud and refactoring down the road should be easy.

After reading this article I think the above values and principles make a solid foundation when it comes to software modeling. While I sometimes think these things are obvious, it’s important to conduct yourself in accordance with a set of guidelines and code of conduct. Most of the ideas behind Agile Modeling are similar to the books I’ve read by Robert Martin aka Uncle Bob. I think the most important part of AM is the constant communication between all stakeholders. Requirements are always bound to shift and change priority so feedback and iterative changes are crucial for AM to be effective. The only thing I did not agree with in the article was that content is more important than representation. I think you could have great content but if you are not effective at representing it then what’s the point? In my opinion they are equals.

In conclusion I plan to read more into Agile Modeling and how I can apply it to my own projects. Moving forward I am going to tailor my software modeling to follow the best practices of AM as I believe it will create a strong foundation of design principles.

The following figure gives an idea of Agile Model Driven Development (AMDD).

From the blog CS@Worcester – Software Development Blog by dcafferky and used with permission of the author. All other rights reserved by the author.

Why I decided to become a Computer Scientist at Worcester State University

Edit: 1,117 words in this post, 6 minute read time

Hello reader,

So, this post doesn’t really have anything to do with my classes at WSU. Rather, I just wanted to kind of talk openly about some of the reasons or things that drove me to become a student at Worcester State, specifically one in Computer Science.
Why did I choose to go to this school in particular? And what are my favorite things when it comes to computers? I hope to cover questions like that over the span of this post.

I’ll have to warn you, most posts I don’t worry about length, but this one may be a little bit of a long read. I’ll post the word count at the top of this update so you can get a gauge at how long it may be for a read to you.

 

So, lets start with this question: Why did I choose Worcester State? Well, I had applied to two colleges first and then planned to do a few others in case I couldn’t make it in. The two I picked — Framingham State (the first one that came to my mind initially) and then Worcester. I got a response back from Worcester State and from Framingham, a little later after WSU’s. I was accepted at WSU!

And I was denied from Framingham! I felt it was very funny. I ended up very glad that I was denied there — not to say I by any means dislike Framingham State, I just love the open feel to WSU. The variety of the people you see there is astonishing, and beautiful, the architecture and professors all very kindly and informative. The only complaint I truly have is with the God Awful parking!

Haha. Besides that one gripe, I very much enjoy spending time at Worcester State.

This leads me to my next question to answer: Why did I pick Computer Science, specifically a degree focused in Programming? There is a lot I can say in response to that inquiry.

First off, I have ALWAYS loved computers and technology. I remember as a child once having a flip phone and then having a phone with a pull out keyboard — these devices fascinated me to no end, and all they could do was very poorly connect to some internet related features and write texts/very short memos! I loved the N64 and the PS1 and 2. I hadn’t had my first laptop until I was about 10-13? I can’t recall for sure, but I got a great look at the different kinds of technology over the years.

Now I have a custom built desktop computer (most parts are aging by now but I can still run my massive library of games with no issue) and a good laptop (with a pretty cruddy screen). I remember when I used to dream of such powerful machines. I remember my first laptop and how poorly it ran Minecraft and how I could only run a few games at the lowest settings.

We are all so spoiled! Compared to not even 10 years ago, technology has grown to become so strong and immersive that, sometimes we can even find ourselves disconnected from others due to it.

I remember spending days on end playing games as a teen, escaping my own emotional and mental hell in another landscape that, to an onlooker, would appear hellish itself. But gaming and technology helped aid me through some really horrible times.

I know, I know — “Sean, answer the question you put out there.” I chose to go for a Computer Science degree because this will allow me to work in a field that I love and because through PC gaming, I was able to get into other things such as Programming and Writing and computer aided artwork. Me being a nerd for games led to me adoring technology and the times it brings me closer to others and closer to becoming the person I want to be.

Honestly, say what you will about us all sometimes not being able to interact socially as easily as people in the past may have, at least in person, but we can become so interconnected through our Technology and I think it will lead to many great things in the future, despite the negativity going on in the world today. We should use advancements in all kinds of sciences to better and to help longevity and health even if we have already used it for very terrible things as well.

*Sigh* That all is a long block of text. I won’t carry on for too much longer, but there is oooone final question I would like to state and answer: What are some of my favorite things about computers and technology as a whole? Well, there are many things. The fact that I can wear a watch that keeps track of my heartbeat and steps taken. The fact I can now message my friends nearly anywhere and at nearly any time. The fact that there is so much information and content here that History written about these times will be incredibly accurate. The fact that we all can keep our personal history so much easier than we could in the past, through the use of social media and storage devices.

The memories I’ve gotten to create with friends, the new friends I’ve been able to make, the opportunities that have come my way since all those years ago… I am so much different now than I used to be, when I was a horribly depressed kid/teen and didn’t care if I lived or died. I feel like I have a purpose, to put good positive vibes and information out there, and I feel like I can do that so much easier using technology. I can fix computers, hardware and software. I can program in a multitude of languages. Technology today allows us the ability to learn so much more and to become a much better person too, its all about how you use it.

Thank you so so very much for reading this post! I appreciate you reading this very much. Leave a comment answering some of those past questions if you want to as well! (If applicable, at least XD )

I’m down to responding or reading a nice or informative, thought out comment. I enjoy hearing other peoples opinions on these kinds of things. But besides that, I will let you go — this post is getting past a thousand words, so I feel like I’ve written enough!

I hope what I wrote was enjoyable to read, and maybe you can relate to some things. In the mean time, have a wonderful day, afternoon or night, and I will see you again with my next post!

From the blog CS@Worcester – Sean Raleigh&#039;s CS Blog by sraleigh62 and used with permission of the author. All other rights reserved by the author.

Robotics: Post 2

Hello, reader.

So today is a day after I was in class, but now that I’ve got some rest and have taken care of the other chores around the house, it’s about time I get to writing again about how my Robotics class has gone.

Yesterday afternoon, me, Urooj and Braxton attended our Robotics class after having had a reading assignment along with written summaries of the various vehicles described in our class book. If I haven’t talked about the book in my first post, I’ll take time to edit it in so you can check it out if you want.

Anyways, similarly to how our first class went, we had another lab to complete. This time around, we were tasked with manually attaching light sensors to a robot through any input between 0-8 on the component that downloads and stores the C code from the computer we write it on. I will edit this blog post within a week to take some photos of the device and show and explain in better detail as to how we hook everything up.

So, we get the light sensors plugged in, and our Professor states that we need to surround the light sensors with a straw, black tape surrounding the straw to keep light from the sides of the sensors from throwing them off too much, and then to attach the light sensors using double sided tape about 45 degrees away from the middlemost point of the circular iRobot-create. So, imagine a circle with a line going from the center of the circle to the topmost portion of the circle, then two lines slightly apart from it going off in either direction.

The light sensors, positioned in such a way, would be able to more accurately track light levels along with the minor modifications we made to it. The straw and tape combo made for a useful casing around the sensors themselves.


So, now we have the iRobot-create set up with light sensors attached through the device that contains the code and is simultaneously connected to the iRobot itself. This provides the iRobot with the ability to intelligently sense varying light levels. Now, we begin to write the code.

I’m afraid I cannot go into super in-depth detail about it now – however, I will just go over the overall experience of programming the robot in C. It was up to us to set up the core components of the code including any variables we needed to use to keep track of things and whileif statements to cause the robot to move. We did this rather quickly.

Initially we kind of screwed up and it just kept going forward. This was because we had it constantly run a command to make the iRobot-create move forward instead of running the other nested if loops. So, we removed this command and made an if loop for it.

You may be wondering, “If loops, while loops, schmile loops. I’m not understanding what you are talking about.” If so, that is completely fine. I will try and explain the outline of our code here onward.



The General Design
:

So, the code begins to run. It has the variables for detecting the light levels accounted for and it knows which ports the light sensors are plugged into. Therefore, we can gain a sense of how bright it is in front of the robot and a little to its sides. After we got this done, we started setting up the iRobot to move forward on its own. We fumbled with this at first, but then realized why it would only constantly move forward – slightly flawed coding.

After we fixed this small issue, we moved on to creating the while loop, which contained all the if loops; it also had the ability to cancel out of the while loop once certain criteria were fulfilled. The criteria we chose was for the iRobot to stop moving once the lightbulb placed in front of it got too bright for its liking. We enabled it to do this by measuring how bright the light was on each light sensor – if it detected light too far to the right, the left motor would speed up and correct its trajectory; this was the same except vice versa regarding the right-side motor and left side sensor.

Once we figured out how to get it to work, it ran like a beaut’. It ran fast at first trying to find the light source. Then, once the light source was in range, it made sure to correct for its direction and face the light while approaching it. This finally culminated in it stopping within about a foot or so of the bulb. Had we left out the line of code to stop the iRobot, it would have simply kept on going forward, even possibly damaging the light bulb or itself.


Many seemingly trivial things in programming can cause big issues, so it’s all about caring about what you do and taking it easy so you don’t get frustrated and give up. You never want to do a rush job when it comes to coding as every day programming becomes increasingly ingrained into our lives. Anyways, I do hope you enjoyed reading about our day working with the robot. While we haven’t completed the last bits of programming needed for the other variations of what the bot should do, we will be completely capable of tackling it come next week. Have a nice rest of your day, and I will see you around for next time!

From the blog CS@Worcester – Sean Raleigh&#039;s CS Blog by sraleigh62 and used with permission of the author. All other rights reserved by the author.

Blog Introduction

This is the first post of my blog. I’m currently taking “Software Construction, Design, and Architecture.”

From the blog CS@Worcester – Andy Pham by apham1 and used with permission of the author. All other rights reserved by the author.

Blog Introduction

This is the first post of my blog. I’m currently taking “Software Construction, Design, and Architecture.”

From the blog CS@Worcester – Andy Pham by apham1 and used with permission of the author. All other rights reserved by the author.

What’s Up World!

First Post of the blog! Exciting stuff.

The main focus for now is going to be Quality Assurance and Software Testing. The faulty functions in question are hopefully not going to be ones I myself create.

The picture is actually really symbolic, by the way. Let’s see if the Anteater symbolizes me and the blog or if the glass does.

From the blog CS@Worcester – Fu&#039;s Faulty Functions by fymeri and used with permission of the author. All other rights reserved by the author.

Introductory

Hey everybody, my name is Dexter Canton. I am currently a junior at Worcester State University majoring in computer science with a minor in business, Im looking forward to sharing my posts with you all.

From the blog CS@Worcester – Dcanton Blog by dcantonblog and used with permission of the author. All other rights reserved by the author.