Students, Strive to Be an Individual

I am into my fifth decade of teaching in various forms. The one constant in all of that time is that each student is an individual with unique needs and learning styles. It is impossible to meet all the needs of all the students all of the time, but it is possible to make slight adjustments to teaching style to accommodate the needs of each student. Each student has their own special needs and talents. Those who may seem slow in one area will have other areas in which they excel. The key to teaching, for me, is to find out what it takes to have each student get to that “aha” moment where specific concepts make sense. If I can do that with individual students, I feel I have achieved one of my main goals in each of my classes. Finding each student’s motivation is sometimes difficult. Helping a person to succeed starts with helping a person to want to succeed.

I have recently rediscovered Ralph Waldo Emerson quotes when I was thinking about writing this article. I am using two of them in this article as they match my thoughts.

Be Yourself and Achieve What is Important in Your Life!

There is an old saying. “Be yourself, everyone else is taken.” We each are born with talents, that may take some effort to discover, but they are there. Some talents are easier to spot than others. I am sure we each know some great athletes or musicians who shine early in life. However, unless those talents are developed, others can become better through hard work and lots of practice. In baseball and basketball, it is often said that the best coaches are the ones who worked hard honing their skills, without all of the natural gifts of others. They know what it takes to be great, where a person who has many natural gifts that hey do use may not know how to explain how to become excellent. We each need to decide what we love and see what it would take to achieve our goals. We may not succeed in reaching the level of success we would like, but we know we tried and are grateful for the opportunities. The effort may lead to finding something that we like even more. We must not compare ourselves to other people, but must put our effort into improving ourselves. John Wooden went with the philosophy that we must “Make Each Day Our Masterpiece.” He probably is the coach with the best winning percentage of any basketball coach. He taught his players to each strive to do their best. He did not design any offence or defense around an opponent, instead he got each person to go out and do his (her) best. If we each do this, we may surprise ourselves on the success we could have.

After improving ourselves, we need to go out and make the most difference we can. Rejoice in doing “good.” The RWE quote I choice for this is:

Happiness is often achieved through personal effort. It is not something we can expect someone else to give to us. It is important to surround ourselves with good people, but true happiness comes from our own efforts to do well in all that we do. Sometimes doing what is right is not always popular, but it is what brings internal happiness. Go out and make a difference.

Each person is an individual with individual talents and needs. We each need to develop our talents wisely and find ways to share those talents with others. As we serve each other, we will be presented with opportunities for great success and happiness. We must never sell ourselves short or compromise our standards. Sometimes growth is hard, but it is well worth it. Live well and prosper!

Posted in Attitude, Becoming, Do, Goals, Self-Worth, Uncategorized | 1 Comment

STEM/Computer Science Board Meeting 16 December 2020

This information is probably not as thorough as I would like. It is based off of notes I wrote on the back of a business card since I did not have any other writing material available. So, I hope I captured the major points. The purpose of the meeting was to hear from members of our community who work with technology and want the best education for our high school and middle school students.

Steve gave an overview of his Computer Fundamentals class, which he is developing and taught for the first time this semester. The course is designed to cover what computers are, what they do, how they are physically built and maintained, and what goes into making them useful. The last part includes descriptions of peripherals, operating systems, systems software, application software, and computer language. A short introduction to Python occurs during the last two weeks of the course. Many of his students would like a little longer section on computer programming. Steve then explained the two follow-on course sequences that the students could take. His sections include how to build and maintain computers, networks of computers, and security issues. My follow-up courses include an introduction to Microsoft Office and two two-semester sequences on computer programming. The two sequences are for Java and C++. The reaction of the board on the last two was interesting. They think that Python and Java are taught as introductory languages more, but C++ is more tightly coupled to the hardware and produces much faster executables. As a side note, CSU expects students to know Java, while CU and the School of Mines expect students to know C++. If we teach both, it gives students a chose that could be helpful depending on which school they would like to attend.

One phrase that was given that intrigues me is that “All Data Has Bias!” From what I could gather by some follow-up questions and remarks is that data is usually presented in some organized form. The organizer has internal biases and even though most try to be fair those biases do come through in the presentation of the data. The alternative is to do what data analytics had to do in the past and go through all the data (like the programmers of the Saturn V rocket computers analyzing the output of a data dump from a Saturn V flight. Eve a straight data dump has the prejudice of the person who gathered the data.

Some of the areas that they would like to make sure we cover in technical classes are:

  1. Independent Research
  2. Machine Learning
  3. Ethics and Artificial Intelligence
  4. Introduction to Data Science
  5. Weapons of Math Destruction
  6. GitHub
  7. Project Organization (like Scrum/Agile)
  8. Functional Programming as well as Object Oriented Programming (OOP)
  9. Desire to Learn and Innovate
  10. Tools like Slack, IDEs, – I would like to talk with them more on this subject.

One last thing I heard was someone mention the importance of students having a mentor to help guide them and answer questions in such a way that helps them to develop solutions on their own.

Additional Information

Here are some comments made on the meeting that might be helpful.

Diego Krapf

I received some very useful links from an undergraduate student that is working on a machine learning project. She said these were some of the best resources she used to learn about machine learning concepts. I was browsing through them and found that some are really useful and very enjoyable to watch.

  1. https://ai.google/education/ – Google Tutorials and guides
  2. https://www.coursera.org/learn/machine-learning – Stanford Machine Learning Course
  3. https://www.udacity.com/course/intro-to-machine-learning–ud120 – Udacity Machine Learning Course
  4. https://machinelearningmastery.com – Website with tutorials on machine learning projects
  5. https://youtu.be/GvYYFloV0aA – AI Crash Course
  6. “Hands-on Machine Learning with Scikit-Learn, Keras, & TensorFlow” by Aurélien Géron

Stephen Hurst

Computer Science Foundations and Office 365/2019 are probably the best way to introduce students to the field and it is why I’m leery about them, as they will soon begin to attract a lot of students, overwhelming us! I’m at 3 sections next semester and won’t be able to do that in the Fall.

I’m also concerned about our only being able to offer every-other-day certification classes. The students would learn so much more and be even more ready for the tests I could teach them every day and provide much more consistency. Note: I am also concerned about classes that are less than five days per week (or at least four) in programming. There is too much that students forget from class to class if we do not meet on a daily basis.

Data science intrigues me, and I will spend more time on it this upcoming semester as well as machine learning and a more formal approach to programming in Python. Website creation will decrease, as the students are able to achieve good website results with the free software already available to them. Unfortunately, if they want more in-depth WWW development, they’ll need to get it at college. I don’t think we have the staff or resources to add a 3rd Computer Science track.

It is important that students maintain interest in the sequence of courses. The hardware, networking, and security sequence requires the students to build on the previous course and maintain interest in the topics being covered. If students lose interest, it becomes difficult to justify teaching the more advanced courses. Note: The software language courses are only a two semester sequence and for the last few offerings have had good retention between the two classes.

Posted in Agile Methodology, C++, C++, Computers, GitHub, Java, Mentor, SCRUM, Software | Tagged , , , , , , , , | Comments Off on STEM/Computer Science Board Meeting 16 December 2020

Final Project Guidelines for Computer Programming Classes

Each of my Computer Science classes require a final project of complexity commensurate with what is learned in the class. The computer language used is the language studied during the semester. Currently, that is either Java or C++. This document is divided into the following areas. Deciding on a project and selecting team members should be performed simultaneously.

  1. Decide on Team Members
  2. Select a Project
  3. Create and/or Open a GitHub Account
  4. Create an Initial Design and Assign Sections
  5. Create Schedule
  6. Present Design and Schedule
  7. Create Stubs for All Modules in Project
  8. Daily Scrums
  9. Final Submittal of Code and Presentation

Decide on Team Members

With whom would you like to work? Choose one to two other members of your team wisely. Each person should contribute to the project. Decide on your team at the same time your are selecting your project (step 2). Send either a chat message on Teams or an e-mail to [email protected].

Select a Project

What project would your team like to develop. Choose wisely. It should be related to what you have developed so far. Examples are Mancala in CSC160 C++ and Connect Four in CSC161 Java using JavaFX. Make it complex enough to make it interesting, but not so complex that it cannot be done within the time left in the semester.

Create and/or Open a GitHub Account

Repositories are vital to creating a large project. It allows code to be saved in an easily accessible location that saves the code as it is revised and allows the user to access any revision that might be needed for any purpose. The preferred Revision Control System is GitHub. Please go to this location and either login or create an account and then login. Be sure your name is unique and easy to remember. GitHub is connected to all Development Environments like Visual Studio for C++ and IntelliJ Idea for Java. GitHub uses Git on your local system as the interface. Be sure to download Git to your system.

Integrate GitHub with Microsoft Visual Studio 2019

Here is how to integrate GitHub into Microsoft Visual Studio.

Create an Initial Design and Assign Sections

There are several formats for design. The main attribute is that it has enough information to be helpful. One method I would recommend is Object Oriented Design Using UML (Universal Modeling Language). An example is Rubber Ducky Corporation. Know what you want to do and then start deciding what that is. If you are using Classes, use UML Diagrams to describe their interfaces. An example of a UML follows. It has a Person Class with two classes that inherit from the person class, a Customer Class and a Personnel Class. Just for your information, the symbols are as follows:

  • # – Protected item, accessible by Class and all Subclasses.
  • – Private item, accessible within the Class only
  • + – Public item, accessible by everyone
UML Diagrams Example for Person, Customer, and Personnel
UML Diagram for Class Person and Subclasses Customer and Personnel

The above diagram was created from Microsoft Word. There are several tools that are available that are better than Word. A list of twenty-eight is at BEST 28 UML Tools in 2020. A single one which one of my students recommended is app.diagrams.net. This last one looks interesting. It allows saving the files to one of your online repositories like Google Drive or Microsoft One Drive. This makes life easier but it also requires you to log into your storage device through their interface. When you have added the Git/GitHub integration, you can start creating the needed classes. The first example is for C++ and Visual Studio.

Create Schedule

On the bottom of the Rubber Ducky Corporation page is a list of tasks to be done from most to least important. Go ahead and fill it out and decide how long it would take to do each task. Build a schedule based on your analysis.

Present Design and Schedule

Put together your design and put into slide form. On 30 November 2020, please make your presentations.

Create Stubs for All Modules in Project

Set up your GitHub account within your team. Decide which modules you will be writing in each daily scrum. Decide on the order in which your team will write these modules. The modules that are scheduled last, write interfaces that accept expected arguments and return something appropriate. The logic does not need to be written yet. But a stub needs to be written so that the modules that are being written can call the unwritten module and get something reasonable in return. The best way to show how this is completed is by example.

C++

To use a class method, both the header including the needed Prototype and the file containing the code must be written. Here is the header file:

#pragma once
/* BoardSample.h
 * Wayne Cook
 * 17 November 2020
 * Purpose:
 *		Create a sample class to show how to create a stub in developing one method to use
 *		in your code development.
 */

#ifndef __BOARDSAMPLE__
#define __BOARDSAMPLE__
#include <random>
using namespace std;

// Set up the class in which the method will reside.
class BoardSample
{
public:
	BoardSample();
	~BoardSample();
	/* playerMove(int &)
         * Input - pointer to the player variable which indicates whose turn it is
         * Output - returns in the player variable whose turn is next
         *		1 - player 1
         *		2 - player 2
         *		0 - side empty
         */
	void playerMove(int&);
private:

};

#endif

then the code must be written. In this case I use a random number generator to create the player value of 0, 1, or 2:

/* BoardSample.cpp
 * Wayne Cook
 * 17 November 2020
 * Purpose:
 *		Create a sample class to show how to create a stub in developing one method to use
 *		in your code development.
 */

#include "BoardSample.h"

// Default constructor and destructor
BoardSample::BoardSample()
{
}

BoardSample::~BoardSample()
{
}

 /* playerMove(int &player)
  * Input - pointer to the player variable which indicates whose turn it is
  * Output - returns in the player variable whose turn is next
  *		1 - player 1
  *		2 - player 2
  *		0 - side empty
  */
void BoardSample::playerMove(int &player) {
	/* Set player equal to 0, 1, or 2 for simulating the results of a completed method
	 * after code completion. A random number divided by 3 gives the desired results.
	 */
	player = rand() % 3;
}

Java

Java is a bit simpler. It only takes one code file.

/* BoardSample.cpp
 * Wayne Cook
 * 17 November 2020
 * Purpose:
 *	Create a sample class to show how to create a stub in developing one method to 
 *	use
 in your code development.
 */

import java.util.Random;

public class BoardSample {

    Random random = new Random();

    /* playerMove(int player)
     * Input - pointer to the player variable which indicates whose turn it is
     * Output - returns in the player variable whose turn is next
     *		1 - player 1
     *		2 - player 2
     *		0 - side empty
     */
    int playerMove(int player) {
        int retVal = 0;
        /* Set player equal to 0, 1, or 2 for simulating the results of a completed 
         * method
 after code completion. A random number divided by 3 gives the
         * desired results.
         */
        retVal = random.nextInt(3);
    }
}

Daily Scrums

Scrums are usually done for two weeks sessions. They are based on the Agile Manifesto. In normal development cycles, a Scrum last two weeks. The name is based on how Rugby is played. Read the Scrum Manifesto to have a better idea of how to run your daily scrums. Each day submit a description of each task you have completed and what is scheduled to be done the following 24 hours.

Final Submittal of Code and Presentation

Be prepared for presentations on the 14th and 15th of December. Have your software ready to be submitted and demonstrated.

Posted in C++, Final Project, GitHub, Java, UML | Comments Off on Final Project Guidelines for Computer Programming Classes

How Old is Boolean Logic?

Boolean logic was being used long before there were computers. We can go a little way back to when light bulbs were invented. There were no dimmer switches, so the light was either on or off.

George Boole (1815–1864) invented the mathematics for Boolean logic, but the actual concepts of Boolean logic are a part of civilization. I will give two examples of earlier logic, most theories have two inputs and one output (there can be more inputs but there should be only one output).

The first example is a farmer determining if the farm plans to sew a particular field, does the field need to be plowed?. The two inputs are: have I not started plowing the filed and have I finished plowing the field. If the answer to both questions are true, then the field is done and the farmer can go and sew the field or do something else. If the answer to either is false, then the field needs to be plowed.

Going back to hunter/gatherers, the same logic could be used to determine if someone needs to go hunting. The two inputs are that any member of the family is hungry and there is no food in storage. If the answer to both are true, then a hunt is needed. Otherwise other things, like weather, could be taken into account to determine if a hunt is advisable at this time.

We use Boolean logic in our daily lives, even if we do not realize it.

Posted in Boolean Algebra, Computers, Thinking | Tagged , , , , , , , | Comments Off on How Old is Boolean Logic?

Are There at Least Two Sides to Every Issue?

There is quite a bit of discussion on whether both sides of an issue should be presented, or should the people who control the discussion platform have the responsibility to publish only one side? This has been an argument going back as far as human history has been recorded. I am sure some people can recite Biblical or other early religious texts on the conflicts of two different sides. In the beginning, I will give examples in science and computer science.

One of the earliest discussions was on whether the earth was flat or round. The general belief was that the earth was flat, but some early Greeks, like Pythagoras, proposed that the earth was round. The majority of people said at that time that saying the world was round was nonsense. The earliest person to measure the circumference of the world was Eratosthenes of Cyrene, a Greek polymath, poet, astronomer, mathematician, librarian, and geographer. His measurement was very accurate. See “Who Was The First Person To Accurately Measure The Circumference Of The Earth?” for an excellent description of how Eratosthenes was able to calculate the circumference. Even after the circumference was calculated, the “experts” and “authorities” still insisted that the earth was flat. Anyone who disagreed was excommunicated or burned at the stake. a very effective way of eliminating any views that the people with authority did not like.

At the start of the 20th century there was quite an upheaval in physics. In 1900 most physicists believed that Newtonian Mechanics/Physics was the ultimate answer to answering all questions about motion. They likewise believed that the universe was filled with a substance called ether. that was needed for the transmission of light Since the people who believed in these theories were in charge of the Physics Journals of the time, they thought that any article that went against these theories should not be published. Think where we would be now if we did not know that the universe was a vast vacuum and without the Theory of Relativity by Albert Einstein being published. Albert Einstein eventually modified his theory and there have been additional discoveries confirming and modifying aspects of the theory over time. There may eventually be an entirely new theory created that allows for “Warp speed” space ships. Currently Einstein’s Theories are the basis of all new developments. If we disallow alternate proposals or theories from even being considered, would that help or hinder the advancement of Physics (which will also affect the welfare of mankind)?

All fields, to progress, have to have competing ideas. Any field that does not have competing ideas will eventually die out. I have been working with Computer Science since I was in high school and seen many major changes. Computer languages have progressed from binary through assembler and then Formula Translation (FORTRAN) to Structured and Object Oriented Languages. Their progressive development has led to significant developments that have helped computers help mankind in many ways. A short history of Software Languages is available on this site. The biggest controversy I remember is deciding what is the best way to develop code. The biggest conflict was between Structured Design and Agile Programming. There were cultures built around each approach, but at least the Computer Journals were open to presenting all ideas. I believe the best solutions are created through discussions and the adaptation of the best ideas. One compromise, which leans more to the Agile side, is the Scrum Methodology.

Does anyone remember speech and debate classes in high school and college? The one thing I remember being assigned is to research both sides of any controversy, from abortion through nuclear power. Researching both sides helped me understand the pluses and minuses on each side. Understanding both sides helps me make a clearer choice on each subject. That choice usually resides at some point between the two extremes. This really helps me understand where and why friends have their positions. It does not mean I will always agree with my friends but it helps us have civil conversations and gives me a good opportunity to understand different points of view.

For the longest time journalism always presented both/multiple sides of any issue. Universities were based on the Socrates method of discussion and that method carried over to journalism. There are now articles about the evils of Bothsidesism and how if you present both sides of a discussion, it will never lead to anything good. The article is written in such a way as to make one side look virtuous and the other side being represented as to make it look ridiculous. Unbiased facts are not needed and not really wanted. Look at some recent events. J. K. Rolling made the observation that Women have Periods, but that was against the current concept that gender is fluid. Therefore it must be stopped. What about what recently happened at the New York Times. The New York Times used to make sure that both sides were covered in the editorial page. Controversial editorials were published with editorial comments, especially if the editor disagreed with the premise. As long as editorials were on the editorial page and not the news page, that was fine. The most recent article is Senator Tom Cotton: Send In the Troops. The editor disagreed with the content of the editorial, but decided to publish the article so that people would better understand what the other side thought. As a result, the New York Times senior editor resigns amid backlash over controversial op-ed. Leadership does change, it can be nice to make sure that all opinions published match our own thoughts, that they reinforce our own beliefs. What happens if the leadership changes and a different philosophy now rules a particular organization. Will we like shutting down opposing thought as much if the supported thought no longer matches what we “know is true?”

The latest battleground is the internet. No one should be allowed to yell fire in a crowded theater when there is not fire. But if there is a fire should someone be allowed to take control of the situation and make sure people exit the theater safely? Just because someone does not like the idea of someone else noticing a fire, that does not mean it should not be mentioned. Russia has a simple solution for the internet, ban internet access to the common citizen. China has another solution, they have worked with Google to filter what their citizens can see. They also have a “good citizen” score that gives or removes rights to each citizen. Do we really want something like that in the United States? The First Amendment of the Constitute deals with free expression. That God-given right is vital to the survival of our country. Having an open and honest conversation is key to keeping us well-informed and able to make decisions that are good for us and for those around us. Censorship did not work through book burning, it will not work now either.

Developing a good understanding of our own opinions and thoughts, what we truly believe is right, is like weightlifting. It takes resistance to develop. The other benefit is that we may learn something. One such article for me was Why You Should Stop Saying “I Don’t See Color”. This article helped me refine my thoughts so that I can be more sensitive relating to people different than I. We all need to be pushed some and not become too complacent. We all need to hear both sides of each story and develop our own philosophy. Paraphrasing something that was said at the West Point 2020 graduation: “to be understood we must first seek to understand.” We each are individuals with attributes that may affect who we are. It is our responsibility to learn and grow. Complacency and censorship leads to nothing good. It is odd that the people who strongly protested book burning and who are in favor of the right to choose in certain areas are the most restrictive to the expression of views that do not agree with their world view. Providing the platform for free and respectful discussions is the best way to grow. Listen to different views. Those who do not will condemn themselves to a stagnant life. Also be aware of the difference sides of any story, then choose wisely as to which one is the most correct. But do not condemn others for coming to a different conclusion. Ask questions to understand why they believe the way they do. In having them explain their thoughts, each of us may have much more influence on others.

Posted in Uncategorized | Tagged , , , , , , | Comments Off on Are There at Least Two Sides to Every Issue?

Using Teams to Hold Online Meetings

Since we will all be required to create online content and hold on-line meetings while CECFC is closed, I decided to research as much as I could on how to hold and record meetings. The Microsoft documentation is good, but it has a few different features than our version of Teams (i.e. a Meetings tab instead of a Calendar tab on the left side of the tool). An example of their tutorials is:

I had to do a little research to plan for my class. I decided to create my own YouTube Channel to share what I have learned. My first video is:

Brady Taylor asked me to create some training for Microsoft Word and Excel. I am learning how to do that online and would enjoy teaching students various aspects of technology, including how to create YouTube channels and share appropriate content on it. There are several things students should know before graduating from high school/community college. This includes basic Microsoft Office skills, basic maintenance for Microsoft Windows and Linux systems, fundamentals of setting up a website, general programming principals, graphic design, etc. It would be nice to have an introductory course that these topics could be presented and then encourage our students to go more in-depth in the areas that they enjoy.

Having two teams at the same meeting

I have looked through the Microsoft Documentation and I could not find anything about having a meeting with two teams. I did find a work-around for that. It consists of adding the other class’ members as members of the first class and them including them on the calendar event. Remind students that they have to accept each meeting to be notified of the meeting. Following is how I combined two classes. If anyone has a better way, please let me know and I will redo the video.

Making a recording Available to Multiple Classes

This is a simple task. Go to the video you want to copy and do the following:

  1. Click on the triple periods to the right of the video
  2. Select “Link”
  3. A dialog box will appear, then click the Copy button
  4. Go to the class where you want the video shared
  5. In a box where you can enter text, right-click and select “Paste”
  6. Wait for the video to fully download, then send the message to your students.
  7. Your students should now be able to follow the link to Microsoft Streams and watch the video in their browser

One word of warning, the videos are stored in Microsoft Streams and are easy to delete. leaving a link in Teams with no accompanying video.

Posted in Microsoft, Teams, Uncategorized | Tagged , , | Comments Off on Using Teams to Hold Online Meetings

Who Is the Customer?

This is a question that has been asked in business since there were any businesses. It is obvious that the people who pay the way and the financial shareholders have to be happy to have the business do well. But are they the most important to keep a business going strong? Let us take a look at a couple of organizations. The first one is in the airline industry. Have you ever flown? How do you feel about each airline? In college and when I worked for Hewlett Packard, I usually flew on United or Continental (because that is with whom HP had contracts). In Guam, I enjoyed Pan Am and Continental Air Micronesia. On personal business, I almost always took Frontier Airlines. Unfortunately, they have changed with regard to service to customers and the happiness of employees. I now take Southwest, whenever possible. The reason is because of their service. There are some aspects of the “cattle” loading I do not like, but the people are all great. Could that come from the ideals of the Southwest CEO? There is a fascinating article in Forbes entitled Employee-First Approach is Key to Customer Service Success Herb Kelleher, of Southwest Airlines, stated: “Years ago, business gurus used to apply the business school conundrum to me: ‘Who comes first? Your shareholders, your employees, or your customers?’ I said, ‘Well, that’s easy,’ but my response was heresy at that time. I said employees come first and if employees are treated right, they treat the outside world right, the outside world uses the company’s product again, and that makes the shareholders happy. That really is the way that it works, and it’s not a conundrum at all.”

I remember several conversations I had with Rulon Stacey, who was CEO at Poudre Valley Hospital, about how he turned around Poudre Valley Hospital. It seemed that the previous CEOs turned over quickly until Dr. Stacey brought in a new Philosophy. It is best to put it in his own words.

One of Dr. Stacey’s inspirations was the philosophy of Malcolm Baldrige. He researched the Malcolm Baldrige National Quality Award and submitted the application for 2008. Poudre Valley Hospital won the award that year. Rulon would be the first to admit that it was a team effort to win the award, work by all members of the hospital at all levels. The Malcolm Baldrige Award is a very prestigious award that is awarded to health care organizations, educational institutions, and businesses. It is something that all should strive to attain.

As was shown by Southwest Airlines and Poudre Valley Hospital, companies who treat their employees well thrive. Good employees will go out of their way to help customers, which in turn will help the entire organization.

Posted in Uncategorized | Tagged , , , , | 2 Comments

What are you Hearing that has not Been Said?

Inspiration comes in many forms. It is a gift that everyone alive can access. There are many names that inspiration has been given, including enlightenment, insight, personal revelation. Each word has slightly different meanings, but we will call it inspiration for this article.

Inspiration sometimes comes when we least expect it, but it often depends how we have prepared to receive it. From my experience, inspiration often comes to those who have “studied out” the problem to be solved, looked for possible solutions, and who live by consistent and basic principals. Beyond these basics, there are no formulas to receiving inspiration. The title explains how inspiration often happens. We may be thinking how to solve a problem or listening to others talk about some related topic. If we incorporate what we are hearing with our thoughts about what needs to be solved, we can surprise ourselves with elegant and unique solutions to our problems. This can apply to both academics and to our personal lives.

When we are learning a new subject, at first it can be very frustrating, but attempting to do something hard and listening to those who have done it before will give us insights that will often exceed the sum of the words said and the work we have currently done. We have all experienced “ah-hah” moments where “all of a sudden” something on which we have been working makes a lot more sense. All these inspirations are important to us, some are important to our community, and some are important to the entire world. Those inspiration that are important to the entire world usually come in layered inspiration, with the “break through” inspiration coming at a time that is right for people to understand how the results of the inspiration can be used for good. Unfortunately, there will always be some who use it to fight what is good. To continue to be inspired, we must always use the results of our inspiration for the best possible purpose. In recent history, inspirations led to such devices as the television, computers, flat screen televisions and displays, hand held devices, and eventually cell phones. Think about the order of the invention of these devices. Was the order important? Could cell phones be the compact instruments they are today, without the invention of the other items in this list? Inventions are often based on what has been already invented and asking “what if”, “what problem needs to be solved”. and “how can these inventions be combined and be used differently?” Thinking about what we are learning and living a principled life will give us insights that are important to us but are not always related to what we are hearing or what we think we are trying to solve. Thus the importance of the question: “What are we hearing that has not been said?”

Inspiration can be beneficial to personal safety as well as learning and personal growth. How many of us have been inspired to take a different way home or leave at a different time than we were planning to go? Then we learn later that something bad happened when we would have been at a particular location. I was visiting a friend in Los Angeles and was scheduled to take a particular Pan Am flight on 6 August 1974 back to Guam. Chuck and I wanted to talk a bit longer and play a game of tennis, so I changed my flight to TWA a bit later in the day. As we drove to the TWA terminal, we drove by the Pan Am terminal. Someone had put a bomb in the lockers which were in the terminal lobby and it went off about the time I would have been going through the airport. Three were killed and 36 were injured. I am glad I was inspired to have that game of tennis. As we recognize when and how inspiration comes, we will receive more inspiration.

Since I teach school, inspiration is vital to myself and my students. For me, to know what to teach when and how to better understand when students do not understand an important concept which will be needed later in the class. For the students, it is important to have insights about how to solve either assigned problems or personal projects. Often the insights are not what is being said but what is being heard. Believe it or not, they are not always the same. Sometimes it is just a thought that comes to a student that solves a problem. When I was a student, I can now look back and see when this happened to me. I also see it with some of my students, where someone is struggling on a new concept, one of the other students or I say something that might or might not be related to solving the problem, and the student will suddenly come up with a idea to solve the problem. When one student receives inspiration, I encourage them to share that with other students. Insights will build on each other and both students will come up with a solution that is far better than either one could develop on their own. This is true inspiration.

Know that each of us can receive inspiration when we need that inspiration. It may come all at once, or step-by-step. It often comes as a whisper or thought. We need to live in a way that will invite that inspiration into our lives. It will help us succeed in the things that are important in life.

Posted in Attitude, Becoming, Do, Inspiration | Tagged , , | Comments Off on What are you Hearing that has not Been Said?

Interviewing

Knowing how to interview for a computer programming/design position is almost as important as the learning how to program. Over the years, I have had friends who were excellent programmers, including the design process, who lost out to people who were skilled, but far better interviewers. Know what the company wants far before you go in for an interview. If you have friends at the company, find out as much as you can about the types of interviews that are given and what is to be expected in the interview. Research. Always be honest in your answers, with a confidence that you can come up to speed in the new position as quickly as possible. Starting a new job is saved for another article, but just be ready to work hard to come up to speed as quickly as possible, to make yourself as valuable to the company as you can as quickly as you can.

Information Interview

One way to find out more about a company is to do information interviews. The basics are to develop a list of questions about a particular company that you think will help you better understand the company. Find a person who would know the answers to your questions within the company, go through the proper channels to ask the person for an information interview. Remember this is only an information interview, it is NOT a job application or interview. Be up-front as to how much time you think the interview will take. Still to that schedule, unless the person wants to tell you a bit more. Ask your questions, take good notes (you will not remember more than about 15% of what you heard if you do not write it down (or record it) during the meeting. Always write a thank you after the interview.

Interviews with Practitioners

I am in the process of interviewing people who developed systems (usually based on Software) that helps their customers accomplish needed tasks.

Oracle – Chris Branchflower

The first person I interviewed was Chris Branchflower, a manager at Oracle. One of the tasks his team does is developing applications that are used internally. My purpose of this interview was to find out how his company interviews candidates.

Software Mr. Branchflower’s Group uses

  • Oracle JET, an internally developed JavaScript Extension Toolkit.
  • JavaScript
  • TypeScript – tighter form of JavaScript, helps user be more precise in coding.
  • Templates and libraries to reduce redundancies
  • NetBeans IDE with built-in handling of Oracle JET.
  • HTML and CSS
  • Beyond Compare for side-by-side code comparison. It can compare individual files or each file in a given directory one file at a time.
  • Limited use of Java and C++ (mostly for legacy code)
Most of Oracle’s internal products are moving to web-based tools. This is why there is an emphasis on web development tools (like Oracle JET and JavaScript). They are also looking for code that uses similar algorithms where they can create templates or generics to write the algorithm once and use it for multiple data types. Similarly, class libraries that can be reused are also important to good development (do not reinvent something that can be reused). Templates and libraries can be fixed n one place and be corrected every place each are used. They always use peer reviews on all new or corrected code.

Recommended Sites and concepts for Interview Preparation

  • Freecodecamp.org
  • Freecamp Interview Suggestions
  • Know what peer review is and how to use it
  • Have good comments describing the code and modifications to the code at the start of the file.
  • Never use generic names, always us specific names that describe what is being done or what the variable contains.
  • Know what templates (C++/JavaScript) or generics (Java) are and how to use.

Interviewing Hints

It is good that candidates know several different computer languages. It can help people look at problems in different ways and come up with better solutions. Go through the information above to be better at interviewing. The way that Oracle tests applicants their knowledge of programming is to open a window with code that has problems. They will tell you what is desired for the code to do. You are responsible to fix the code. Follow the previously given rules on good coding standards. The site records your every key stroke. Type in the code. never copy the code from another page and then paste the solution into your code. If you paste a chunk of code, that sends up “red flags” and the interview will not go well. The key is to be confident in your own knowledge and present it well. Most interviewers can see through exaggeration or fraudulent clams. Be yourself and know the material the best you can.
Posted in C++, Code Reviews, Computers, Java, Software, Uncategorized | Tagged , , , , , , , | Comments Off on Interviewing

Are You Fair Dinkum?

Are you “Fair Dinkum” or do “you seek confirmation of the genuineness or truth of something” or do you just “go with the flow?” In Australian, this phrase means a bit more, to have total commitment to what we are doing. Do not be lukewarm, be hot or cold. Bilbo Baggins of Bag End, is the protagonist and titular hobbit of the story, the Hobbit. He was asked to go on a great adventure by Gandalf, but had to leave right away. In many ways we are like Bilbo Baggins starting a new adventure when we start a new project or when we start a new job. Are we totally committed, or do we have in the back of our minds that I can always try something different. Even if the project will be over quickly or the job is not our desired job, intend to contribute as much as possible and learn as much as possible. People with whom we work will be grateful and be willing to help in the future. Some of these people become some of our closest friends. If we do not fully commit, this will never happen. When we work with others, our goal should always be to do what is best for ourselves and for others we work with and serve.

Notice that in this article I prefer to use the terms I and we instead of you. There are two reasons. This applies to me as much as to anyone else. Another reason for this is that when a person uses “you” to start a sentence it may make the other person feel less. Part of being fully committed is to be fully committed to good communication. I teach computer science, many of you who are reading this are students in these classes. As an example of this, which feels better? 1) “I noticed a problem with the code that was produced, to solve that problem, the solution is to …” or 2) “You know better than doing that, you have made that mistake so many times.” Which seems better? Which would each of us prefer hearing? How should we talk with others? 1) “I feel concerned about…” or 2) “You always…” Choose words wisely in working with others. Be totally committed to be “Fair Dinkum.”

I am very impressed with my CSC160 class, each student is dedicated to learning new material and doing it well. I enjoy this group and hope I can work with them second semester. There are many aspects of life that can be related to an acorn. Acorns cannot do much at first, but as they blossom as a tree they can produce so much more, including eventually producing other acorns. Using the computer programming example, as we learn new concepts, we can first implement those concepts in our programs, eventually we can go from using the exact code to using the concepts presented to produce new code, then eventually teaching other people how to best use these new concepts (being the producer of more acorns). Are you Fair Dinkum?

Act on best Instincts (or GUT) and not Intentions. Our intuition works far better than our intentions in making good choices. We all have choices, some are good, some are better, and a few can wind up our best decisions. How do we weed out the best solution in a reasonable amount of time. Each situation is different and requires intuition to solve the problem. Even with the best of plans, we are not guaranteed success the first time around. Failure is one of the biggest teachers to bringing success. When Thomas Edison set out to invent the light bulb, he was not successful for at least 5,000 times. When asked about his “failures” he said that he had not failed but learned 5,000 ways to not create a light bulb. As we learn new skills, we will probably learn many ways that will not solve the desired goal. Those attempts are great learning experiences, treat them as such. To be successful, have high concerns and high expectations. Be Fair Dinkum!

Desired solutions change as we learn more. Some new solutions are more difficult to find than solutions we can base on intuition and past experiences. Whenever we come across a tough situation we think we may have not encountered before, look for similarities to solutions we have developed previously. Other people in our organization may also have ideas on how to solve problems. Freely share ideas. We are all better together. As long as we do not worry about who receives the credit, so much better solutions are created. We each need to be our best to encourage others to be. Share knowledge and experience and others will usually do the same. Occasionally we each come across someone who does not freely share, Usually there is a reason for this. Help each other to be the best to have the best possible team to come up with the best possible solution. No one is the keeper of all good ideas and decisions. Be careful and caring, help those who are in new positions that they have not held before. succeed. We are all in this together. From past experiences leading teams, it is vital that the leader listen to all stakeholders and make decisions that are best for all members of the team. Decisions need to be made, but members of the team will have information that is vital to creating the best outcome for the team. Be Fair Dinkum!

Posted in Uncategorized | Tagged , , , , , , , | Comments Off on Are You Fair Dinkum?