Monday, December 14, 2015

CST 205 Week 7

Week 7

This week is the final week and it's gone pretty well. My team executed the final project nicely, even though we usually end up working on it right before the deadline. I'm pretty happy with the end result. We made a memory game and redrew the squares of an image to help guide the game. The user makes their selection with input in JES. The labs were quick and easy this week, too. It was very nice. In this course, we learned how to manipulate sounds and images. I found sounds to be the most useful, since I've never considered how to work with sound before. Future students will benefit from understanding these things as well. It's useful to understand the best way to save images and audio for your use case. My general advice for future students in this course is to do all of your individual work as soon as it is assigned, since (at least in my group) it is unlikely you'll be able to meet with your group then. When the deadline approaches, you don't have to worry about it. If you don't understand something, I find that my best resource is YouTube and Google. Use them. Sometimes seeing someone else do something or present it in another way can be extremely helpful.

Assigned Readings

How to Get a Job at Google, Part 2 by Thomas L. Friedman (New York Times) 

This article spends a fair amount of time explaining how going to college is worth while and can build a lot of character. In part 1, I believe they had suggested that college may not be for everyone and that many companies, like Google, hired employees without college degrees. This follow-up article feels like it is defending college degrees based on responses to the last article. The gist is that students that work toward a more difficult degree and come out as a "B" student are more valuable than those that come out out easier degrees, like Communications, as an "A" student. Because the student had to work really hard through their career, they show their dedication and problem solving ability. In a career, they'd be able to come up with solutions (and not just have the problem memorized).

Internal Problem Solving Guide

The first point was to read Mind Tools' What is Problem Solving? article. Apparently, there are several named ways to solve a problem. In the article, they describe a basic four step problem solving method where you compare routes you've come up with. The other methods are called the simplex process, the appreciative injury process, and the soft systems methodology. The internal google document provides questions that can be asked to clarify what the problem that you're having is and lists a few ways getting the solution can be approached. The best solution I saw in the document was to have someone else review your work.

Sunday, December 6, 2015

CST 205 Week 6

Week 6

This week we covered lists, dictionaries, reading files, and good programming practices. Python has some nice features for their lists, like joining two together with a "+". So, [1, 2, 3] + [4, 5, 6] will be [1, 2, 3, 4, 5, 6]. Also, it's really neat that the values in a dictionary can be different for each key. It's extremely flexible.

The projects this week have been pretty tame. One lab was an individual lab and the other was a pair programming assignment. Both of them were pretty straight forward and simple. We began working on our final project this week, too. My group is going with a memory card game, so that we can use both the text-based game requirement and the image manipulation requirement. I think we're off to a good start so far and I'll be looking forward to finalizing it next week.

Monday, November 30, 2015

CST 205 Week 5

Week 5

This week has been pretty relaxed (maybe because it was Thanksgiving?). There wasn't nearly as much work as there has been previous weeks. The readings were geared toward debugging. All of the assignments were team projects and basically were compiled into one primary game. The game is a text based choose your own adventure style, like Zork. The idea is pretty simple, but we went through a few different ways to implement the project to make it easiest to develop on. As usual, meeting with the team has been pretty difficult... but we figured it out in the end. I still think we could use some guidance on pair programming. A team of 4 all typing at once in codeshare.io is a bit crazy and I think everyone would benefit from learning how to pair program properly when remote (one "driver" and more dialogue). We have the code for our game on our team's GitHub Adventure Game Repository.

Assigned Readings

Silicon Valley's Race to Hack Happiness by Emma Seppälä, Ph.D (Huffington Post)

This article discussed how people and companies are beginning to create or hold competitions to create applications to help with mental disorders and make people happier. The author explains that depression has increased and more people are looking for ways to make themselves happier, like going to yoga, reading self help books, and now looking for applications to boost their mood. These applications seem fine. Using technology for things that could benefit people seems like a good thing. However, there wasn't any data to back up if these applications are helping or not. Because of this, I'm hesitant to say that this is a good route to take to come out of depression at this time.

Monday, November 23, 2015

CST 205 Week 4

Week 4

This week the majority of our assignments have been focused on sounds. Becoming familiar with sounds and how they're digitized has been pretty interesting. I think I still need to practice understanding the correlation between bit depth and the value. Aside from the sound assignments, the rest of the assignments were focused on string manipulation and access in python. String manipulation has been pretty straight forward since it's similar to other string manipulation functions in other languages. However, splicing and splitting strings is a bit different in python (with the string[:3], string[3:], and string[3:3] syntax). The paired programming labs were a bit better this time with encouraging them to be done together, as a pair. Also, we had to wrap up our midterm project this week, which was creating filters on photos with certain themes. We had to do one that was CSUMB themed and one that was up to our own discretion. I chose a Buffy the Vampire theme. I'm pretty happy with that decision.

Assigned Readings

The Employer's Creed from Op-ed columnist, David Brooks (The New York Times)

Many companies hire people based on their (almost perfect) resume. This article asks that employers look for different things in potential employees, like obstacles they may have overcome. It suggests that these companies should prefer candidates that are different from the rest and challenges them to not follow the social norm of hiring practices. This sounds great and realistic, but that's just not how most companies are hiring (aside from focusing on the cover letter). I do think that you have to have that characteristic or special thing you can bring to a team in order to stand out from the crowd and get a job.

Sunday, November 15, 2015

CST 205 Week 3

Week 3

This week we learned about git and worked in our teams to create cards for Thanksgiving. I use git and GitHub regularly at work, so that hasn't been challenging for me to pick up. The most difficult thing about this week is working in the group with little direction on how to work together as a group. Also, the assignment doesn't feel geared toward collaborative pairing. We were supposed to create a card for each member of our group, leading us more or less down the path of creating our own cards. If we were all forced to create one, together I think it would have been a different story. It's also nearly impossible for all four of us to be at the computer at the same time. We also have a midterm coming up, but it seems like we will still be applying the same kinds of methods we've done up until this point, so it should be pretty straightforward.

Assigned Readings

Pair Programming (Wikipedia)

The Wikipedia page for pair programming currently describes pair programming as having two people working on one computer. the two people switch off being the "driver" and "navigator". The driver writes the code and the navigator comes up with various ways to do operations and acts as the extra set of eyes for bugs. It also details some of the benefits and studies done on pair programming. I have pair programmed quite a bit in the past and love the idea of it. Unfortunately, this course hasn't yet defined any way to go about setting up meeting times and student environments (tools) to facilitate remote pair programming. Instead, we're being directed toward a collaborative git workflow. It's extremely frustrating (from what I'm seeing) for the students because the reading we're directed to provides guidance on pair programming in a situation where the students are in the same room.

Facial Recognition Systems Turn Your Face Into Your Credit Card, PIN, Password (The Huffington Post) by Betsy Isaacson

This article briefly describes that it's possible for computers to recognize and distinguish human faces. A startup company, called Uniqul, released an ad full of hypothetical situations where they showed consumers that could pay with their face. So, there was no real transaction and just a button that the user clicks that says to accept the charge. The company is hoping to develop the facial recognition technology to do this. I'm not really sure how this relates to this course, but I guess it is showing us what we could potentially do down the line.

Autism And Google Glass: Teen's Software Could Help Users Recognize Emotional Cues (The Huffington Post)

Sension is another facial recognition product. This product uses faces to track and test the level of engagement an end user is experiencing and to provide a new way to play video games. This product ended up having an unintended application, which is to recognize different emotions that people are conveying at the end of the camera (found useful when dealing with autism). I'm also not sure how this relates to what we've been studying, but we will see.

How to Get a Job at Google (The New York Times) by Thomas L. Friedman

Google had nontraditional hiring practices. As a programmer, many people will go further if they can learn quickly and face challenges well. I know this is the accurate because I don't have a degree and work as a programmer. There aren't too many people that are in the field without degrees, but I can attest that the ones that are work very hard. In relation to this course, I believe this article was better suited for the ProSeminar course and doesn't really apply to a multimedia design course.

This is the Internal Grading System Google Uses for its Employees -- And you Should Use it too (Business Insider) by Jay Yarow

This is another article that seems to be a better fit for the ProSeminar course, but it basically explains how Google grades themselves on their own tasks. Prior to a particular set of time, they establish several (less than six) quantifiable goals. They are graded on a scale of 0 to 1, where 0.6 - 0.7 is the ideal result. A full 1 would mean the goal was too each and closer to 0 would mean that the goal was too difficult. Perhaps this was a subtle suggestion that we should try out Google's Objectives and Key Results (OKR) strategy for ourselves.



CST 205 Week 3 - Image Portfolio

Image Portfolio

Below are some examples of the functions I've written for my Multimedia Design & Programming course at CSUMB (in Python). 

Week 1 - Lab #3

Rose-colored glasses

The rose colored glasses filter looks at each pixel in an image and increases the red by 25%, decreases the blue by 25% and decreases the green by 25%. This gives the picture a nice, pink tint. Making the pictures pink and not red was a bit challenging.
def roseColoredGlasses(image):
  pixels = getPixels(image)
  for pixel in pixels:
    setRed(pixel, getRed(pixel) * 1.25)
    setBlue(pixel, getBlue(pixel) * 0.75)
    setGreen(pixel, getGreen(pixel) * 0.75)
  return image
original:
 result:

Negative

The negative filter looks at each pixel in the image and changes the RBG value to be the difference between the possible value (always 255) and the actual value. This results in the exact opposite of the original image. This one felt pretty simple and straightforward to me.
def makeNegative(originalImage):
  pixels = getPixels(originalImage)
  for pixel in pixels:
    setRed(pixel, 255 - getRed(pixel))
    setBlue(pixel, 255 - getBlue(pixel))
    setGreen(pixel, 255 - getGreen(pixel))
  return originalImage
original:
result:

Better black and white

The better black and white filter looks at each of the RBG values in a pixel within an image. It reduces red to 29.9%, blue to 11.4%, and green to 58.7%. The outcome of that is combined at set for each color in the picture. I don't remember thinking this was difficult at the time, but looking at it again makes me unsure that it's correct.
def betterBnW(image):
  pixels = getPixels(image)
  for pixel in pixels:
    colorVal = getRed(pixel) * 0.299
    colorVal = colorVal + getBlue(pixel) * 0.114
    colorVal = colorVal + getGreen(pixel) * 0.587
    setRed(pixel, colorVal)
    setBlue(pixel, colorVal)
    setGreen(pixel, colorVal)
  return image
original: 
 result:

Week 2 - Lab #4

Bottom-to-top mirror

This image manipulation iterates through all of the pixels on the bottom half of the image and updates each pixel that is the perfect opposite (on the top) of the current pixel to match, resulting in the bottom-to-top mirror image. The mirror manipulations all just required some consideration before implementing them.
def bottomToTopMirror(image):
  totalX = getWidth(image) - 1
  totalY = getHeight(image) - 1
  for x in range(0, totalX):
    for y in range(totalY/2, totalY):
      currentPixel = getPixel(image, x, y)
      topPixel = getPixel(image, x, totalY - y)
      color = getColor(currentPixel)
      setColor(topPixel, color)
  return image
original: 
 result:

Shrink

The shrink image manipulation creates a new canvas that is half the width and half the height of the original image. It then picks up every other pixel and copies it into the new canvas. The new canvas is returned, which makes this method appear to shrink the original image. The difficult step in this one was understanding what we're picking up and what we're copying to get the desired result.
def shrink(image):
  width = getWidth(image)
  height = getHeight(image)
  pic = makeEmptyPicture(width/2, height/2)
  for x in range (0, width-1, 2):
    for y in range (0, height-1, 2):
      color = getColor(getPixel(image, x, y))
      setColor(getPixel(pic, x/2, y/2), color)
  return pic
original:

 result:

Collage

The collage portion of the assignment took me a lot longer to do than all of our other assignments, mostly because I had to figure out the dimensions of the images after shrinking them to size and/or rotating them and then spend time planning where to place them and in which order since exceeding the page size results in an error. I ended up using a tool that works with google drive called draw.io to assist with this. Also, I'd like to note that I had all of the images in a particular order that I was importing them, but now I see that I should have just created them with the file path instead of selecting them every time. Some of the functions I used to make this collage method are listed above. For those that aren't, they're listed below the makeCollage method.
def makeCollage():
  collage =  makeEmptyPicture(1260, 900) # 5x7
  pic1 = makePicture(pickAFile())
  pic2 = makePicture(pickAFile())
  pic3 = makePicture(pickAFile())
  pic4 = makePicture(pickAFile())
  pic5 = makePicture(pickAFile())
  pic6 = makePicture(pickAFile())
  pic7 = makePicture(pickAFile())
  pic8 = makePicture(pickAFile())
  pic9 = makePicture(pickAFile())
  pic3Rotated = rotatePic(pic3)
  pic6Rotated = rotatePic(pic6)
  pic7Resized = shrink(shrink(pic7))
  pic8Resized = shrink(shrink(shrink(pic8)))
  pyCopy(pic6Rotated, collage, 672, 507)
  pyCopy(roseColoredGlasses(pic5), collage, 886, 0)
  pyCopy(makeNegative(pic9), collage, 0, 0)
  pyCopy(pic2, collage, 50, 204)
  pyCopy(moreRed(pic7Resized, 50), collage, 0, 578)
  pyCopy(quadrupleMirror(pic1), collage, 418, 480)
  pyCopy(noBlue(pic3Rotated), collage, 255, 0)
  pyCopy(betterBnW(pic8Resized), collage, 693, 90)
  pyCopy(leftToRightMirror(pic4), collage, 325, 290)
  return collage

def moreRed(image, amount):
  incPercent = 1 + amount * 0.01
  pixels = getPixels(image)
  for pixel in pixels:
    redAmount = getRed(pixel)
    # Set red amount at max red value if it is over the highest value possible
    if redAmount > 255:
      redAmount = 255
    setRed(pixel, redAmount * incPercent)
  return image

def quadrupleMirror(image):
  totalX = getWidth(image) - 1
  totalY = getHeight(image) - 1
  for x in range(0, (totalX/2)):
    for y in range(0, (totalY/2)):
      currentPixel = getPixel(image, x, y)
      rightPixel = getPixel(image, totalX - x, y)
      bottomPixel = getPixel(image, x, totalY - y)
      diagonalPixel = getPixel(image, totalX - x, totalY - y)
      color = getColor(currentPixel)
      setColor(rightPixel, color)
      setColor(bottomPixel, color)
      setColor(diagonalPixel, color)
  return image

def noBlue(image):
  pixels = getPixels(image)
  for pixel in pixels:
    setBlue(pixel, 0)
  return image

def leftToRightMirror(image):
  totalX = getWidth(image) - 1
  totalY = getHeight(image) - 1
  for x in range(0, (totalX/2)):
    for y in range(0, totalY):
      currentPixel = getPixel(image, x, y)
      rightPixel = getPixel(image, totalX - x, y)
      color = getColor(currentPixel)
      setColor(rightPixel, color)
  return image
result:

Red-eye Reduction

This function looks at every red pixel within a certain range and determines if it has a particular amount of red in the pixel. If it does, the color of the pixel is changed to the desired color indicated by the parameter color (in this case, black).
def eyeCorrection(color):
  image = makePicture('/Users/brittanymazza/Desktop/redeye.jpg')
  for x in range (0, getWidth(image)-1):
    for y in range (0, getHeight(image)-1):
      currentPixel = getPixel(image, x, y)
      currentColor = getColor(currentPixel)
      if (x > 155 and x < 295) and (y > 160 and y < 215):
        if distance(currentColor, red) < 150:
          setColor(currentPixel, color)
  return image
original:
result:

Color Art-i-fy

I find this method embarrassing to put up, but it does what it should. Ideally the if/else statements would be extracted out into another method because they all do the same thing. The logic behind this was easy, but the outcome of my method is not visually appealing. What happens with this one is that the red, blue, and green values for each pixel are set to a particular value if they're within a certain range. Value from 0-63 is set to 31, 64-127 is set to 95, 128-191 is set to 159, and 192-255 is set to 233.
def artify(image):
  for x in range (0, getWidth(image)-1):
    for y in range (0, getHeight(image)-1):
      currentPixel = getPixel(image, x, y)
      redColor = getRed(currentPixel)
      greenColor = getGreen(currentPixel)
      blueColor = getBlue(currentPixel)
      if (redColor < 64):
        redColor = 31
      elif (redColor > 63 and redColor < 128):
        redColor = 95
      elif (redColor > 127 and redColor < 192):
        redColor = 159
      elif (redColor > 191 and redColor < 256):
        redColor = 223
      if (greenColor < 64):
        greenColor = 31
      elif (greenColor > 63 and greenColor < 128):
        greenColor = 95
      elif (greenColor > 127 and greenColor < 192):
        redColor = 159
      elif (greenColor > 191 and greenColor < 256):
        greenColor = 223
      if (blueColor < 64):
        blueColor = 31
      elif (blueColor > 63 and blueColor < 128):
        blueColor = 95
      elif (blueColor > 127 and blueColor < 192):
        blueColor = 159
      elif (blueColor > 191 and blueColor < 256):
        blueColor = 223
      setRed(currentPixel, redColor)
      setGreen(currentPixel, greenColor)
      setBlue(currentPixel, blueColor)
  return image
original:
result:

Green screen

The green screen method I made, called chromaKey, looks at each pixel in the green screen image, looking for pixels with a particular amount of green. If there's enough green, it replaces the color of the pixel with the matching one from the background image. This method does not work when the background is smaller than the green screen image.
def chromaKey(image, background):
  for x in range (0, getWidth(image)-1):
    for y in range (0, getHeight(image)-1):
      currentPixel = getPixel(image, x, y)
      currentColor = getColor(currentPixel)
      if distance(currentColor, green) < 150.0:
        bgColor = getColor(getPixel(background, x, y))
        setColor(currentPixel, bgColor)
  repaint(image) # This is not necessary
  return image
originals: 
 result:

Week 3 - Lab #7

Home made Thanksgiving

Several functions were added for this card to do specific things, like adding the sunshine layer, grass layer, and turkey. The images were cut out based on colors (white or black), similar to how we did the green screen in earlier labs. They're all called from the original, generateCard4, method. The mediaPath variable was set to the directory where the images are (using setMediaPath method), which is why the full path is not shown.
def generateCard4():
  card = getBlankCard()
  addSunshine(card)
  addGrass(card)
  applyTurkey1(card)
  addQuestionableHappyThanksgivingText(card)
  return card

def getBlankCard():
  # Create 5x7 card
  return makeEmptyPicture(945, 675)

# Add "Happy Thanksgiving?" text to card.
def addQuestionableHappyThanksgivingText(card):
  text = "Happy Thanksgiving?"
  textStyle = makeStyle(serif, bold, 13)
  startX = (getWidth(card)/20)*11
  startY = (getHeight(card)/20)*7
  textColor = makeColor(153, 0, 0)
  addTextWithStyle(card, startX, startY, text, textStyle, textColor)

# Apply the turkey holding the sign to a card.
def applyTurkey1(card):
  turkeyPic = makePicture("turkey1.jpg")
  # Apply to center of card.
  startX = (getWidth(card) - getWidth(turkeyPic))/2
  startY = (getHeight(card) - getHeight(turkeyPic))/2
  for x in range(0, getWidth(turkeyPic)-1):
    for y in range(0, getHeight(turkeyPic)-1):
      turkeyPixel = getPixel(turkeyPic, x, y)
      turkeyPixelColor = getColor(turkeyPixel)
      # Don't copy over white pixels to treat turkey background as if it
      # were transparent.
      if distance(turkeyPixelColor, white) > 0.75:
        cardPixel = getPixel(card, startX + x, startY + y)
        setColor(cardPixel, turkeyPixelColor)

# Add sunshine to card.
def addSunshine(card):
  sunshinePic = makePicture("sunshine.jpg")
  # Apply to top of card.
  for x in range(0, getWidth(sunshinePic)):
    for y in range(0, getHeight(sunshinePic)):
      pixel = getPixel(card, x, y)
      sunshineColor = getColor(getPixel(sunshinePic, x, y))
      setColor(pixel, sunshineColor)

# Add grass to card.
def addGrass(card):
  grassPic = makePicture("grass.png")
  # Apply to base of card.
  startY = getHeight(card) - getHeight(grassPic)
  for x in range(0, getWidth(grassPic)):
    for y in range(0, getHeight(grassPic)):
      grassColor = getColor(getPixel(grassPic, x, y))
      # Only color if grass image doesn't look black, which is how 
      # getColor interprets the transparency.
      if distance(grassColor, black) > 0.25:
        setColor(getPixel(card, x, startY + y), grassColor)

originals:
result:

Week 3 - Image Portfolio Assignment

Line drawing

The line drawing method looks at each pixel in an image and compares it to the pixel to the right of it as well as the picture below it and takes into consideration the luminance difference between the two pixels. Depending on the result and the contrast variance variable passed it, it either sets the pixel to black or white. This creates a "line drawing" appearance. In the examples below I've used a contrast variance variable of 3. When we're at a pixel at the very right edge, we only consider the pixel below it. Likewise, when we're at a pixel at the very bottom edge, we only consider the pixel to the right of it. However, we can't compare the pixel to anything once we get to the ver right, bottom corner, so I decided to just look at if it's closer to black or white. I've split the method into 5 separate methods for better readability and reusability.
def lineDrawing(image, contrast):
  image = BnW(image)
  maxWidth = getWidth(image)-1
  maxHeight = getHeight(image)-1
  isBlack = false
  for x in range (0, maxWidth):
    for y in range (0, maxHeight):
      pixel = getPixel(image, x, y)
      isBlack = shouldBeBlack(pixel, x, y, maxWidth, maxHeight, contrast)
      setBlackOrWhite(pixel, isBlack)
  return image

# Return true/false indicating if the pixel should be black
def shouldBeBlack(pixel, x, y, maxWidth, maxHeight, contrast):
  if x == maxWidth and y == maxHeight:
    return getLuminance(pixel) > (255 / 2)
  elif x == maxWidth:
    return isSignificantDiff(pixel, getPixel(image, x, y+1), contrast)
  elif y == maxHeight:
    return isSignificantDiff(pixel, getPixel(image, x+1, y), contrast)
  else:
    isSigRight = isSignificantDiff(pixel, getPixel(image, x+1, y), contrast)
    isSigDown = isSignificantDiff(pixel, getPixel(image, x, y+1), contrast)
    return isSigRight and isSigDown
  
# Return true/false indicating if there's a significant difference
def isSignificantDiff(pixel, comparePixel, contrast):
  diff = abs(getLuminance(pixel) - getLuminance(comparePixel))
  return diff > contrast

# Return the luminance value (0-255) of a pixel
def getLuminance(pixel):
  return (getRed(pixel) + getBlue(pixel) + getGreen(pixel)) / 3
  
# Set the pixel to black or white depending on the isBlack value passed in
def setBlackOrWhite(pixel, isBlack):
  if isBlack:
    setColor(pixel, black)
  else:
    setColor(pixel, white)
original: 
 result:


Monday, November 9, 2015

CST 205 Week 2

Week 2

This week we learned about a lot of things, including if statements, conditional operators, and adding items to images using method written in JES. This week has felt a bit more confusing because the language in the assignments doesn't appear to be geared toward the online class. The descriptions say to pair up and call the teacher over for help, but it doesn't work too well like that online. I think it's caused a bit of confusion. Also, the version of JES I'm using is very outdated (using legacy versions of Java and Python). I get the feeling that there are students struggling with the environment itself or trying to use features that don't exist in those languages yet (append for strings in Python). Hopefully next week I'll have time to try out the latest version. Aside from the technical issues, we have learned a lot this week. I'm surprised that we're already doing nested for loops and if/else statements in the second week of an introductory programming class, but I'm glad we're moving quickly so we can get to the interesting stuff quicker. This week we took an image that had a green screen background and replaced it with another background. Replacing a green screen background in an image was fun, though a bit frustrating because you had to make sure your background was larger than the image with the green screen.

Assigned Reading

Angela Lee Duckworth: The Key to Success Grit (TED Talk)

Angela explains that the largest key to perseverance and success (in this case regarding education) is having grit, which she defines as being strong, having a good work ethic, and having long-term goals. Students without grit tend to drop out more or stop short of their goals. She briefly mentions the idea of having a growth mindset and how that has been the only factor that would help students gain grit. It caught my attention because Dev Bootcamp covered a lot of the ideas behind having a growth mindset. It would have been nice if she explained it more because I believe it would have been beneficial for some people to hear about.

Twilight of Lecture by Craig Lambert (Harvard Magazine)

I whole-heartedly agree with this article. Personally, I learn so much more when I'm able to "play" with and idea. Having someone to talk to and engage in a discussion with significantly increases the amount I'll take in and helps me to get my ideas settled. I'm currently enrolled in another course (Data Structures) that has a three hour lecture and the professor lectures the entire time. Unfortunately, I don't think any students are learning anything from it. I can see how beneficial it would be to flip the learning style of that course. However, I can also see how students would be upset with the change. Students are so used to the standard process of sitting silently, listening, and taking notes that they have a difficult time seeing or understanding how a different style (where you listen to the lecture before class and discuss with peers in class) would be beneficial.

Learning to Think Outside the Box by Laura Pappano (New York Times)

This article is all about the importance of being creative. Being creative can be beneficial in regards to computer science because we're always trying to come up with the best solution to a problem. When you can looks at several different ways (some much better than others) to solve a problem, you can usually find a more ideal one in the bunch. Creativity is very helpful when it comes to problem solving this way, too.

Saturday, October 31, 2015

CST 205 Week 1

Week 1

Learnings

There were a bunch of topics covered this week. I've learned a bunch about file formats this week. I had never really considered or investigated the difference between image (.jpg, .png, .tiff, etc.) and audio formats (.mp3, .mp4, .mov, etc).  In addition, we finally started some actual programming. Going through the basics of Python has been fun. I haven't ever programmed in Python, so it's been fun to see the differences between what I've learned in the past and Python. I love how simple it is to get up and running. It's perfect for beginners. The integration with Code Academy has also been great. I really enjoy and appreciate the various ways we are learning here (mainly the more hands-on approach). We've also learned about how images are created and what happens when they're compressed into various formats. These are useful to know to make smarter decisions about how we're storing content on whatever devices we're using.

Struggles & Obstacles

I can't say there have been too many struggles or obstacles. Getting used to the quiz structure in the course has been a bit frustrating. My first few quizzes I kept missing items and it was completely frustrating me. However, I think I've learned the teacher's quiz technique and can better read the questions now. Another small obstacle was obtaining pictures for the group assignment this week. We had to collect images of letters that spell the work "Python". I ended up spending a morning before work stopping and taking pictures of random businesses and signs on my way to work. That kind of threw my day off a bit, but it was the best time to get it done. Overall, getting together with a group that doesn't have a devoted class time can be very difficult. We all get on at our time and don't really end up all online at the same time, so that can be a bit frustrating since it takes us much longer to finish a task than it should.

Saturday, October 24, 2015

CST 300 Week 8

Week 8

This week we had it much easier by only having to focus on our paper and our videos. Collaborating on something like a video can be very difficult, but I am glad that my team pulled through. It was also a bit crazy because we had some due date mix ups that left my team without me on Saturday (I was out with people visiting town). They ended up getting a large portion of the project started. I came in on Sunday and added some extra bits. We were opting to be consistent in the voice route, so all of us were going to record full audio and pick who had said it best from there, but we ended up going with mine for the long video. I think that the video project would be better if it is only one video to produce instead of two, or if the due dates are broken up (by like weeks), so that the content could vary more.

Significance of CST 300 (ProSeminar) at CSU, Monterrey Bay

Through this course, I have learned a lot more about ethical issues in technology that I hadn't really considered. I've also revisited goal setting, learned various ways to improve my study habits, and was reminded of the importance of time management. My team mostly communicated through google hangouts through our CSU, Monterey Bay accounts. I think this was easiest since we have all been assigned accounts and have to get on to complete homework anyway. I tried to make a point to check the account each morning to stay current. This method didn't work out once (otherwise, just fine) very well for me when my team had worked mid-day on Saturday without advance notice. I didn't notice until the next day. This course covers material that is relevant to the tech industry as a whole, with the ethical issues in the industry and such. This course has also prepared me for what the next courses will be like.

Final Research Video Project

Team #5 (BITsoft Consulting) on Secure Payments:
  • Long Video (~13 min):
  • Short Video (~2 min):

Review Other Teams Videos

Team Listed Below: Team Startup Solutions (Team 3) on Drone Technology

This group made their video much easier to watch by speaking with excitement in their voices, using videos of drones flying, and adding music throughout the video. They also have really good content. I'm very impressed with this group (and also kind of envious). Even though they were each rotating who was talking (which can be distracting), they made it sound pretty seamless.
  • Long Video:
  • Short Video:
  • Assigned Questions
    • Is the topic well covered? 
      • Yes, this team did an excellent job researching drones. They cover a lot of topics. I don't know what they could be missing. 
    • Is the presentation clear?
      • Yes. They all enunciate clearly and speak slow enough for me to understand what they're saying. They also tied drones into day-to-day use well.
    • How is the quality of the research?
      • It appears that they researched drones very well.
    • How is the quality of the video production?
      • Great, they tied video clips to music well (on top of their own voice recording).
    • Is the video engaging and interesting?
      • Yep! Way to pull me.
    • Is the team work evident?
      • Yes. They all spoke on the video and it sounded like they had a good plan on what each of them were talking about.

Team Listed Above: Team Enterprise on Tactical Assault Light Operator Suit (TALOS)

This presentation was in a slide format with no animations, which is great. They did a nice job covering their topic and accurately aligning their slideshow. Also, having the same theme for the slideshow was nice and didn't make it feel scattered. Topics were in chronological order (past, present, and then future).
  • Long Video:
  • Assigned Questions
    • Is the topic well covered? 
      • Yes, they provided tons of information regarding space probes. They were especially thorough on the history of space probes. 
    • Is the presentation clear?
      • Yes, they spoke clearly and provided plenty of information on their slides. Although, it would have been nice if it was shown in timeline form as opposed to bullet points to better visualize what they were saying for the history section.
    • How is the quality of the research?
      • Great, they definitely provided quality research. 
    • How is the quality of the video production?
      • The video looks really great. 
    • Is the video engaging and interesting?
      • Yep. I followed along with no problem at all. It helped that all of their sound quality was good.
    • Is the team work evident?
      • It appears that they worked well as a team and defined what topic each person would cover.

Random team: Team AppTyx on Driver less Cars

I really enjoy the topic of driver less cars and it's nice to get an overview of what's happening with them. They pretty much covered anything I could think of related to the topic. My only suggestions would probably be to use a consistent voice or fewer voices and maybe use less text on slide shows. Some of the images have more text in them, which can be a bit overwhelming.
  • Long Video:
  • Short Video:
  • Assigned Questions
    • Is the topic well covered? 
      • At almost 20 minutes, they definitely covered the topic. Their topics ranged from how the cars are operated to what companies are invested in the cars. I think they may have covered every aspect...
    • Is the presentation clear?
      • Yes, all of the team members did a nice job of speaking clearly and enunciating.
    • How is the quality of the research?
      • The research appeared to be exceptionally thorough. There were a few bits that completely blew by me, but I think there was just a lot of information to take in.
    • How is the quality of the video production?
      • The video itself looked like the slides were well done. The variation in voices can be a bit difficult to listen to, but that's what tends to happen when there are large teams creating videos like this.
    • Is the video engaging and interesting?
      • The video has interesting content, but I can't say I was glued to the screen.
    • Is the team work evident?
      • The execution of these videos is pretty clear. It looks like they divided up the sections and each presented on their assigned topic. It is nice, though, that they constructed the slide show together.

Monday, October 12, 2015

CST 300 Week 7

Week 7

This week has primarily been focused on the final essay, which I really appreciate. Last time I felt like there just wasn't enough time to get the essay written and review it a couple of times before it was peer reviewed. This week has provided some much needed padding, especially since this one's longer and I haven't quite found the thing that gets me excited about this one. The reading and videos were all pretty short and have been preparation for our final projects. When I read and listen to things of this nature I get it, but actually acting things out in front of a camera (or not) is when I really struggle. I have been enjoying being able to hide a bit behind my computer for the course thus far.

Final Presentation Update

It can be difficult to plan something when you don't know what you're working on. Half of this week went to coming up with topics for the final presentation and voting on them. My team only has three members, so we each submitted one topic. We haven't been told what our final topic is going to be as of writing this (Monday), so I guess I'll see what we come up with next week.

Presentation Skills Reading/Video

  1. Where Good Ideas Come From: While I took note of the drawing method for presentation purposes, the content was very interesting as well. Most of the time a creative thought is developed over time. The initial inception of the thought isn't considered viable at that moment, leading it to be discarded. Sometimes the idea becomes creative by colliding with another thought in order to become and overall idea. This other thought could come from another person or oneself. The point that I gather is to not rush creative ideas, step back, and let some come to you.
  2. Life After Death by PowerPoint 2010 by Don McMillanDon McMillan covers several bad PowerPoint habits people tend to have when making and given presentations (in a comedic way). A few of the bad habits he covers are how people put everything they're going to say on the presentation slides, they overuse blinking and moving fonts, use excessive bullet points, add pointless animation, and overuse acronyms. Basically, most of the presentation can (and should) be done verbally. Keep the slides simple with key points.
  3. Public Speaking Tips from Toastmasters International: The different sections that the page links to takes you to various tips for different types of public speaking, like giving technical briefings, accepting awards, and using props. Most of the advice seems to be directed at knowing the audience and ensuring that you don't use too much industry jargon. Also, know what physical movements are okay for the situation you're in.
  4. 20 Great Examples of PowerPoint presentation design: There are a couple of examples on this page that aren't very realistic because it's designed like a dialogue. It's great for someone that's reading it from the computer, but not so much for a live presentation. I really enjoyed how one of the presentations had the visual table of contents, so that the reader can follow along. Overall, I've found that I prefer the simple slides without the animated or drawn characters, like this one from Digital Surgeons:

Review Ted.com Presentations

  1. Jamie Bartlett: How the Mysterious Dark Net is Going Mainstream (relates closely to academic study)
    • Content: Jamie Bartlett believes that everyone currently in society will end up using a dark web interface in the near future regardless if it's for a good or bad action. The dark web encrypts IP addresses, so that users can browse the internet without giving their location away. They've been able to secure transactions for products by using a third party to verify a transaction, multi signature escrow payments, and sending data to a scrambled digital wallet. We're going to be using these tactics because they've had to be more creative with protecting their privacy to survive and we are now looking to protect our privacy on the internet globally.
    • Presentation Style:
      • Uses static images with boxes that highlight what he's discussing.
      • Uses his hands when discussing topics.
      • Uses simpler words to make it easier to understand him.
      • Speaks slowly.
      • Feels like he's conversing with you instead of talking at you. 
  2. Neri Oxman: Design at the Intersection of Technology and Biology (relates to interest or passion)
    • Content: Neri Oxman discusses how she's been able to use photo synthetic materials to create new items. Her lab has been able to do this with additive manufacturing (3D printing). She displayed their first photo synthetic wearable, which is an external digestive system to be warn as clothing. She shows an example of how humans and technology can come together. They used synthetic silk, spun onto a large pavilion with a robotic arm and set a ton of silk worms onto it, which then spun more natural silk on top of it. It's super interesting to see technology intersecting with biology in this way.
    • Presentation Style:
      • Short video clips that emphasize her point.
      • Static pictures.
      • Constantly moving around the stage.
      • She also speaks slowly.


Tuesday, October 6, 2015

CST 300 Week 6

Week 6

We've had a lot of team projects this week, so it's been a little difficult to get everything done as we need to get together as a group (which limits times we can complete homework). I have enjoyed learning about different types of fallacies and trying to find them in the current media. I know that they're everywhere, but I still am not very quick to find them. Hopefully, I can strengthen this with time. I also liked getting a brief introduction to what we will be working on in the next course. I've done very mild programming with python (mostly fixing up scripts) and look forward to getting full development done with it. My team started a little spreadsheet where we can log our ideas for our final project. We have a few, but haven't really gotten to fleshing out how this is going to work. The guidelines are extremely broad at this point. I'm assuming we will have more guidance for this project next week. We also had a personality test assigned this week, but I've followed the MBTI personality types for a while and know that I'm of the type ISTJ.

Career Development Readings [1] [2]

While the careers site isn't very useful, the career guide that CSU, Monterey Bay offers is very extensive and I've enjoyed looking through it. I already have a job in the tech field, so I am not looking for an internship or to get my first job. However, most of the advice is general and applicable at any stage in your career. I hadn't heard the 1 minute commercial idea yet and I really like it, so I will probably take that on with me on my next career move. Also, it's always good to refresh your resume and consider what you'd like to see on it. However, it's difficult to get good interview advice from a document like this. Ideally, we would have mock Skype interviews or something to give us better guidance on how to behave, or what to avoid in an interview. 

Career Development - Job and Internship Search

This section touched on researching the companies that you're applying for, which is very important. Companies love it when you know about them and are excited to work for them. It also makes the conversation go so much more smoothly. The guide also provides resources for finding jobs like the Otter jobs website and career fairs. There are also a ton of job searching and posting tools online that are helpful. The job and internship search guide has some very useful advice, like getting together what you will say in that introductory minute when beginning to talk to a company. I have practiced several of these things. However, in my very limited experience the "shotgun" approach has worked for me. This approach involved applying to everything and interviewing everywhere (regardless if you think you're qualified or not). It gave me a lot of practice and I was able to find a company that I really liked that way.

Help Your Teammates to Develop Capstone Ideas

While my team focused a bit more on our final project videos, we also discussed a few capstone ideas. So far we have mostly web based applications, but I'm sure we can come up with more solid ideas as time goes on. Here are some of the ideas we've come up with:
  • white noise maker mobile application
  • grocery shopping list mobile application
  • karaoke on chromecast where content can be obtained from users, or crowdsourced
  • coffee review mobile app where you can detail how you liked your coffee and add notes regarding the roast, grind, brewing method, and proportions
  • emergency preparedness application, where users can get emergency kit suggestions and quick escape routes based on their locaiton

Monday, September 28, 2015

CST 300 Week 5

Week 5

This week we covered a bit about making and editing videos for YouTube. This appears to be leading into a presentation that we will have to do soon via video, which is making me pretty nervous. Every time I have to make a video for something, I end up worrying about it way too much and stressing out. Granted, I don't like in person presentations either. We've also been looking over internship and graduate degree information. Personally, I won't get an internship in the field because I'm already working in the field. However, I can vouch that an internship is a great idea. We have three interns at my work right now and I have watched several of the interns become full time employees since I've been at the company. I am currently planning on looking into graduate programs in the future, but right now this degree is definitely my focus. When we graduate, it will have taken me 10 years to get my bachelor's degree. So, baby steps for me! We've also been starting the prep work for our new essays. I'm doing mine on 3D printing and intellectual property. So far, I've found some great stories and articles on the topic and have been getting very excited about it. Unfortunately, I've been very busy this week and am behind (which I hate). Hoping to catch back up next week! 

Support and Comment on Teammates' Goals

Again, I'm reviewing my only two teammates on their educational and career goals:

John's post describes his goals as being largely directed at providing his children with a good education and retiring early. John and I have pretty different goals, but I can relate to retiring early (I've been doing the best I can to save money for that). All of his goals appear to lead up to that and I think that's enough to motivate him to accomplish them. Perhaps he could look at some of the applications for Genentech (or a similar company) and incorporate some of their requirements into his goal planning. Or, he could focus on setting a more specific timeline for his goals (outside of the CSUMB program).

In Ashley's post regarding educational and career goals, she explains how she has goals, but doesn't want to be let down by them. I understand that because I have also been let down by my own goals (which is how I ended up in this program). Instead of making long term goals, she would benefit from short term "bursts" of goals to help lift her goal setting spirits. Goals that take too long to accomplish can be easy to get away from. Building up the momentum this way might make goal setting a much more fun task.

Possible Capstone Ideas

Here are a few potential ideas for my capstone project:
  1. A karaoke application using the Chromecast and a cell phone as a mic. 
  2. A virtual recipe box where you can scale your recipe to fit the number of servings and create shopping lists.
  3. A natural disaster preparedness applications that picks up your location and give you recommendations for emergency preparedness kits and guides. So, if you live in a tsunami zone or earthquake zone, the recommended items would be specific to what you would need. It would also provide a printable document that describes where to go or what to do in those situations.

Tuesday, September 22, 2015

CST 300 Week 4

Week 4

Having just withdrawn from my philosophy course at Santa Monica College this week, it was kind of funny to have more philosophy reading. I've enjoyed reading the assignments on ethics and really look forward to doing research for my ethics paper. This has made it a little difficult to keep my eye on the industry analysis paper. Since I didn't get any reviews from my peers online for the industry analysis paper, I had my parents and my significant other review my paper. I think they all came up with good critiques, but it's been difficult to get the time in to address all of them. I'm still proud of my paper and hope that shows. As far as the lecture section of the course goes, I've done goal setting practices before so it doesn't feel like I've really learned anything new there, but I understand why it's emphasized. One small complaint is that it would be nice to have links to pages that don't require a subscription.

Reading on Goal Setting

Again, there were a few pages that I couldn't completely finish reading because you have to be a member, which were the pages on backwards planning, well-formed outcomes in goal setting, and personal mission statements. However, I get the idea of some of them. From the pages I was able to access, I acquired some good tips, like making each goal statement positive and sure. It seemed very light to acknowledge and move on if your goal isn't attainable. I thought that could be pretty demoralizing.

Here's my goal plan for owning a home:
  • 10 year: I will own a home.
  • 5 year: I will have a Master's Degree.
  • 1 year: I will have either a promotion at work or a significant pay raise.
  • 6 mo: I will know which city I want to buy my home in.
  • 1 mo: I will know my preferred school where I will go for my master's degree program.
Based on the quiz (I got a 56) "How Good is Your Goal Setting?," I need to work on my motivation. Perhaps I'll be following some of their advice to make some quick wins. However, It was pretty dead on about me being super prepared.

Career Goal Setting Reading

After reading this, I've realized that I really need to work on networking and negotiating to prepare for my next potential job. There's some very solid advice in this article. I believe it's easy to look over or not consider how much you're worth. Putting a price on yourself can be a daunting task and many people (like me!) probably price themselves too low. Also, some fantastic advice in this article is to begin tracking accomplishments. Listed here are the 7 career goals you need to succeed:
  1. Know your worth. Know how much money you should be making.
  2. Track accomplishments. Track accomplishments as you achieve them.
  3. Networking. Networking is the best way to get your foot in the door for a better career, or really anything. 
  4. Self assessment. Consider where you're at. If you don't like what you see, make goals to change that and get to a state you'd like to be in.
  5. Update your skills to keep up with change. Lots of change happens every day. Learn new things in any field to keep yourself relevant.
  6. Negotiate. Getting an offer and negotiating pay is part of a business transaction. Use it like it is.
  7. Allow for downtime. Rest and have fun outside of work!

Educational Goals

These are set up in a two year spread, as that's approximately the duration of the program.
  • 2 year: I will host an application that I've built on my own server that I've built.
  • 1 year: I will know how to set up my own server.
  • 6 mo: I will have the MVP for an application built.
  • 1 mo: I will know which application I want to build.

Career Goals

My career goals are as follows:
  • 10 year: I will have a job that I can see myself at for a long time.
  • 5 year: I will have attended many meet up events and intertwined myself into the community to network.
  • 1 year: I will know what I need to do to get the position I'd like at the company I'd like.
  • 6 month: I will have a list of companies that I would like to work for, where I can build something meaningful.
  • 1 month: I will have learned a new technology while at work.

Review Team Members Time Management 

Since I only have two team members, I will be reviewing both of theirs. It's difficult to compare theirs to mine, as I don't have a family (only a significant other) and both of them do. John and I are similar in that we're both trying to race from work to an in person class and then do homework following that for this course. Ashley and I are not so similar because she still has a young child and needs to be home taking care of her child after work.

For John my comments and suggestions are:

  • Pack a sandwich or something for dinner to keep him going through class.
  • Talk to instructors regarding work conflicts if tardiness is a regular issue.
  • Stick to his planned schedule, or don't schedule his time as tightly.

For Ashley my comments and suggestions are: 

  • Log what she's actually doing and look at what areas her time is going to. Prioritize the schedule and adjust accordingly.
  • Look at the syllabus. While there isn't complete detail on assignments, there's at least an overview of what will be happening.


Sunday, September 13, 2015

CST 300 Week 3

Week 3

This week has been a bit crazy with the rough draft of the paper being due and everything. I had all my resources and paper structure ready to go, but it still took me about six hours to write six pages. I guess I overthought a lot of it. And after I submitted it, I was looking over the requirements for reviewing another paper and immediately noted some mistakes. It's an "oh, well at least I'm leaving someone something to review" kind of moment. Just too tired to open it back up and make those corrections this week. Next weekend sounds like a better, more fresh start. The lecture section seemed incredibly light. I am assuming because of the time commitment for writing our papers. I really appreciated that this week. I'm getting settled into my other courses. I didn't have any homework for my data structures course this week (don't know why not), but it did free me up to get excited about and put some extra effort into my paper. Oh, and I did fill in my time for my appointment with Claudia after she sent it out so I guess we will get to review all of our schedules for the next couple of years. Maybe it's a good time to ask if the course I'm currently taking will actually apply to my missing general education course requirement...

Time Management and Study Strategy Websites

St. Nobert College's Project Management page

Most of the information on this site I've seen at some point in time. I did, however, like that they listed a more detailed section of the different phases. It always seems like there's so much that happens in the development phase that's glossed over. As I expected, the development phase has a lot of items. Also, I like that there's a "SMART" acronym for judging if the goals are good, even if it's vague to be able to really set them by the acronym. The problem with setting these goals is that we're all human and guessing deadlines and things related can be exceptionally difficult because it's a difficult thing to judge. While you may get better over time, it's never going to be perfect. The project network graph was new to me this time around. It's interesting that the nodes are points in time, as opposed to particular points of the work. This format makes me uncomfortable with the dummy activities. It doesn't feel very clean.

MindTools Time Management page was actually assigned last week as well, but I didn't get to writing about the information on the page last week. 

There are a ton of links on this page and the structure, while looks nice, deters me from wanting to use this page. While one of the pages within this page also defines "SMART," they do it exceptionally brief. Like, just what the letters stand for. That does't provide too much insight and it makes it easy to skip over.

Living with someone else makes me really appreciate the section on time management challenges. I've always considered myself prompt and actionable. But, that's changed a bit since living with my significant other. It still drives me crazy if we're even five minutes late somewhere. Unfortunately, I'm not a member of MindTools (and I don't really want to be) so the article is cut off prematurely.

There are some pages that aren't cut off and they're pretty good, but I feel like I've seen or heard most of it at some point in my life. I grew up in a household filled with self help books and even did an online Stephen Covey workshop a few years ago with my mom. Anyway, I suppose they're all good reminders for how we should plan our days and avoid distractions while in our productive time block. A lot of these are good to read and you might remember a few when you're out in the world again, but realistically the average person will probably do so for maybe a few days and then return to their same, bad habits.

The Study Strategies and Guides on time management page

Universities need to decide if they're just there to excel their students, or if they're a stepping block to a career (granted, they could mix the two quite successfully). Unfortunately, it seems that students think that it's necessary to attend college to get a nice paying job and many universities aren't helping them do that (because that's not what they're designed for).

From there, I think the computer science department at these universities can take the advice relevant to them in the article.

For those using college to get a degree, I definitely agree that those perusing careers need to have publicly available code, live projects to demonstrate, and a portfolio in addition to having a resume. However, there is a lot of strength in a resume. Many employers won't even look at a student's portfolio without first viewing their resume. Schools should also be helping out with the resume. I completely agree that each student should learn IDE-less software development. This allows the student to get up and running on any system. If they run into a pair programming interview on a system they don't know, they will at least be able to use the basics (command line and vim).

Regarding programming just for the knowledge base, there are many items within this list that I should and would definitely like to know. Like, the IT things and general networking. All of the cryptography section is extremely relevant right now, especially with all of the data leaks that have been happening. Ideally, no one would graduate from college with a degree in computer science and store passwords in plaintext (or something crazy like that). I find it interesting that there isn't more of an explanation on testing. There is one, but it's become very important to many people in the industry to add test suites to their products (mostly integration and unit testing). Overall, there are some pretty solid recommendations.

Monday, September 7, 2015

CST 300 Week 2

Week 2

Learning Strategy Reflection

There are many resourceful study suggestions within Bob Kizlik's "Effective Study Sills" article. There are many good studying reminders that he covers, like having a set study place. It's like the practice of only using your bedroom to sleep, so when you're in bed your body knows that it's time to sleep (which I actually follow). I think that is the most solid advice. I hadn't heard of the Survey, Question, Read, Recite, Review (SQ3R) method before and I really like the idea behind it. The acronym could use some work, but the process of actively learning is great and I will try it out. 

My strengths

  • Making and Revising a Schedule My free time has always been consumed by organizing and planning out everything. You should see what happens when I am in charge of Thanksgiving dinner! I will have the most perfectly planned out study schedule.
  • Taking Notes I take notes daily. There are many reminders and questions (mostly to myself) throughout my computer, phone, and on post it notes at home and at work. Taking notes for assignments is no different. It makes studying take longer, but it can be worth it, especially when wanting to refresh your knowledge base before exams.
  • Preparing Outlines and Writing Papers Preparing outlines goes along with my obsessive nature with organizing. Preparing an outline is possibly my favorite and most looked forward to part of writing a paper. In fact, I do this when writing simple emails to coworkers or making event schedules with friends. I always want to ensure that I cover the right topics.  

My weaknesses

  • Reading Unfortunately, I'm not great at completely focusing on the text in front of me. I find myself rereading paragraphs way too often because I have zoned out and am not in tune with what's going on in the text. Actively reading would prove tremendously helpful to me and I wouldn't be eating up so much precious time with my rereading!
  • Surveying Skipping straight ahead to the content and not considering what I'm going to be looking at is definitely something that I should improve. Many times I find that I haven't even read the title of what I'm looking at. Just want to find the quick answers in the thick of it.
  • Not Reading Aloud to Myself I had no idea that this was actually bad practice. I usually read aloud to myself thinking that I will understand something better. This is a lot of the reason why I want to study at home (I don't want to be the crazy person at the local coffee shop). I'm going to try it and maybe it will improve my overall reading abilities.

Preview Time Management Skills 

Mind Tool's Time Management information is useful, but I am pretty comfortable with my time management skills. I'm very focused and stay on task, especially at work. However, sometimes I can overbook myself and need to learn to scale back my load in order to not overwork myself, making me feel exhausted. See my day spent at work is described in my activity log below.


Project Management Basics

There are a few videos or slideshows covering project management. A summary of each video is described below their heading.

Introduction to Project Management

This video is very similar in content to the project management slideshow from Corpedia that is described below. A project manager (PM) oversees a project, which is a task that has a set beginning phase and ending phase. Within the project there are specific phases like initiating, planning, and execution. The PM is there to ensure that their project won't fail due to time, cost, scope, or quality issues.

Project Management Introduction ("An Applied Framework for Project Management" Corpedia Education Course)

Again, this video describes the different stages of project management. However, this slideshow also describes the different roles of people that could be involved in a project (aside from the PM). They bring up the stakeholders, sponsors and team members as well, which I think is much more important that the PM alone. It also covers how goals are met much better with a project management system.

It's interesting to see such a broad overview of project management. Since I've been working in the industry, I've really caught on to the shortfalls of project management and the technical team members. In this slideshow there was a section where they went over different stages of a project. Having a section for execution and nothing more involved is basically what I've seen when working under a corporate PM and it left me extremely unsatisfied and frustrated at times. There's a lot more that goes into execution for a tech company (like quality assurance, refactoring, etc.).

Project Management: What is a work Breakdown Structure (WBS)?

The lady in the video explains the importance of defining the "deliverable" for a project in order to keep the team on track, with an end goal in mind. She explains the importance of defining a hierarchical structure with the overall project at the top and the individual tasks at the bottom for defining the entire scope of the project. This hierarchy can include sub projects, phases, and small deliverables. However, there should be one overall deliverable item that the project will return.

Project Management: What is a Gantt Chart?

The Gantt chart is a horizontal bar graph that indicates time periods. Each bar in the chart can indicate a task. While some tasks may have to wait until another is complete, others may be done concurrently. There can be many indicators in these charts, like their completeness, the relation to today, and a variety of estimated durations. Gantt charts can also be created in Microsoft Excel.

Previous Capstones

At the end of the CSUMB online bachelor's degree program there will be a capstone project that I will need to complete. Here is an overview of a few previous capstone projects: 

Capstone #1 - Steebly Collaborative Programming Tool

Steebly was a project that allows developers, or aspiring developers, to collaborate live with a their group. The project appeared to have been done very well, supporting several different languages. Also, their team shirts made them seem very official. Of course, there's always room for improvement (especially in an agile process). I'm glad they chose a dark theme for their tool, but maybe they could later add a feature to let the individual user choose their theme. I'm also sure they could revisit some of their initial methods and improve their web application's efficiency. 

Capstone #2 - Eagle Eye Ag Tech Graphic Identity Package

The graphic identity package designed for Eagle Eye Ag was a project that basically bootstrapped marketing tools for a company called Eagle Eye Ag Tech. While the project's presenter seemed he could have used some practice presenting the project, the information he presented in his slides appeared that he did the project well. The logo came out nicely and looked appealing on marketing materials. I would have been interested to see what website he came up with using Dreamweaver. 

Capstone #3 - Traditional Chinese Health Concepts Animation

This capstone is a five minute animation of information regarding tradition Chinese health concepts. There were some still images of the project and the process of creating the animation on the slideshow, but it would have been nice to see a brief clip of the animation at some point (even if it's just a gif) that plays on the slide. It's impossible to tell from the slideshow presentation if the project was well done, but the presentation was nice and he was informative regarding his execution. 

Weekly Summary

This week has been crazy busy. I have been studying all night after work each day and still feel behind. I've started two more courses and settling into all of them is taking some time. I rewrote one of my course's syllabus' because there was too much padding (I learned that this is a legitimate criticism this week thanks to the reading assignments for the lab) and I couldn't easily find what I was looking for when referencing it. 

New Rules

Reading Thomas L. Friedman's "New Rules" article was a pleasure. He perfectly illustrates how America as been told in recent decades to just work hard and that's all you need to succeed and it's no longer enough. Unfortunately, I've seen too many people work harder and still not succeed. Working along side people at Starbucks with degrees that couldn't get a job and myself being one of those people that was hired for a technical job with no formal education allows me to relate to Friedman's point.

Writing Lab

The writing lab has been a bit steeper in work load this week. This week I've been considering my industry analysis paper so much more than last week. Reading through all of the APA formatting guides has also been a bit different. I'm working on committing it all to memory, as I've been used to MLA format. For some reason I'm consistently missing a couple of questions on the quizzes for the reading assignments. There is always at least one question that I don't know where to find. I read all of the material and find it frustrating that I'm still missing things. Maybe one of these weeks I will actually get all of the answers correct. 


Tuesday, September 1, 2015

CST 300 Week 1

Week 1

This week we spent most of our time introducing ourselves in various ways and getting acquainted with one another. Many of the other students in the program are also working full time while trying to obtain their degree on the side. While I'm somewhat worried for all of us, I'm also relieved that I'm not the only one. I've been very nervous about how I'm going to be able to complete all of the assignments with regular life events happening on the side. Most of the material was either preparatory to get us ready for the intensity of studying online, while other material was a refresher. We had a large reading that covered several types academic writing (essays, journals, etc.) that was helpful for me since I haven't taken any courses in about two years. There were also a couple of forums, which were mostly basic introductions and experience descriptions.

5 Step Strategy for Student Success

Overall, the steps covered in the 5 Step Strategy for Student Success with Online Learning article were good advice. However, for myself I will have to tweak many of these. For example, the article recommends logging onto the course home page at least three times a week, but for myself I know it would be beneficial to just make it a daily habit in order to keep myself up to date. I'm planning on opening up iLearn every week day prior to work to check up on what's happening. That should keep me on track since it's a constant reminder that I have things to do. Making connections with classmates is probably the best advice in the article.  I think that having people that make you accountable and feel obligated to join in the assignments is crucial to enjoying and performing well in any situation, especially online.

Weekly Study Time Commitment

I work during the day from Monday through Friday, so my available time to study is weeknights and weekends. For some odd reason Thursday traffic is the worst in LA, so I'm not even going to bother attempting to get anything done on Thursday outside of work and my only in person course.

Daily Study Tasks

  • Monday (Overflow < 2 hours)
    • Finish up any assignments that weren't completed in scheduled time.
  • Tuesday (Overflow < 2 hours)
    • Finish up any assignments that weren't completed in scheduled time.
  • Wednesday (2 hours)
    • Check emails and notifications for module.
    • Use defined module material to make a schedule for the week.
    • Check off "low hanging fruit" or any quick to-do items (quick forum posts, maybe).
  • Thursday (0 hours)
  • Friday (2 hours)
    • Read lecture items (do quizzes if completed).
  • Saturday (2 hours)
    • Read lab items (do quizzes if completed).
  • Sunday (6 hours)
    • Read any items that weren't read yet.
    • Complete quizzes, assignments, and forum posts.
    • Meet with group?

My Schedule Looks Busy

Time spent at work is highlighted in blue. I've left gaps between study time and work to allow myself some time to decompress and eat. Green is study time. Some of that is allocated for this ProSeminar course, while the rest is for completing homework assigned for the Data Structures course and reading material for Philosophy. 


Group Resume

The title of this assignment seemed to cause some confusion. The assignment is to build a fake company with your team, where you will have to pitch your company to a potential client or customer. So, it appeared that many people (like me) weren't sure if the assignment was supposed to be like a regular resume format, or like an about us page in flier format for a company. My team took the flier route and I'm pretty happy with how it came out. While we were short a member, the three of us were pretty quick at getting something together. My main complaint about this assignment is that we had four days to try and get a group together to get the rough draft turned in, which is difficult to coordinate with a whole group of people with various schedules. And then following that, we had to get together a separate day in order to finalize the resume. Being able to pick just one day out of an entire week is much easier to do with more than two people.

Our final team resume: 

Industry Analysis Paper

I've looked over the requirements for the industry analysis paper and have decided to look into a company in the healthcare industry called Theranos. I really like what they're doing and would love to eventually work for them. I don't want to give away too much right now, but I'm excited to learn more about the company and get more of an idea of the employment options in the healthcare tech field.