Saturday, December 16, 2017

CST 373 Week 8 Scrapbook

Artificial Intelligence Microchips Will Turn Humans Into Zombies, Says Prominent Neuroscientist



Article Summary:

This article details a warning by Mikhail Lebedev, a senior neuroscientist at Duke University, that brain implantation technology could cause humans to become zombie like as a result. The doctor argues that humans may become more like machines with such implants leaving their humanity behind. The article then goes on to cover how Elon Musk of Tesla has created a new company called Neuralink. Neuralink's goal is to provide brain implants that can help humans think clearer and remember more in order to keep up with the expanding world of artificial intelligence. As of the time of writing in the article, Neuralink has not done any type of implantation into a human brain.

Why it was Chosen:

I chose this article because, I feel that Elon Musk may be right in his assessment that if artificial intelligence is not limited it could mean the end of human civilization. This is a scary thought. It seems as though Mr. Musk is an ardent believer in such a scenario as he is actively looking to make the human mind as resourceful as a computer may be. Ever since I was a child, I have been interested in the concept of artificial intelligence. 

Ethical Implications:

There are ethical implications on both sides of the coin on this. For one, Dr. Mikhail Lebedev argues that brain implantation will make humans more like humans and less like machines. He argues that such technological innovations could in effect lead to humans to act like machines. On the flip side of the coin, Mr. Musk argues that we need to take such steps of augmenting our own brain in order to keep up with the rise in artificial intelligence; otherwise, humans may become obsolete.

Credibility of Source:

Inquisitr is an online news publication that has been around since 2008. It is a smaller publication as it is not stemmed from a major news network or station. Inquisitr does not employ a staff of journalists but instead opts to accept contributions from journalist who may work as contractors. This is a different model than all of the major new sources. Even though contributors are not employees of Inquisitr, they still go through a vetting process by Inquisitr. This is done to ensure timely, quality, and accurate news.

Monday, December 11, 2017

CST 373 Week 7 Scrapbook

CST Week 7 Scrapbook


The Ethics of Algorithms, or Why Coders Need an Ethics Code


Link: https://www.calcalistech.com/ctech/articles/0,7340,L-3725995,00.html
PDF: https://drive.google.com/a/csumb.edu/file/d/1mbemNfP8k9QW1Mz_rM4ClWYw1-903vTE/view?usp=sharing

Additional reading regarding China's new credit system: http://www.wired.co.uk/article/chinese-government-social-credit-score-privacy-invasion

Article Summary:

This article argues that boundaries in ethics must be established to limit the amount of big data that algorithms are allowed to collect. The article explains how we are subjected to many algorithms a day in order for organizations to learn more about us. It goes on to say,
"Today we already understand that we are being cataloged, analyzed, ranked, grouped and graded not just by the servers of those who would sell us something. Security and law enforcement agencies invade our lives unhindered in order to decide whether we pose a threat; politicians study us for the next election; banks determine how likely we are to return our loans; insurance companies rate our health and our life expectancy."
 It then goes on to say that China is piloting a new Social Credit System that incorporates many aspects of data about a person, ie. what they buy, where they live, and who are their friends, in order to determine that individual's credit score. The author argues that we must limit the amount of big data that is collected by organizations in order to avoid a path where everything we do is scrutinized and ranked by other entities particularly government as is seen in China. I have included a link detailing China's new credit system.

Why it was Chosen:

This article was chosen because, I feel that we as developers are at a point where we can stop the growing trend in big data collection. I personally do not want to live in a world where my every action is examined and scrutinized. I believe we all have a right to personal privacy and the trend is that more and more big companies and governments are beginning to learn about all aspects of those who use their product or are within their jurisdiction.

Ethical Implications:

Although the corporations make the decisions to create such algorithms, developers hold the power to embrace an ideal and refuse to work towards a potential world where people's privacy becomes non-existent. I believe knowledge is power and the more knowledge a government or organization has over the people under it, the more control it has over them.What China is incorporating in their new credit system is scary. By incorporating behaviors into their credit system, they can more easily mold a society to think and act how they want them to act. The majority of people would want their "score" to be as high as possible and thus force a trend in personal spending or actions in the way the government wants them to spend. As mentioned above, the ethical implication of exploitation of personal privacy come into play.

Credibility of Source:

CTech is a fairly new technology news site established just in the year 2017. Being a new organization more research into the validity of China's new big data credit system was done. It was discovered through wired.uk.co that this is in fact true. Wired is a reputable tech magazine that has been around since 1993.

Tuesday, December 5, 2017

CST 373 Week 6 Scrapbook

CST 373 Week 6 Scrapbook

There are 170,000 fewer retail jobs in 2017—and 75,000 more Amazon robots




Article Summary

The article discusses how there may be a correlation between Amazon's success in automation and decline in retail jobs. The article gives an estimate that Amazon's workforce will increase in size by 75,000 units in 2017. In the same year it is estimated that Amazon will add 146,000 employees to its workforce but the overall workforce in the retail industry will still decrease by 24,000. It is argued that Amazon's growth is and reliance on robotics is a contributing factor to the loss of retail jobs. The article then goes on to say that although Amazon only represents 3% of overall US retail sales it is accounting for 20% of the US retail industry growth in 2017. It is interesting to see that one company can account for 1/5 of the growth in an industry. 

Why it was Chosen

I chose this article because, I think that automation effects us as an economy for better or worse and it is necessary to keep a keen eye on how it is shaping the economy. This is precisely the reason why I have decided to get a second degree in Computer Science. I feel that technology will be at the forefront of US industry for the decades ahead and if you are not a part of that industry you may be left behind struggling for a job. 

Ethical Implications

The ethical implication is that the increase in automation that all industries are seeing may have a negative impact on the unemployment ratio in America. The statistics here show that although a causation can not be proven, there is a correlation in increase in automation and job loss in the retail industry. I feel that this extends to all industries. With a higher unemployment rate comes a higher poverty rate. I feel that this is something that will have to be watched with a keen eye amongst our business and political leaders in America. Employers will have to look at filling the void of job loss as a result of technological innovation. If not we may face a growing poverty level from people who may be forced out of jobs.

Credibility of the Source

Quartz is a digital news outlet that has been around since 2012. The company is based in New York but has staffed reporters throughout the world. The company strives to embrace technology as it's way to inform the public. Quartz is owned by Atlantic Media Inc., the publisher of The Atlantic.

Wednesday, November 29, 2017

CST Week 5 Scrapbook

CST 373 Week 5 Scrapbook

HP quietly installs sytem-slowing spyware on its PCs



Article Summary

The article explains how many consumers have been complaining that Hewlett Packard has installed software on their system without them knowing. The software in question is called HP Touchpoint Analytics. The article explains that the program appears to replace previous software called HP Touchpoint Manager. It seems that this may have gone unnoticed had it not been for the new software creating slowdown in customer's systems. HP responded to Engadget's article with the following statment.

HP Touchpoint Analytics is a service we have offered since 2014 as part of HP Support Assistant. It anonymously collects diagnostic information about hardware performance. No data is shared with HP unless access is expressly granted. Customers can opt-out or uninstall the service at any time.
HP Touchpoint Analytics was recently updated and there were no changes to privacy settings as part of this update. We take customer privacy very seriously and act in accordance with a strict policy, available here.

Why It was Chosen:

This article was chosen because I take privacy with regards to computer software seriously. The article claims that the software collects user's data without their permission. It is even more disturbing when a company distributes software without the user's knowledge.

Ethical Implications

The ethical implications are that software is potentially being distributed by a company without a user knowing that it is being put on their system and breach of privacy. Obviously it is illegal for a company to install software on a user's system without their consent. A disturbing way around this is that companies may put in their licensing agreement which may consist of numerous pages of legal jargon that allow them to do this. A company may have it's software default to automatic updates or bundle other software in a software suite where the user may not fully understand what they are getting. I do not like such practices as many users unknowingly just click through the defaults when installing software. Companies should find a way to make it very clear that a customer may be getting additional software. I feel that companies get away with this when they make their installation software in small print. 

Credibility of Source

Engadget has been around since 2004 as a source for technology news and reviews. The company operates on a global scale.

Tuesday, November 21, 2017

CST Week 4 Scrapbook

CST Week 4 Scrapbook



Article Summary:

This article discusses the new proposal for the FCC to repeal net neutrality regulations and the negative impacts it may have on the country. The current regulation prohibits internet service providers from slowing down or blocking websites to its users. Ajit Pai, the current FCC Chairman, claims that repealing the regulations will help rural America and lead to better, faster, and cheaper internet access. The author believes that Mr. Pai is wrong. It is argued that startup internet companies will have a harder time competing with big corporations such as Verizon and ATT as the repeal in regulations will favor the larger corporations. This could stifle innovation as much innovation comes from small startup companies, ie the beginnings of Google and Facebook. The free access of speech would also be hindered as the internet service providers could essentially filter what they deem acceptable for their customer's to view.

Why it was Chosen:

I chose this article as I feel am passionate with regards to this subject. I feel that limiting the internet is inherently bad. This could lead to a country where only those with enough money will be able to have their website accessible to the masses. I believe the thoughts of every individual should have an equal opportunity to reach those on the internet. 

Ethical Implications

The ethical implication is that should people be entitled to open access to the internet. I believe we should. The article references the situation in Portugal where similar legislation has taken place. In Portugal, people choose their level of access to the internet based on the fee they pay. Imagine a public library having to offer a lower access internet due to fees placed on them. Students and adults with no internet access would only be able to access minimal content in their research. Favoritism in access to knowledge would only be given to those who could afford it. This is wrong and could further create a division in the lower and upper class in the country.

Credibility of Source

ThinkProgress is an online news site founded in 2005 that reports from a Progressive point of view. Being from a certain point of view, it is important to note the the site would lean towards the left on most of it's analysis. 

Tuesday, November 14, 2017

CST Week 3 Scrapbook

CST Week 3 Scrapbook





Summary

The article this week comes from the Defense Advanced Research Project Agency, or DARPA. I have also attached the official briefing associated with this article. DARPA is a government agency that has been known to providing leading technical advancements for the U.S. military. It was published 12/7/2016. DARPA has been responsible for stealth technology and other advancements to the U.S. military. This article outlines a new initiative for DARPA called OFFSET. OFFSET stands for Offensive Swarm-Enabled Tactics.  From the article,
"OFFensive Swarm-Enabled Tactics program seeks to empower dismounted troops with technology to control scores of unmanned air and ground vehicles at a time."
The article then goes on to say what the department is looking to achieve in the project. It would like to create an interface where users can monitor potentially 100s of unmanned vehicles in warfare acting autonomously and cohesively as a swarming unit. Essentially this would mean that a ground based soldier would act as a coach to this AI controlled swarm unit on a battlefield or urban warfare setting. The article then goes on to explain how the organization will utilize live testing every 6 months to demonstrate and challenge this new technology. The end of the article states that there will be an event where potential companies can submit their proposal to act as a contractor in developing this technology for DARPA.

Why it was Chosen

I chose this article because it has to do with the military using artificial intelligence to conduct warfare missions. I find Artificial Intelligence to be very fascinating and it is interesting to know that the U.S. government is openly publicising that they plan to use it for warfare implications in the future. I wonder if there have been any groups outspoken against the research in such technology. I know Elon Musk, CEO for Tesla, has openly warned of the dangers of artificial intelligence.

Ethical Implications

This new technology may take the ethical implications of drone warfare to a new level. There are those that argue that drones may be unethical as they make killing too easy and may lead to more civilian casualties. Without actual eyes on a target mistakes can be made. The idea of 100's of drones acting autonomously sounds like something you would see in a popular videogame known as Starcraft. Proponents for the U.S government would argue that this would make our country safer from our enemies and allow for an exponential edge over others. Others may argue that such a capability could be immensely dangerous. If the technology were to be somehow hacked or bugged, 100s of autonomous drones acting cohesively could do immense damage to an urban landscape. It does bring nightmares to think of such a scenario.

Credibility of Source

This source is 100% credible as it comes straight from darpa.mil. This is the official military website for DARPA. I am quite surprised that this was published openly on the internet. 

Wednesday, November 8, 2017

CST Week 2 Scrapbook

CST Week 2 Scrapbook


Article Summary

This article details how Twitter had barred the word "bisexual" from it's users tweets. This would be the equivalent of them barring the words "gay", "lesbian", or "straight". Twitter sent out an apology regarding this and notified the public that they would no longer bar this word. The company issues this statement:
“Searches for certain words related to sexuality did not populate complete results. We apologize for anyone negatively impacted by this bug,” said a message from Twitter’s Support account.  “It is not consistent with our values as a company.”
The article then goes on to explain how last week an disgruntled employee at Twitter managed to temporarily deactivate President Donald Trump's account.

Why it was Chosen

I chose this article because I feel that censorship in social media is very important. I do not believe that twitter in no way should bar a certain word. I feel it should be up to the user to put any sort of filter on the searches that they do on twitter. Also to bar the word "bisexual" is just demeaning to anyone who may be "bisexual". It is not the right of Twitter to say what form of sexual orientation is not valued enough to be a searchable word in their context.

Ethical Implications

The ethical implication here is that Twitter essentially was saying that "bisexual" is a bad word. This is wrong in that the word is the same as "straight", "gay", or "lesbian". It was right of Twitter to admit their fault in this and provide a fix as soon as possible. The other ethical implication is that of censorship in social media. I don't think that Twitter should censor any words from it's search database unless explicitly asked to do so. It should be up to the user to let Twitter know that they would like a filter put into their search engine just as google does in theirs. In viewing the responses, there are people who view the opposite. That being "bisexual" is immoral and Twitter is right to ban such a word. Again I feel that if a person does believe this then they should be able to set their own filter to not have to view this if they so wish but it should not be up to Twitter on if they say a word is immoral or inappropriate. 

It was interesting to see the article also mentioned that Donald Trump's Twitter account was deactivated by a disgruntled employee. To me this is very serious. I wonder as to the level of access that employees have to Trump's Twitter account. Very dangerous things could have resulted in this. We live in an age where Twitter has become a public forum. Imagine if a disgruntled employee could write Tweets on behalf of the President that could spark the next major war. Literally lives could be lost as a result. I personally feel that due to the magnitude of the office of Presidency on international affairs that the President should not be allowed to Tweet.

Credibility of Source

This article came from FoxNews.com which is a major news organization. I accept it's credibility. 

Tuesday, October 31, 2017

CST 373 Week 1 Scrapbook

CST 373 Week 1 Scrapbook

Article Summary

The title of the article for this week's scrapbook is "Video Games are Destroying the People who Make Them". I found this article in the New York Times opinion section. This article goes on in explaining how an undue amount of stress is being put on video game developers which contributes to lower health and pursuing other careers which may not be their passion. It goes on to explain that in order to make deadlines many game development companies will incorporate a crunch in which their developers can work up to 20 hours a day. This takes a huge toll on the employee's health. The author adds, "Brett Douville, a veteran game programmer, said he once worked for so long and for so hard that he found himself temporarily unable to step out of his car". The writer argues that this is unsustainable for the industry as many top programmers leave to other industries for this very reason.

Why it was Chosen

I chose this article because it has a direct correlation to my career of choice and passion. I hope to be able to enter the game industry after graduation, and I have heard of such stress associated with this industry. I hope to find a company that is aware of this issue in the industry and working to alleviate it within their own confines of work.

Ethical Implications

The social values at stake are that because the industry tends to put such a high demand on their employees this can lead to a breakdown in their families. The employees children may be impacted negatively as the stress can follow to the home and lack of care can lead children to act out. I believe that quality of life in the workplace is essential in maintaining quality family values. Happiness is infectious and we should all strive for happy employees to make society better. The ethical implications are that these companies are putting people's health at risk for the ability to put out a product sooner and make a little bit extra profit.

Credibility of Source

 The author of this article is an editor from a well know game industry publication called Kotaku. Being that this publication only deals with the video game industry, I trust the credibility of this article. The fact that the New York Times, a prestigious magazine publication, published this adds to the credibility.

Friday, October 20, 2017

CST 338 Week 8

CST 338 Week 8

Regarding this course, I would say stay consistent with your reading. There is a ton of material to cover in a short amount of time. You cannot get behind in this course. Adhere to your calendar.

I envision using a great majority of the skills I learned in this course. I enjoyed freshening up on Java and building my first Android Apps.

This week I decided to make another app with Android Studio because I enjoyed working with it so much the week before. I decided to make an app that let's a user pick their lottery picks and compare them to a randomly generated lottery. This was a challenge as I had only worked on a simple Android app before.

Tuesday, October 17, 2017

CST 338 Week 7

CST 338 Week 7

Before this week, I had never created an app before. I hope to use Android studio much more in the future as even if I do not do this for a career, I find this could be a wonderful hobby to have. I found creating my first simple app to be a very enjoyable experience as it can relate to games in how it is a tangible product. I am a big fan of Android and have never owned an iphone so I can see myself sticking with apps for Android.

Obviously with wanting to be a game developer, my first choice would be to work on an application for a game. I think simple games that a player can play for 5 minutes at a time are ideal for phone apps as it is something someone can easily do to engage their mind while doing something trivial such as riding in a plane or waiting in a waiting room. As a business application and working in the bank, I would be interested in the opportunity to work on financial applications for clients of financial firms.

Tuesday, October 10, 2017

CST 338 Week 6

CST 338 Week 6

The only experience I have with UML diagrams are though my studies here at CSUMB. I am currently not working in the technology industry so there is no use for UML diagrams in my current work.
I have worked with multithreading in Python and Java before. I find patterns to be helpful with practice. When it is the first time working with patterns the task can initially be daunting.

This week we learned about multithreading and patterns in Java. The specific pattern we, worked with was the Model-View-Controller pattern. I personally can't see using this pattern for the industry I would like to enter which is game development. It seems to be too abstract in nature.

Wednesday, October 4, 2017

CST 338 Week 5

CST 338 Week 5

I think the fact that GUI is learned late in the Java learning process is a good thing. It allows you to focus on the basic theories and concepts regarding programming design. You can then implement these concepts to your GUI design. If you started with a GUI it would be difficult to understand how to truly manipulate it without the basic concepts of object oriented programming. 

Coding the Swing elements in Java can be tedious work. This is why many IDE's have implemented builders to help ease the process. Understanding how to code in Swing is good practice in object oriented programming. 

This week we used our Card, Deck, and Hand classes to construct a GUI of a card game. We made a high card game. I found this to be challenging as it was a lot of information to digest and utilize in such a short period of time. It seems that I have a pattern I need to break for this class and that is working hard at the end and taking a break at the beginning of the week. I am going to make a conscious effort to start my work early moving forward as I am sure the next project will be just as hard.

Tuesday, September 26, 2017

CST 338 Week 4

CST 338 Week 4

One example of polymorphism would be video game system. The GameSystem would be the super class with it being divided into two subclasses of home system and portable system. The home system could then have a sub class under it for each specific game system, ie Playstation 4, etc. The home system would inherit all of the methods of the GameSystem class.

An abstract class is a class that contains 1 or more abstract methods. An abstract method is a method that is declared but not implemented. This allows the abstract class to be extended to a subclass which implements the abstract classes methods. By doing this, the non abstract methods can be inherited by the sub class.
An interface is a type that consists of only abstract methods. An interface contains no variables, it only contains method headings that describe each method. A class that implements an interface must also implement all of the interface methods. Since all interface methods are abstract, none of them can be inherited by a class. 

This week was a challenging week as I was out of town at a video game conference from Wednesday through Saturday with little time for school. I was able to do my readings at the conference but could not start programming until Saturday. Just like before there was a lot to digest. I found the problem to be challenging to figure out how to convert the barcode into ascii. Once it was figured out the program became a bit easier to understand. I did a lot of the programming and debugging for our group. I hope to get more practice with polymorphism, abstract classes, and interfaces as I feel I will be utilizing them extensively in my career.

Wednesday, September 20, 2017

CST 338 Week 3

CST 338 Week 3

This week was very challenging as there was a lot of work and reading involved in figuring out this project.

The largest multi dimensional array that I have used is a 2d array. I think anything above a 4d array would be unwieldly as our minds are barely able to think past 3 dimensions as this is how we perceive our world. I could be wrong though as I am sure with practice this gets easier. Inheritance allows a class to use the methods from another class. This allows for you to not have to recode if a class exists that you can use in your own class. I have used inheritance before in my data structures class.

Tuesday, September 12, 2017

CST 338 Week 2

CST 338 Week 2

I have worked with Assembly Language for x86 processors. I found the work to be tedious but it was good to understand the nuts and bolts per say of programming. Object oriented programming is most of the programming I have done outside of the classroom. I haven't had a chance to do too much out of class as my current career is in banking and not software development. I have had experience with UML diagrams; however that was many years ago.

This week was a complete swing in the amount of reading compared to last week. It was good that I was familiar with the concepts because if this were totally new to me this week would have been a struggle with the amount of content covered. We covered flow control, classes, and arrays. I found the slot machine assignment to be an acceptable challenge. I was in a new group and it took us a while to figure out each others schedules to work together. We each have different schedules and this made it challenging to work at the same time. We were able to complete our assignment on time and 100%.

Tuesday, September 5, 2017

CST 338 Week 1

CST 338 Week 1

For this class we will be using the IDE Eclipse. I have worked with Eclipse a bunch and am quite comfortable with its interface. At this point I am proficient in Java, SQL, html, php and Python. It has been a long time since I have worked on C++ and would like to gain more experience with it. I am currently re-reading a book that deals with data structures in C++ to reacquaint myself with the language. At this point my dream job would be to work as a game developer or systems developer in the gaming industry. I enjoy making people smile and games and would feel right at home working in the industry. I understand it is a tough industry to get into and am also interested banking application development, cloud based solutions, and artificial intelligence; granted I know very little on the latter subject as of right now.

This week we discussed the basics of Java, the String class methods, and console input/ output. Having worked extensively with Java this was all just a refresher and I found this week to be a light workload.

Friday, August 11, 2017

CST 361S Week 8

CST 361S Week 8

This week was all about finalizing my final paper and final documentary video. It has been great working for Computers for the Blind and it even helped me come up with a capstone idea. Here is my final documentary.




We were asked to come up with 3 capstone ideas but I feel these may change as we get closer to starting capstone.

Tuesday, August 8, 2017

CST 361S Week 7

CST 361S Week 7

This week we explored how video games can be used to come up with solutions to today's modern problems. A game is a platform in which one must solve a set of tasks or problems. The idea here would be to implement a social or global problem into a game in order to find solutions to the real world problem. There are organizations out there working to create such games. 

I have completed my service learning with 38.5 hours. This week I was able to see first hand the fruits of my labor. In partnership with Lighthouse of Ft. Worth, I was able to present refurbished computers designed for low vision individuals to kids in need at YMCA Camp Carter. It was good to interact with members of the blind and limited vision community and hear there stories and challenges. I was also able to see other technologies being developed today as there was a vendor showing the kids the new gadgets available to assist them in their lives.

Tuesday, August 1, 2017

CST 361S Week 6

CST 361S Week 6

This week we examined how augmented reality applications can enhance education amongst students. We also discussed how this could lengthen the gap of the "Digital Divide" if not offered to all students. I was able to discuss and reflect on how my service has contributed to my understanding of our field to help foster social justice and shorten the digital divide. So far I have have completed 33.75 hours of service learning.

Tuesday, July 25, 2017

CST 361S Week 5

CST 361S Week 5

This week I was able to rebuild a desktop computer and configure the software for an individual who was visually impaired. So far I have put in 28.25 hours of service.

This week we discussed how professionals and institutions in the field of computer science have both been beneficial and detrimental to society. 

A video about the organization "Black Girls Code" was examined. This organization serves young African American girls in exposing them to the world of computer science, a field in which they are largely underrepresented. It was illuminating to learn that the percentage of computer science graduates  who were women was in the 35% range in the late 80's and has now fallen to around 18%. I feel this can be attributed to the newness of computer science in the 80's and then a stereotype of it being a male dominated field led to the decline to what it is now. The number is even less for African American women to be below 2%. I am glad that organizations like this exist to help diversify the field of computer science. 

I created a storyboard to be used for my final video project on my service learning experience. 

Tuesday, July 18, 2017

CST 361S Week 4

CST 361S Week 4

This week we delved into the concept of what it means to serve as opposed to just helping or fixing. To really impact lives and society, one must serve. The intent here is that you are truly doing something for the betterment of others and engage in meaningful conversations with them. We learned of the harms and hazards of e-waste that is shipped to third world countries. Diversity and equality in the technology industry was also explored and discovering ways that we can eliminate the lack thereof. This week I did not get to visit my service learning site. We also looked at Project Management in more detail. The concepts of project planning, project leadership, project teamwork, and dealing with difficult people was explored. I have a total of 22.5 hours accumulated for my service learning.

Tuesday, July 11, 2017

CST 361S Week 3

CST 361S Week 3

This week I did not have time to do any service but I spent 4 hours in the community doing my community scan. For the scan I interviewed three members from Computers for the Blind and drove around the area to observe the community. It was challenging to figure out what to do as the organization doesn't just serve its immediate community but the entire nation and even sometimes other countries. I have found great value in these interviews, as now I have a better understanding of who we help. I was also to learn a bit of wisdom as two of the men were older retired gentleman from the fields of Computer Engineering and Computer Science. I look forward to the rest of my service learning.

Tuesday, July 4, 2017

CST 361S Week 2

CST 361S Week 2

This week the concept of the digital divide was explored more. A book entitled, Stuck in the Shallow End was explored. In this book the digital divide amongst minorities, particularly African Americans and Latinos, was explored. It was examined that although these minorities have been given access to computers in schools, very little other a basic understanding of Windows has been explored with regard to furthering their knowledge in Computer Science. These racial groups have had a hard time breaking into the industry as they do not have the proper access and education in their youth. It was also explored in a video that America is lagging behind other countries with regard to the speed and access of the internet amongst it's citizens. This can be attributed to the big business of communications. It is not in the best interest of the large communication companies to give access to American citizens but rather find ways of increasing their profits. It was argued that a shift of changing internet access from from a privilege to a utility must be exercised. I agree with this. 

So far I have logged 22.5 hours with my service learning partner. I hope to incorporate images of myself working at the service learning site as well as images of the site itself. I hope to interview a few volunteers/ workers of the organization. Finally I will be attending an event on August 4th in which I will take pictures and video. The event is where the organization will give computers to high school students who are visually impaired at a summer camp in Ft. Worth.

Tuesday, June 27, 2017

CST 361S Week 1

CST 361S Week 1

This week I was able to complete 4 hours at my service learning partners site. I was able to build a PC for a visually impaired individual. I ran into a bit of a problem with the first PC as it would not properly communicate with the DVD ROM or any DVD ROM installed. Upon troubleshooting it was finally discovered that the problem was with an outdated chipset for the motherboard. Since this was a PC intended for the visually impaired, Magic Screen Modification software from Freedom Scientific was used as the primary aid for the recipient of the PC. I was able to take pictures of the work site. So far I have logged 22.5 hours of service learning. In class an interesting book regarding equality was examined. The book was called Privilege, Power, and Difference. I found it to be a good read and conforming to what I believe we should strive for as a society. I also have come up with an idea to tie in with my service learning that could be a spark to my capstone project. It involves building an application for the blind using AWS Lex. I will need to do more research to see if this is a viable project.

Friday, June 16, 2017

CST 311 Week 8

CST 311 Week 8

I have learned a great deal in the field of computer networks with my only background being setting up my own personal home network with secured WPA2 access. Even with all of the knowledge, I feel like I have just scratched the surface of this topic. I look forward to diving deeper into the book when I have time and incorporate what I have learned into future applications. This past 8 weeks have been both exhausting and enlightening.

Wednesday, June 14, 2017

CST 311 Week 7

CST 311 Week 7

This week had a lot of information to take in. We moved onto studying the link layer. I found myself taking the most notes on this section as I was very unfamiliar with the content. Link layer services, multiple access links, and error detection and correction were discussed. The various MAC protocols were then explored. Finally LANs and switches were explored within the ARP protocol. We then moved on to security in computer networks. The basics of security were discussed. I found cryptography to be fascinating as we explored from basic substitution ciphers up to the Advanced Encryption Standard. It was neat to see how AES is so much more secure than DES. Finally message integrity, digital signatures, and end point authentication were explored.

Wednesday, June 7, 2017

CST 311 Week 6

CST 311 Week 6

This week was insightfull as I got to learn about the alorithms behind routing. I found reading about the network layer to be the most fascinating as I like to learn how things work. We learned about the link state algorithm and distance vector algorithm. To learn how routers actually manage routing was fascinating. I also learned that although these algorithms are usefull, they do not scale to the millions of host on the internet. For this reason, the Border Gateway Protocol is implemented. The differences between, unicast, broadcast, multicast and anycast were explored. Also the differences between IPv6 and IPv4 were explored. I liked the refresher on converting binary to hexidecimal by using digit weights of 8 4 2 1. Finally, Internet Protocol Security was also explored.

Tuesday, May 30, 2017

CST 311 Week 5

CST 311 Week 5

This week was all about the Network Layer of the Internet Protocol stack. The concepts of routing and forwarding were discussed and contrasted. I learned about a router's forwarding table and how it uses the longest prefix matching rule to determine the link interface from a packet's destination IP address. We then delved deep into the inner workings of a router. IP datagrams and IP addressing were also analyzed in depth. The concepts of how DHCP is used to obtain a host IP address were explored and analyzed during our lab in which we were able to see the DHCP messages that were used for a host to obtain an IP address. The DHCP discover, offer, request, and ACK are part of this 4 way process for a host to obtain an IP address. Finally NAT or Network Address Translation was explored in how it allows for an internal network to hide details of its network with the outside world. NAT is also controversial.

This week was filled with a ton of  new information and I feel I will have to revisit it again thoroughly before our next final.

Tuesday, May 23, 2017

CST 311 Week 4

CST 311 Week 4

         This week was a short week in which we got to focus on studying for our midterm. We learned about socket programming with UDP and TCP and the key differences in programming for the two protocols. With UDP socket programming, no handshaking is necessary to establish a connection. The sender explicitly attachesIP destination address and port number to each packet. The receiver extracts sender IP address and port number from the received packet. Wtih TCP programming the client must contact the server. The server must have a "welcome" door that welcomes a clients contact. When a client is contacted, TCP server creates a new server socket to communicate with that particular client. Python code was explored in how client and server applications are coded for UDP and TCP socket programming.

Tuesday, May 16, 2017

CST 311 Week 3

CST 311 Week 3

I found this week to be challenging as it was a lot of new material. I found the videos to help tremendously as the reading was a lot to take in and it was good to learn from a different form. This week we learned all about the transport layer of networks. We learned about the specifics of how UDP and TCP transport data on the transport layer. The concepts of multiplexing and demultiplexing were examined. We also learned how TCP and even UDP implement reliable data transfer along the transport layer.

Wednesday, May 10, 2017

CST 311 Week 2

CST 311 Week 2

This week was all about the application layer of the Internet protocol stack. Before this week I had a limited knowledge of HTTP, cookies, SMTP, and Peer to Peer. I learned that HTTP connections can be both persistent or non-persistent and the differences between the two. Before this week I understood the concept of cookies but did not know exactly how they worked. This week's lesson helped to expand my knowledge on the subject. Web caches can be used to make web browsing more efficient from the client end. The amount of "conversations" that occur for small amounts of data is neat to see with WireShark and a bigger appreciation for the application layer has been realized through my studies this week. We owe a lot to the scientists and researchers who have created this technology in which most people take for granted not knowing really what is involved behind the scenes in the various Internet networks.

Tuesday, May 2, 2017

CST 311 Week 1

CST 311 Week 1

This week I learned about the basic structure of the internet and the networks within it. It is now understood that the network edge consists of clients and servers and the network core is the network of networks that consists of interconnected routers. The idea of packet switching and how it drives the flow of information across networks was also introduced. I learned about packet delay and the various processes that effect packet delay suck as nodal processing, queueing delay, transmission delay, and propagation delay. Formulas for figuring these four delay processes were introduced. The throughput of networks was studied and also how to find the throughput of a given network. Finally we learned about the internet protocol stack and the layers within: application, transport, network, link, physical.
I felt this was a good introduction to the basic structure of how networks and the network core work. It forms a good basis for what I am sure will be a more in depth analysis of computer networks. I found the history of computer networks to be fascinating as far as how they have changed communication so much in so little time considering that for thousands of years forms of communication did not change very much.

Sunday, April 23, 2017

CST 336 Week 8

CST 336 Week 8

This week we learned about updated and uploading PHP binary files. I found this to be challenging as the demo tutorial seemed to be on the light side. The course in general increased my knowledge of Internet Programming as I had no previous experience. I found the languages to be considerably different than what I am used to with Java and C++. The test this week was adequate; however, I should have looked over all the questions from the start as I needed a bit more time for the coding section of the test. If I had looked the test over from the start I would have starting on the coding portion first and then work on the multiple choice aspect.

Tuesday, April 18, 2017

CST336 Week 7

CST336 Week 7

This week we learned the basics of AJAX, XLM, and JSON. AJAX is a javascript code that allows for updating of web pages dynamicallys. It stands for Asynchronious Javascript and XML. We learned to use the XMLHTTPREQUEST to fetch data and export database info into JSON format. We also learned how to process JSON data in a web page and how to submit form data using AJAX. For the assignment we were tasked with creating a webpage using AJAX to change a webpage dynamically.

Here is a screenshot of a before and after shot of clicking through a database and the data automatically showing on the page without it having to reload:



Tuesday, April 11, 2017

CST 336 Week 6

CST 336 Week 6

This week was fairly light compared to the previous 2 weeks. We learned the basics of JavaScript and JQuery and I am now able to distinguish between the two codes. We were able to import JQuery libraries and create JQuery functions. We then learned to update HTML elements and styles using JQuery. I found Javascript more to my liking as it utilizes several concepts and syntax that I was already aware of. Here is a screenshot of the webpage created in the lab to utilize what we learned:


It is a simple vocabulary quiz that perhaps an elementary school student could take to test their basis Spanish. The first question asks the user to click on "El Pollo". When the mouse is hovered over the image, the image gets larger. The second question asks the user what is cat in Spanish. The user then types it in via a form. The third question consists of radial buttons asking the user to select what dog is in  Spanish. The submit quiz button grades the quiz. This web page is built on the foundations of Javascript and JQuery.

Wednesday, April 5, 2017

CST Week 5

CST Week 5

This week we learned about being able to distinguish between cookies and sessions. We had to implement creating sessions in PHP and store and retrieve data in a session. We also learned how to stop a session and how it is implemented with logins and passwords.

We finalized our team project which implemented a database to create a webpage. This was challenging as our team consisted of various levels of knowledge in these areas. We were able to finish the task on time.

Our project is a PC game Catalog
The project has met all of the requirements. There is a login screen to begin. We decided to make the color an appealing blue with a picture showing what the database is about.
There is one form per table allowing users to see information for each game or users of the catalog.
We have functions to find the most expensive game, total cost of all games in the database, and the average cost of the games.
You can filter the games by publishers or genres and filter the user by first letter of their last name.
Finally you can update or delete user entries. We would have liked to put this in a table if we had more time to make the page shorter.
Here is a screenshot of the first page:
Game catalog web page

Wednesday, March 29, 2017

CST 336 Week 4

CST 336 Week 4

This week we implemented an SQL database on a server to create web pages. We had to create a webpage that connected to the database through PHP using PDO's. We then retrieved the data from the database through PHP. We also learned about joining tables and conducting aggregate functions. Finally we were able to figure out how to insert, update, and delete records from a user on a website.

We also began work on our group project which consists of implementing all we have learned so far in creating a webpage that utilizes databases. We will be creating a webpage catalog that consists of pc games that different users can purchase and have access to. The database will consist of a user table and a game table. A third table linking the purchased products and users will be created as well. We have not begun work on the website but will begin starting tomorrow.

Saturday, March 25, 2017

CST 336 Week 3

CST 336 Week 3

This week was all about learning HTML forms. We learned about the various input types of HTML forms such as buttons, text areas, radio buttons, etc. I then differentiated between GET and POST methods and how they are implemented in processing data in PHP. Finally we learned about PHP arrays and using array functions. 

This week I created web page for a geometric calculator for picking either a rectangle or triangle and then figuring the area for both as well as the perimeter of the rectangle by inputting the appropriate length and width of the objects. The calculations were done using various array functions such as array_product and array_sum.

Here is an example of the web page:


Tuesday, March 14, 2017

CST 336 Week 2

CST 336 Week 2

This week was all about PHP implementation in creating web pages. I learned how to use PHP variables and implement loops and conditions in PHP. I also learned the syntax of defining functions in PHP and generate randomization within PHP.
For the lab we had to generate a 10x10 table consisting of random numbers between 1 and 100. We were then tasked to color code all of the even and odd numbers differently. Finally the web page should count the number of even and odd numbers and display their corresponding percentages.
Here is a same of the web page:


Then for the next assignment we were tasked with creating our own idea to implement what we have learned this week. I decided to make a random BINGO card generator. It was fun and challenging trying to figure out how to go about solving this problem. In researching the problem I found that shuffling an array and then using array_pop() was the best way to randomize the numbers while also making sure not to use them twice. Here is an example of the program output.

Tuesday, March 7, 2017

CST 336 Week 1

CST 336 Week 1

This week was all about learning the basics of HTML, CSS, and creating webpages by learning how they work together. I was also able to upload the webpages to a sever to remain for web viewing. Here are examples of the webpages I created this week:




Friday, February 24, 2017

CST 363 Week 8

CST 363 Week 8

The course at times was challenging. This was mostly due to the fact that I am working full time at a bank, have a 2 year old daughter, and am concurrently taking discrete math and computer architecture courses. It feels good to be done with the course. I went from having a basic understanding of what a database is to being able to write in SQL to create and manipulate databases. My team worked well together and we were able to finalize our project of creating a database a day before the due date.
Here is a sample of our database design.

This was a great introduction to databases and I feel like I have just scratched the surface of this field.

Tuesday, February 21, 2017

CST 363 Week 7

CST 363 Week 7

This week I learned about big data and the new forms of databases that are being implemented for them. I was able to learn about how data marts are used in data warehouses to help process large amounts of data for big corporations.
I also learned how OLAP is implemented to dynamically access data through the use of dimensions. A three dimensional OLAP report was examined.
With this knowledge I was able to create an OLAP report through Excel PivotTables. 
The different types of distributed databases was then explored. These include: 


I learned the difference between scale up (larger processor) vs. scale out(more servers). The No SQL movement and Hadoop were also explored.

Our group was able to complete the database design and add the data to the tables this week.

Tuesday, February 14, 2017

CST 363 Week 6

CST 363 Week 6

This week I learned about the basic concepts with regards to database security. I learned that permissions are managed using SQL Data Control Language statements GRANT and REVOKE. User accounts were explored and their relation to groups and objects. One very important aspect of database security is that permissions generally aren't assigned to individual users but are instead assigned to groups.
Next I was able to retain the basics behind DBMS security guidelines. They are as follows:
  • Run the DMBS behind a firewall
  • Apply the latest operating system and DBMS service packs and fixes
  • Limit DBMS functionality to needed features
  • Protect the computer that runs the DBMS
  • Manage accounts and passwords
  • Encryption of sensitive data transmitted across the network
  • Encryption of sensitive data stored in databases
In general DBMS security features should be used before application level security.
I learned about database recovery via rollback/ rollforward and how it is the preferred method of recovery. We were able to apply this concept through Assignment 11 in MySQL.
I also learned about how to apply user defined functions and triggers in a DBMS.

It would have been nice to spend  a bit more time exploring these concepts as I felt retention of this would come easier with practice but that is why I bought my own books so I may learn on my own.

Tuesday, February 7, 2017

CST 363 Week 5

CST 363 Week 5

This week I learned about how transactions and ACID properties are used in a DBMS. The acronym ACID stands for Atomic, Consistent, Isolation, and Durable. I learned about a logical unit of work within a transaction.

I then explored concurrency problems that can occur with multiple users updating a database concurrently. These problems include dirty reads, nonrepeatable reads, and phantom reads. It was then learned that locking is a way to avoid concurrency issues. I learned about the various isolation levels for locking and how to avoid a deadlock. These isolation levels in order of the weakest to strongest locking are Read Uncommitted, Read Committed, Repeatable Read, and Serializable. I also learned about the differences between optimistic and pessimistic locking.

SQL views were also explored this week. It was learned that this is a good way to create different views that may be used later within a DBMS. I learned about the properties of SQL views and how to implement the syntax for an SQL view in MySQL. Views may be used to hide data, hide complicated syntax, and ensuring consistent results from multiple developers working on a single database.

Tuesday, January 31, 2017

CST 363 Week 4

CST 363 Week 4

This week we delved deeper into the design process of database building. I learned about the process of looking for entities is very similar to the process of looking for objects in standard programming. You must look for the nouns that could be entities in the data model. I learned about the difference in weak vs strong entities, how the representation of a weak entity differs from that of a strong entity. The various types of keys where explored and when it is necessary to use them. The concept of referential integrity was learned about when implementing foreign keys in a design.

We then learned about how to create an E-R diagram in MySQL Workbench and how to forward engineer it into a functional .sql script. Conversely, I learned how to reverse engineer a . sql script into an E-R diagram. Through the building of E-R diagrams, I also learned about the implementation of subtypes in database design.

The next step in the design process is the normalize the tables. Without normalization, the tables can experience modification problems. It was also discussed the after normalization comes denormalization as sometimes the process of normalizing can go to far and negatively affect the design of the database.

Tuesday, January 24, 2017

CST 363 Week 3

CST 363 Week 3

This week I learned more SQL statements and how they relate to other coding functions. I learned about SQL grouping, outer join and sub-selects operations.  I was able to comprehend how a SQL select statement is similar to a loop through an array. I also learned about the various aggregate functions SQL uses such as COUNT(), MIN(), MAX(), SUM(), and AVG(). I am now able to differentiate on when to use a cartesian product join or inner join, a left outer join, and a right outer join. I learned that a subquery is like the inner loop of a nested loop control structure in programming. It is important to know that a DBMS is better at optimizing join operations when compared to subquery operations.

I took my first exam for the course which I felt adequately tested my knowledge on what has been learned so far. Again, practice, practice, practice is how I will get better.

On a side note, I was accepted to volunteer at the Game Developer's Conference and start my path in gaining contacts in the game development industry. I am excited for the opportunity that this will afford me in gaining knowledge on how to better myself to enter this industry.

Tuesday, January 17, 2017

CST 363 Week 2

CST 363 Week 2

This week I learned about implement SQL and php statements into HTML forms to be able to implement them in web pages. This was a bit of a crash course in HTML as I have only briefly touched on the subject. I learned about the basics of creating an HTML webpage and how to implement php files inside of them. I like how this showed a real world application of using SQL and php.
I also got a refresher on the various data structures that are used in databases such as linked lists and indexes. It was good to refresh my memory on the various indexes such as B-Tree index and Hash index and when it is good to implement each.
It is evident that a lot more practice will be needed in order to be proficient at writing php statements to be implemented in HTML as I have only scratched the surface. This week has laid a good foundation on which to build upon.
I found it uplifting that I was able to help a classmate out on getting the ball rolling with assignment 3.

Tuesday, January 10, 2017

CST 363 Week 1

CST 363 Week 1

This week I began my Introduction to Database Systems class!!!

I began this class not knowing a thing about SQL language. I found it to be extremely logical in its iterations. Although vastly different than C++, Java, or Python, I found it easy to identify the flow of logic used in creating expressions.

This week I learned how to create a schema in MySQL and run a script to add tables to the schema. I also learned how to select, update, add, and remove data from a database using SQL commands. I look forward to seeing what the next 8 weeks have in store for learning about Database Systems.