Tuesday, September 24, 2013

Make-believe Project Management Database

Problem Description:
My imaginary friend Luke has a fake Project Management Company; he needs me to build a database with a friendly GUI that he can use to keep track of his projects, his clients, and other related information.  
System Requirements:
Using this system, the Project Management Company staff should be able to add, delete, or modify all aspects of the underlying database.  The system should be accessible from the internet.  Advanced programming / SQL knowledge should not be necessary for the staff to use the system.  

Business Benefits:
As the backbone of the Project Management Company, this system would have a significant and positive effect on operations; Luke and his staff would be able to efficiently handle more projects, and make more money. 

Brainstorming Idea: HPU Computing Services Knowledge Portal / Student FAQs

Problem Description:
In the HPU Computing Services Division, there has been a stalled effort to develop some type of consolidated knowledge portal for students to help themselves in accordance with the most frequently asked questions about how to do various tasks pertaining to computing services.  For example, students often ask about such things as how to get their hpu gmail onto their smartphones, or how to scan documents with the printer/scanner in the lab.  Some parts are in the planning phase, but the overall project is far from completion. 

System Capabilities:
This web portal would incorporate text, pictures, and video into hyperlinks that would explain whatever issues students need help with.  Students should be able to access this web portal through the hpu website or through hpu pipleline.  Behind the scenes, Computing Services personnel should be able to modify content as needed. 

Business Benefits:
This new system would streamline HPU-IT business operations; it would result in increased productivity and save countless man-hours.

Wednesday, September 18, 2013

Brainstorming Idea: HPU Student Degree Planner

Problem Description: 
Oftentimes, HPU students fall behind and don't graduate/progress as early as they could because of confusion about what courses must be taken in which semesters in order to progress as quickly as possible.  And sometimes, academic advisors fail to advise students on the best course of action to take in general.  I propose that an application be developed to help students quickly build an accurate an feasible degree plan, all the way out to graduation. 

System Capabilities:
This system must know about or be able to handle:
The entire HPU course catalog (or maybe just a few specific majors?)
Whether a course has prerequisites
Whether a course serves as a prereq for another course
Whether a course can be taken concurrently
Whether a substitute course can be taken
Which / how many of HPU's semsters will the course be offered in, and which formats (sections)
The difficulty / commitment level of the course (not all courses are equally challenging)
Adjustments in a student's degree plan, due to dropped courses, etc.

Business Benefits:
The system could increase student retention and graduation rates, and overall customer satisfaction (it could improve HPU's reputation). 

Why Are There So Many Programming Languages, And Which Should I Learn?

     A Google search for "the history of programming languages" produces a number of notable links describing the development of the many programming languages that have been created throughout history.  For example, a Wikipedia entry titled "Timeline of programming languages" lists dozens and dozens of the languages that are considered to be merely 'important'.  But why are there so many, and which ones should I learn (can't I learn just one)?  Unfortunately, the answer to the question of why there are so many languages doesn't seem clear; but I think we can at least answer the questions about which languages I should learn.  

According to Bjarne Stroustrup, the creator of C++: "…nobody should call himself a professional if they knew only one language…", and that "…3 to 5 languages is a good number (to learn)…" (Big Think, YouTube).  Bjarne cites C++ 'of course', Java, and 'maybe' Python as being very important to learn, and he also mentions JavaScript, Ruby, C, and C# as being other relevant and related languages.


Aside from Bjarne Stroustrup's personal views, JobsTractor.com compiles a monthly list (Jobs Tractor language trends) which ranks programming languages in order of most job postings advertised on twitter.  Java, PHP, Objective C, and Java(Android) are consistently ranked in the top four, with Java and PHP battling for 1st place.  Ruby has also been in the top 10 for at least the past 18 months or so, and it ranked as high as 5th place back in November 2011.  

So, in accordance with these findings (and after having learned about Java, and now Ruby); I'm thinking that the next best language to learn will be PHP.  As the authors of our textbook have noted, Ruby is powerful and easy to get along with (I see what they mean after doing much of the codeacademy exercises).  Regarding PHP, our classmate Kevin pointed out in his post that PHP is most-used for (and was made for) web server development (almost 80% of web servers; PHP = 'Personal Home Page').  Seeing as how we're learning about how SaaS is the future, I'm going to have to learn more about web development anyway.