Friday, April 14, 2017

Summative Post

By Qingyang Li, Steven Wang, Tanner Fred and Xavier Reinders

Thank you for reading our blog or if you have not already thanks for stopping by! We hope you learn something new or discover something cool. Throughout the course of our blog we have learned for ourselves the huge variety that the Computer Science and Engineering, which is a really long title and will usually be abbreviated to CSE, field encompasses. From our research we would like to present what we feel are the main pillars of the CSE field.


The Basics
On the most basic level, CSE is all about computers; designing, operating, and programming them to solve problems or perform tasks. These tasks and problems could be creating robots like Boston Dynamics or IBM’s Watson, phones like the S8, video games, databases, or even just the internet as a whole. The variety does not stop there. There are even more ways to talk to computers called languages, which are the building blocks for all programs. Just for starters there is C++, PHP, Python, Fortran, and HTML.

Example of basic if statement (source)
CSE obviously has options for what you can do and how you want to do it but it also teaches a set of skills common to anything you might want to pursue within the field. Most importantly, for us, is the the incredibly useful problem solving experience that comes from solving a diverse group of challenging problems. Whether you are programming or designing a computer, you will encounter problems, it might be functionality you want to achieve or blockages you want to avoid and finding solutions to these problems is the basis of CSE. Creativity also comes hand in hand with problem solving because unfortunately for those of us in the CSE field, computers don’t always make sense or do what you want them to. As the creator of C++, Bjarne Stroustrup, said, “[Programming] … is just learning how to trick the computer into doing what you want rather than what it wants.”  

Classes and Resources
Students studying computer science
At Michigan State University, along with your typical math and science courses, students pursuing a computer science degree must take a course regarding Python, C++, Discrete Mathematics, Algorithms and Data Structures. The full list can be found here. After the core courses are taken, students are now able to branch out into different areas in computer science, including subjects such as software engineering, computer graphics, and mobile application development.

Non-students on the other hand have far more freedom in the career they want to pursue as long as the have the dedication and focus to do so. Hundreds of free online courses can be found on sites such as reddit and codecadeamy, along with many project ideas to build your personal portfolio. There are also hundreds books, online and in store, that talk about how to get a job in the computer science industry by teaching the interview process. Check out our post about resources for more specific information! Whether you are a student or someone who is just interested to learn, there is always something out there to help you.


Career Opportunities
Comparing CSE jobs and salaries
The jobs in the CSE field are incredibly diverse and as of right now are always lacking people, so the opportunities for work are plentiful. If you look hard enough or meet the right people you can do anything you want as long as it's related to computers. A little more in depth look at the jobs available within the field you can be found in our post here. The skills you learn while studying in the CSE field are not just specific to computer based employment though. Problem solving skills, creativity and ingenuity learned in CSE would be an asset in almost any engineering, science or mathematics position you can think of. If you spend time working in the field before pursuing a different career you will have the chance to develop and improve skills based on working in teams such as cooperation and communication. A start in CSE could be your key to unlocking want you want to do in life.

We thank you for your time and wish you good luck as you explore the world of Computer Science and Engineering!

Sunday, April 9, 2017

Computer Operating System Introducation

By Qingyang Li

Computer is no longer stranger to us, but besides Windows and Mac OS, there are some of other systems but not very familiar to us. And here I will introduce all of operating systems.


  1. Dos (Disk Operating System)
Dos is a system which developed by Microsoft and used for command-line operating, it was used from 1981.Normally, it is stored in hard drive, and every time we start our computer, it is moved into RAM to help computer operating other software.
Different from other systems, we have to enter commanding codes manually to control computer.
But if you want to use this system really well, you have to understand computer languages.

    2. Windows

It is the most popular system that human ever use, before Mac OS, almost every computer are using this operating system, it promoted computers into every families ,it is very easy to use and have clearly User Interface.
 
   3. UNIX

It was developed starting in the 1970s at the Bell Labs research center by Ken Thompson, Dennis Ritchie and others. It is very reliable and safer, can used on different types of computers, but software is kind of lack, not easy to use,it is basically used on servers now.

  4. Linux

This system is more like "the Child of Unix", it has the advantages of Unix and meanwhile has more new function.Also, it is free and everyone can change it from original system into the system which they want , like ubuntu, Fedora, Debian .

  5. Mac OS
  This system is now famous as Windows, used on every Apple's device, it is developed and based on UNIX. Mac OS has good user experiences , beautiful UI and very easy to use. But all the software you use have to download from App store

Samsung Galaxy S8: Does it Blow?

After the disaster that was the Note 7, with its battery problems, Samsung is prepared to bounce back with their two new flagships: the Samsung Galaxy S8 and the S8 plus. Now that the phones are official, here is everything you need to know about them.

Display
S8 on the left. S8 plus on the right
At glance you are immediately drawn to the phones large screen and lack of bezels; the jaw dropping edge to edge display is where Samsung decided to go all out with this phone. The S8 screen is 5.8 inches corner to corner with a resolution of 2960 x 1440. The S8 plus, on the other hand, is rocking a 6.2 inch screen with the same resolution. Both screens are OLED (Organic Light Emitting Diode) , meaning colors are much more accurate (blacker blacks and whiter whites) compared to older devices. As seen in the photo, the screen disappears along the edges. Samsung has also incorporated software buttons instead of physical ones pushing the screen both further up and farther down. 

Camera
Camera and fingerprint sensor
The camera on the S8 is the exact same camera found on last years S7. Although sad Samsung decided not to upgrade, last years camera was still rated as one of the best. Users that use their phone as their everyday camera will continue to be pleased with Samsung's top of the line specifications. 

Fingerprint Sensor
A fingerprint sensor in 2017 is essentially a must now as it is much quicker and safer compared to a digit or word passcode. The fingerprint sensor is on the back of the phone unlike the iPhone but this is nothing new as many Android devices have been doing this for a few years. What is different is the position as the sensor is unfortunately located to the right of the camera. Because the S8 and S8 plus are tall phones, the fingerprint sensor can sometimes be out of reach, forcing users with smaller hands to sometimes use two. I'd say this is no deal breaker when purchasing but its something that can't be ignored. 

Software
Bixby and the cards
Like most new Android devices, both the S8 and S8 plus will run the latest version of Android, Android 7.0. However, Samsung does include its own skin on top with its colorful icons and abstract animations. But the biggest feature is actually Bixby, a personal software assistant. What Bixby does is essentially what Google Now does; swipe left to show a row of cards based on your personal lifestyle. The cards can show weather, news, your calendar, box scores, or whatever you like to view throughout your day. It will be quite interesting how users will use this new feature. 

Conclusion
Both phones feel like they belong in 2017 with futuristic like designs. They both have the possibility of being the device we all dream of, however, without scarifying functionality and features. S8 and S8 plus are still razor thin, will the newest chips inside to power them and include a headphone jack as well! It appears that Samsung has hit it out the park once again. 

Dallas and the Terrible, Horrible, No Good, Very Bad Night of Sleep

By Xavier Reinders

Emergency Siren similar to the ones going off in Dallas
Two days ago on Friday the 7th at approximately 11:40pm 156 emergency sirens in and around the Dallas area simultaneously went off and did not shut off until Sunday the 8th at 1:20am. For almost 2 hours Dallas was in a state of panic with thousands of calls flooding 911 and residents in a panic over the meaning of the sirens. What did it mean? It meant the Dallas' Office of Emergency Management needed to update their cybersecurity and that a breach allowed some outside access port to set off a huge portion of their emergency alarms.

So who, besides the newly sleepless residents of Dallas, care about this breach, well we as people pursuing CSE careers do.  It is a demonstration of two things, the prevalence of short-comings in cybersecurity today and the issues these holes can cause when found by the wrong people. It is pretty early in the investigation but the city spokesperson has said this was almost certainly outside access. Despite the general panic caused by the incident it was generally harmless, aside from the lost sleep and has already been labeled one of the best white hat hacks.

Lets take a quick step back and define this new fangled thing know as white hat hacking. White hat hacking is the good guys, they try and break stuff that is supposed to be unbreakable. If they do break it they let the other good guys know and they fix the issues so bad guys can't break it then take advantage of it being broken to do something evil. Black hat hacking would be the opposite in case you were wondering. As an example to allow you to understand what repercussions exactly that this might have. Lets say a black hat hacker who wasn't planning on attending any formal event that night triggered the same sirens. Now their buddies over at Large National Bank Vault can break in, still all the gold and make their getaway without ever seeing a cop car. The phone lines are too busy with thousands of calls about the sirens that the police never hear about the crooks making off with millions.

Luckily for the city of Dallas this hack, as far as we know, was not malicious and had no serious negative reprocusions.

Prompt 3: Exploring Communication

By Tanner Fred

I recently interviewed Jamie Watson, a Sacred Heart graduate who graduated with a degree in computer scientist and now works as a compute scientist for Child Protective Services in Connecticut. During the interview I learned a lot about how computer science to connect to many different fields of work and not only connect to just programming and coding. When asking him how he communicates in his field, his answer was that most of it was electronically through email or some sort of phone direct message. Being in the field of Child Protective Services it is very important that the messages he sends to other agents in the field are direct and sent quickly in case there is an emergency that they may need to attend to in an urgent manner.


One of the common misconceptions in the field is that a computer scientist can only code or can only work as a programmer. Mr. Watson tells that he helps to get around this common misconception by working hard with CPS investigators to track down the issues that need to be resolved and hopefully being able to help in a way that allows the public to see how influential this field can be. The more he is able to help the investigators the greater chance people will realize how helpful somebody with a computer science degree can be even in everyday, real-life situations.

What I learned about the different types of communication in the field is that most of it is preformed electronically, whether it is by email or texting. This is very important because this way messages can be sent quickly and directly, and since most of the job is being preformed on a computer, there is a much greater likelihood that the person will get the message as quickly as possible.

Monday, April 3, 2017

IBM Watson

By Tanner Fred

The IBM Watson super computer is the combination of artificial intelligence and sophisticated analytical software that is used as "question answering" machine. It processes at a rate of 80 teraflops (trillion floating-point operations per second). Watson can access 90 servers with up to a combines data storage of over 200 million pages of information. He has 15 terabytes of Ram and 500 gigabytes of preprocessed information.

Watson is the next step in computer evolution and if more computers can be made this way then there will be an influx of super intelligent computers


Sunday, April 2, 2017

Boston Dynamics

By Xavier Reinders

Boston Dynamics SpotMini traction test
We're going into the future once again with this weeks post as we take a look at Boston Dynamics (BD) with their slogan "We Won't Stop Till We Perfect Skynet and Wipe Out Humanity," or actually "Dedicated to the Science and Art of How Things Move."  Boston Dynamics makes robots to complete general purpose tasks much like humans.  Instead of a robot that can climb a hill or move across a frozen lake or traverse rocky terrain they make a robot that can walk, just walk, anywhere any how. Notice the "art" part of that slogan, for the people at Boston Dynamics its more than just numbers and servos and machines, its design and elegance and dog robots slipping on banana peels. Boston Dynamics is the leader in robots in the USA and probably the world as well as being one of the coolest things you could do with CSE degree.

Boston Dynamics started as a partner of American Systems Corp. working with the US Navy to create realistic computer simulations to replace training videos. After their success in this area they received a contract from DARPA, the US defense fund to advance the defensive arsenal of the country. With the DARPA funding they created a quadruped robot designed to carry military equipment across all terrains. Unfortunately for Boston Dynamics once the delivered the robot the US government raised an issue, they didn't know what to do with it. Despite being an incredible advancement in robotics it was not suited for military work, so Boston Dynamics dynamics tried again, and again and you get the idea. Each attempt was a huge step in robotics built by Boston Dynamics payed for by DARPA and sub-optimal for the US military. Eventually, Boston Dynamics had enough money to just build the robots they wanted to and solve problems posed by investors and other robotics companies rather than military obligations.

Boston Dynamics have currently produced 11 different models each with its own incredible ability. One can jump 4 feet vertically, another can run at a speed faster than Usain Bolt's top speed, some mimic human motion and work to be able to balance like we do. Boston Dynamics is actively building our future, hoping to one day boast robots that are just as varied and versatile as humans.

Prompt 8: Hands-On Experience

Alright, I'll admit it. Last week I paid no attention during my programming class and up until now, I was behind and unable to complete this weeks lab assignment. To be honest, the topic we talked about was boring. Like REALLY boring. Boring enough to make me want to die. Throughout my years of coding, I've realized that I'm not the gifted type who can just listen and learn right on the spot. Sitting down and listening to your professor lecture about code is one thing, but actually coding is another.

The topic last week was on pointers. I won't go into detail on exactly what are pointers as they are quite difficult to explain without having pre existing knowledge of computer science, but they are definitely something that you must practice coding with. Too many things are going on at the same time, with new syntax to remember and formatting rules to follow. The lab that was due was strictly based on a topic I had no idea about, so I was forced to watch many videos, and read powerpoints over and over again.

The one thing I learned during my hands on experience with pointers, or any new subject, is its a lot of trial error.  You type, you run, the computer tells you whats wrong, you fix and repeat. The truth is, programming is sort of like exercising, in that the main way to improve or learn is through constant practice. I had to start simple, just trying to create a pointer, and then later on implementing it in my program. There are no short cuts as the possibility of skipping important information will only slow down your learning experience as a programmer.

Another harsh truth I learned is when trying to complete my lab assignment is that it was easy to become discouraged by just how big or intimidating the subject of pointers seems. This especially the case when it comes to students who are just starting out. As the deadline for my assignment approached, I felt rushed and began to lose focus. At that point I wasn't actually learning but instead just felt like typing walls of bullshit. The solution, as stated before, is to start small and break the problem into smaller parts.

Although its called Computer Science, you are essentially trying to gain the mindset of an engineer. Break up the problem, research, and don't give up. The end goal may be far away but there is no comparison to the feeling of accomplishment.

How to become a First Person Shooter game master.

By Qingyang Li

There are five steps you need to do before becoming a FPS master.

1.Acknowledge your computer devices

You need to know your screen resolution, type of your mouse, and if your mouse can be supported by driven.
In normal way, if you want to play well in a FPS game, The higher of your screen resolution and refresh rate, the better your experience you will be. and if your FPS( Frames per second) below 30, you will feel lag, and cause you dying quickly. So, your computer should be very good to support you.

2.Adjust your device.

There is a function called " Enhance pointer precision, AKA EPP " in every windows system, this function can affect your mouse pointer movement by the speed you move your mouse.
FPS game require you control your mouse precisely, it's a good choice to close the EPP.
DPI (Dots Per Inch) also can affect your pointer movement during the game, we only can use mouse drive to change it, and the lower your mouse DPI ,the better you shoot the targets, but at mean while your camera will hard to move around , if your targets show up behind you suddenly, and you have to use more time to turn around.

3.Change game option

An example of Counter Strike Global Offensive
When you change your screen resolution to 16:9, it is how you see in the first picture.And second picture is when you change it to 4:3.


After compare two pictures, it is obviously that Targets are larger in 4:3 but 16:9 is more clearly.According to change the resolution , you can improve your shoot skill temporary.













4.Good view.

It is important to find your targets first before they find you.This time, we can go to option of the FPS games to adjust the graphic option. There is an example, the games are more like real world now, because everywhere in the games are too real ,sometimes you couldn't find out a target stand there at first time. After change some graphic option, environment in games will not be so real, it's more easily for you to find out targets.

5.Start your training.

A software called Aimbooster, it's a little game, the main purpose of this game is to practice your hand reaction time and the accuracy when you shooting. After some practice , it's called " muscle memory " your hand will remember this feeling and when you are playing FPS game, it is more accuracy when you shoot.

Sunday, March 26, 2017

3D Xpoint, Welcome to the Future

By Xavier Reinders

Lets get this started with a little precursor, there are currently 2 basic types of memory containers utilized by computer systems. First, you have your RAM, random access memory, which is used as a temporary way to process data to help smoothly operate memory intensive programs like video games or complex computation software. It can only store information when the system has power, it is the fastest kind of memory but it is not practical for long term storage due to its pricing and power requirements. That is were hard drives come in, as the second type of memory containter they are massive, storage wise, and are able to hold information even without power. These come in two forms HDDs, typically a lot of space but slower, and SSDs, less space(for the same price) but a lot faster.

A mock up of Intel and Microns new 3D Xpoint
So who cares about 3D Xpoint (cross point) when we already have these perfectly fine forms of storage. Lets compare the numbers, RAM operates at latency time measured in nanoseconds, SSDs operate at latency time measured in microseconds (1000 nanoseconds) and HDDs operate at latency time measured in milliseconds (1000000 nanoseconds). So were does the Xpoint fall, supposedly around the 10 nanoseconds mark, so its a touch slower than RAM but it leaps ahead in other areas.

Like did I mention it was also a form of massive memory storage, although a different thing from HDDs and SSDs. So it has a speed approaching that of RAM with the storage capabilities of a hard drive. Plus a couple extra hard drive like bonuses, it will be cheap and it won't need power to keep things stored. The Xpoint is expected to come in above SSD's in the price per amount of storage department but well below RAM, meaning if you need something of medium size as fast as possible XPoint is the way to go. The fact that it won't need power to keep its ones and zeros also makes it more viable than typical RAM as it will be able to store important things across power cycles (shutdowns and restarts).

So it's the future right? Well not for all of us, it is not expected to replace either RAM or hard drives but rather to work along side them, helping in areas where the other 2 fall short. It is not however expected to make a huge incursion into everyday computing. It will more be seen in the two places all high end computer parts go, gaming and big data. Those little advantages that Xpoint holds will be magnified 1000 times when put on the scale of such massive companies as Google and they will help them achieve
their goal of world domination.

How Graphic Is Revolutionizing The Movie Industry




When most people think of the computer science field, they just think of programming and computer scientists sitting and staring at code all day. In fact, its actually a much broader field than that and extends to a wide variety of different fields that many people would not think of. One of these fields that is included is the field of graphic design.



As movies become better and more complex, it takes a lot to make a god movie these days. Especially in an era where Disney movies are being remade to live action, so real life characters need to accurately portray their animated counterparts. This requires a lot of computer and editing skill that can only be preformed by the most skilled of computer professionals. They have helped to transform the movie industry into what it is today with movies such as The Jungle Book, Avatar and others. Movies from a long time ago had a much less developed method of editing and the graphic were incredibly inferior to those in modern times. It is thanks to computer scientists that we are able to have these improved methods of designing.

All The Resources You'll Need

Whether you are a beginner or an advanced programmer, there are always ways that you can sharpen your knowledge and skills, especially with high quantity and quality resources available.

You want to start but have no idea where to begin? The internet is your best friend.

Codecademy: A website dedicated to teach coding through interact videos and online tutorials with
no prior experience required. They are an education company committed to "building the best learning experience inside and out". Along with individual languages, Codecademy also provides resources for the classroom, including downloadable lesson plans for Primary and Secondary Computer Science curriculums and the ability to test and track the performance of their students.

r/learnprogramming: With over 300,000 users, LearnProgramming is perhaps Reddit's most popular coding community friendly to all experience levels.

For beginners, multiple FREE online courses can be found throughout the subreddit with languages such as Python, Java, and HTML. Have a homework or project question? Submit a post and many users are quick to respond. Interested in starting a specific project such as applications or websites? Their wiki has links to the language used along with tutorials on how to start.

For the intermediate level coders, the subreddit contains tips and tricks on how to improve in their wiki along with many practice exercises and project ideas.

And for the person looking for professional level work, they are also here to help to with information on how you can make money, get a job without a degree or how to break into the industry and get an entry level job.


Cracking the Coding Interview: Finally ready to tackle the real world but have no idea what to
expect? This is the perfect book, recommend by most professional programmers, that teaches you what you need to know, enabling you to perform at your best. When applying for a full time position, coding interviews are different than the typical resume / questions interview you would normally expect. Coding interviews are often a test to see if you are capable of solving real world problems. Many companies with throw short programming questions at you and expect quick solutions with written pseudocode. They already expect you to be well knowledged in many languages but can you use your skills in real life?

Prompt 6: Evaluating Sources:Computer Game Addiction

By Qingyang Li

Several years ago, the American Medical Association decided not to classify computer game addiction as a recognized psychological disorder comparable to gambling addiction.

However, arguments about whether or not to treat computer game addiction as a psychological disorder still continue.

Some psychologists, physicians and researchers strongly believe that computer game addiction is an impulse control problem (similar to an inability to control gambling habits ) and deserves similar recognition as a "real " disorder.

In contrast, there are also mental health professionals (and of course, members of the general public ) who believe that it is incorrect to assume that computer games themselves are addictive and that classification would trivialize serious problems like drug and alcohol addictions.

People who against making computer game addiction said : " Although some individuals may play computer games to avoid addressing other personal issues, this does not necessarily indicate " addiction", but rather a less than ideal problem solving approach to life challenges, stressors, and temptations.

And who agree for making computer game addiction said : " Numerous studies have found associations between computer game addiction and issues such as poor academic performance, work-related difficulties, marital dissatisfaction, poor health, and other psychological problems like anxiety and depression.

So in my personal opinion, as a college student and major in computer science, I didn't see any of my friends who are addicted in computer game or fail class because of playing games. Computer games is interesting that can attract people, and the addiction we talking about mostly will hurt people like taking drugs and too much alcohol, although there still some of people because of computer games did stupid thing ,but it's a way less than alcohol and drugs.

And people can get addicted for everything, is that means they are all harm? What if a person is addicting for study (It's true happened).

And yes, if somebody play computer games too much time, it can influence his/her life, but we should not treat this as a disorder. Most of public ,including my parents ,have bad attitude to computer game, addiction is a problem but not computer games.

Anyway, it's still a good idea to go outside rather than play computer games indoor.