Stories on leadership, education, and innovation 

formats

Top 10 Google I/O 2013 Announcements Related To Teaching And Learning

Google I/O

This week , Google held their annual technology conference named I/O 2013 for Google professionals and developers.   You have to love all the great technology that Google gives to the community for free!  I wanted to share a great summary video by Marques Brownlee and highlight announcements that would impact educators and educational game developers.

  • New Google+: Google released a new user interface that reminds me of Pinterest.   I enjoy the new flat card look and the communities features of Google+.    Google has made it easy to discover communities on topics that you care about.   This is great for building a personal learning network.
  • App Store for education:  In the fall, Google will be launching a focused app store for teachers and students.   Google is working with teachers to collect and organize the store.   This is a nice “back to school” gift from Google.
  • Google Now: Google Now enables you to search for information and resources using conversational voice commands.   In addition, the service tries to anticipate your needs based on current location and the context of your question.    It’s like Siri, but better.
  • Hang outs: In the next few months, Google will phase out Google Talk in favor of Google Hangouts.   Educators like Eduvue and “Teachers teaching teachers“, have been using Google Hangouts to publish great video chat conversations on teaching technology trends.   Google has tried to make this feature more accessible to encourage personal text and video chat.   Our family uses Google Hangouts so our kids can see their grand parents who live in another state.
  • AndroidStudio: To my programmer and computer science teacher friends, we have a new toy!   AndroidStudio is a new code environment for writing Android apps.   I can’t wait to take it for a test drive.  I was impressed with the user interface design features that help you see how your screens render across devices quickly.
  • Improvements Google Chrome: Everyone’s favorite browser just got faster.  Again! Amazing!  From a developer perspective, Google has added tons of new features making it easier to make games and robust apps that live in the browser.  It’s a great time to be a web developer.
  • Opportunities for gamification in education: From a developer perspective, Google has created API’s so that game score boards and badge boards can be shared in the social context of Google+ .    When I saw this feature, I started thinking that this would be helpful in creating alternate reality games for the classroom.   The improved location API’s for Android will help launch the next generation of educational games that you play in the real world… Not just the digital world.
  • Google rocking Malaysian Education System: @googlechrome Malaysian government is bringing Google Apps to their entire education system – 10M students – along with Chromebooks to all schools. #io13
  • @oquidave — Google playstore for Education, chromebooks, & tablets >> Google’s approach to education http://bit.ly/13ADksj via @techpostug #io13
  • @GoogleAtWork  What you need to know from I/O: Google I/O announcements for business, government and education customers http://goo.gl/GR5Wi #io13

Check out all the talks at Google I/O 2013 at this link.    I would love to hear your thoughts and comments about Google i/o.   What do you feel would help students and teams grow and learn using Google technology?    What would make your life easier?

 

 

 

 

 

 

 

 
 Share on Facebook Share on Twitter Share on Reddit Share on LinkedIn
No Comments  comments 
formats

How to Build Your Mobile App using HTML

Are you looking for an easy way to get started building mobile apps?   In this post, I would like to introduce you to a tool called JQuery Mobile that empowers you to craft mobile applications using HTML and a little bit of JavaScript.   This free tool builds upon the strengths of the jquery programming community who do a solid job of creating fun and well documented programming tools.

JQuery mobile works well in the following cases:

  1. Information apps: The application that you’re building is informational in nature.   If you’re trying to build a game or the next “Angry Birds,”  Jquery mobile is not a good fit.   This tool works well if your creating e-books, apps for conferences, promoting a band, or capturing information using simple forms.
  2. It’s just HTML: Learning Objective C or Java can be intimidating to people just learning how to program.   I greatly appreciate that JQuery mobile provides a solid place to start for novice app builders.
  3. Get started at no cost: What do you need to get started? A text editor, a web browser, and your creativity.  (notepad++, textwrangler for Mac, etc.)

In the following code sketch, I will outline how to create a simple application.   The app will show you how to create buttons on a list view, create a pop-out window, include text and images, and enable your users to navigate from one page to another. If you need training on HTML or JavaScript, please visit CodeAcademy.com for additional teaching.

In this  example, we will build a simple app to help promote a group or club.   It will consist of four pages: home, events, contact us, and news.   These pages will look something like this when we’re done. You can also check out a demo at this link.

Home screen

Home page

Contact us page

Events page

Events page

For a comprehensive introduction to JQuery Mobile, please visit http://learn.jquery.com/jquery-mobile/getting-started/

The HTML to create this small application is shown below.  How does this code work?

 

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
<html>
  <head>
    <title>Group App</title>
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <link rel="stylesheet" href="http://code.jquery.com/mobile/1.2.1/jquery.mobile-1.2.1.min.css" type="text/css">
    <script src="http://code.jquery.com/jquery-1.8.3.min.js" type="text/javascript"></script>
    <script src="http://code.jquery.com/mobile/1.2.1/jquery.mobile-1.2.1.min.js" type="text/javascript"></script>
  </head>
  <body>
    <div data-role="page">
      <div data-role="header">
        <h1>
          My Group App
        </h1>
      </div><!-- /header -->
      <div data-role="content">
       
        <ul data-role="listview" data-inset="true" data-filter="true">
      <li>
            <a href="#events">Events</a>
          </li>
          <li>
            <a href="#contact_us" data-rel="dialog">Contact us</a>
          </li>
          <li>
            <a href="#news">News</a>
          </li>      
        </ul>
        <img src="img/student_group_pic.jpg" align="left" style="padding:10px;"> Etiam a lorem id nisl porttitor scelerisque sed vitae dolor. Nunc gravida leo quis dolor pretium sed eleifend nisl commodo. Cras id imperdiet tortor. Sed convallis massa vel sapien ullamcorper convallis. Vivamus elit odio, suscipit quis adipiscing at, dignissim interdum arcu.
      </div><!-- /content -->
      <div data-role="footer">
        <h4>
          Look forward to seeing you soon!
        </h4>
      </div><!-- /header -->
    </div><!-- /page -->
    <div data-role="page" id="contact_us" data-add-back-btn="true">
      <div data-role="header">
        <h1>
          My Group - Contact us
        </h1>
      </div><!-- /header -->
      <div data-role="content">
        <img src="img/student_group_pic.jpg">
        <h3>
          Contact Us
        </h3>
        <p>
          Etiam a lorem id nisl porttitor scelerisque sed vitae dolor. Nunc
          gravida leo quis dolor pretium sed eleifend nisl commodo. Cras id
          imperdiet tortor. Sed convallis massa vel sapien ullamcorper
          convallis. Vivamus elit odio, suscipit quis adipiscing at, dignissim
          interdum arcu.
        </p>
        <ul>
          <li>Mary Jane -- President -- <a href="#">E-mail</a>
          </li>
          <li>John Smith -- Vice President -- <a href="#">E-mail</a>
          </li>
          <li>Simon Flat -- Communications -- <a href="#">E-mail</a>
          </li>
        </ul>
      </div><!-- /content -->
      <div data-role="footer">
        <h4>
          Look forward to seeing you soon!
        </h4>
      </div><!-- /header -->
    </div><!-- /page -->
   
    <div data-role="page" id="events" data-add-back-btn="true">
      <div data-role="header">
        <h1>
          My Group - Events
        </h1>
      </div><!-- /header -->
      <div data-role="content">
        <h3>
          Events
        </h3>
        <ul>
          <li>Event 1: Lorem ipsum dolor sit amet, consectetur adipiscing elit.
          </li>
          <li>Event 2: Quisque ut metus eu leo interdum volutpat.
          </li>
          <li>Event 3: Vestibulum accumsan erat vitae leo imperdiet faucibus.
          </li>
        </ul>
      </div><!-- /content -->
      <div data-role="footer">
        <h4>
          Look forward to seeing you soon!
        </h4>
      </div><!-- /header -->
    </div><!-- /page -->
   
   
    <div data-role="page" id="news" data-add-back-btn="true">
      <div data-role="header">
        <h1>
          My Group - News
        </h1>
      </div><!-- /header -->
      <div data-role="content">
        <h3>
          News
        </h3>
        <ul>
          <li>News 1: Lorem ipsum dolor sit amet, consectetur adipiscing elit.
          </li>
          <li>News 2: Quisque ut metus eu leo interdum volutpat.
          </li>
          <li>News 3: Vestibulum accumsan erat vitae leo imperdiet faucibus.
          </li>
        </ul>
      </div><!-- /content -->
      <div data-role="footer">
        <h4>
          Look forward to seeing you soon!
        </h4>
      </div><!-- /header -->
    </div><!-- /page -->
       
  </body>
</html>

In the HEAD of the document, we include JavaScript code references that enable JQuery mobile to function. JQuery mobile tries to use standard HTML structures to enable you to craft mobile user interfaces. If you removed these code references, you will notice that the web page reverts to standard web browser rendering rules.

1
2
3
4
5
6
7
  <head>
    <title>Group App</title>
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <link rel="stylesheet" href="http://code.jquery.com/mobile/1.2.1/jquery.mobile-1.2.1.min.css" type="text/css">
    <script src="http://code.jquery.com/jquery-1.8.3.min.js" type="text/javascript"></script>
    <script src="http://code.jquery.com/mobile/1.2.1/jquery.mobile-1.2.1.min.js" type="text/javascript"></script>
  </head>

To create a button that moves the user from the home screen to the “Events” page, use the following code. The “#events” string corresponds to the “id” attribute of the page “events”. To see an example of opening a dialog box, look at the “#contact_us” link to see how that was done.

1
<li><a href="#events">Events</a></li>

The following code is responsible for creating the “Events” page in the application. The code sets the header, footer, and content of the page. The content of a JQuery mobile page is just HTML. To make it easier for the user to return to the home screen, I added the “data-add-back-btn” attribute and set it to true.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
    <div data-role="page" id="events" data-add-back-btn="true">
      <div data-role="header">
        <h1>
          My Group - Events
        </h1>
      </div><!-- /header -->
      <div data-role="content">
        <h3>
          Events
        </h3>
        <ul>
          <li>Event 1: Lorem ipsum dolor sit amet, consectetur adipiscing elit.
          </li>
          <li>Event 2: Quisque ut metus eu leo interdum volutpat.
          </li>
          <li>Event 3: Vestibulum accumsan erat vitae leo imperdiet faucibus.
          </li>
        </ul>
      </div><!-- /content -->
      <div data-role="footer">
        <h4>
          Look forward to seeing you soon!
        </h4>
      </div><!-- /footer -->
    </div><!-- /page -->

So… How do you make this HTML app available in the Android or iOS app store? Check out our post introducing PhoneGap.

Let me know if you have any questions or comments!

Related posts:

 

 
 Share on Facebook Share on Twitter Share on Reddit Share on LinkedIn
No Comments  comments 
formats

What Makes a Great Teacher? An Article for Educators

Published on May 11, 2013 by in Uncategorized

It’s my great pleasure to introduce you to our friend Elizabeth Rosenthal. Sarah and I became friends with Elizabeth through our college church at University of Central Florida.   As an experienced art teacher, Elizabeth has a great passion for helping elementary school students to be creative.   She would enjoy connecting with you at elizabeth.rosenthal@ocps.net

Teacher helping student

By: Elizabeth Rosenthal

As educators, we don’t always get the chance to see how our teaching affects our students.  So I decided to take a poll of Mrs. G’s 5th grade class to get their feedback on what makes for a great teacher.  Some of the answers are what you would expect from a 5th grader, but there are a few answers that I found charming and enlightening.

But first, a letter thanking you for all that you do:

Dear Teacher,

It’s been a long time, but I wanted to let you know that I remember what you taught me.

I know you think that I am talking about what I learned in your class, but I learned other stuff too. Like how to be a better person. 

I really thought it was great when you told us how you expected us to behave at the beginning of the year, and even though I broke the rules sometimes, I liked that I had some guidance. 

Your class was hard, but I liked that it was hard because I felt like more was expected from me and I felt challenged.

Thanks also for providing opportunities for me to succeed.  I always knew I liked drawing, but I never thought I could do something with it.  Thanks for telling me I was good and telling me to pick up a pencil everyday and practice.  

Also, I never really saw that I was great until you told me I was.

Sincerely,

Student

Special Credit goes to Mrs. G’s class for providing me with insight into what makes a great teacher:

  • A.Q.: I think that a great teacher is thoughtful, caring, sweet and helpful.  She is strict when she needs to be and nice when she needs to be.  She gives out good work and homework and grades it the right way and if we don’t get it she helps us.  She lets us go to the bathroom when we need to, and get a drink of water without raising our hand and lets us do errands and help out because she trusts us. That’s what I love about Mrs. G and what I think is best from a teacher.
  • M.C.: My favorite teacher motivated me.
  • A.M: Ensena, ayuda, y es divertida (She teaches, helps, and is fun).
  • L.C: A good teacher gives you candy and is nice and smart.
  • Y.G.: What makes a great teacher is that they are fun, nice, helpful, and they don’t yell.
  • M.B.: What makes a good teacher is when she does hands on Science with us.
  • G.W.: My favorite teacher was when I was in kindergarten; she let us meet a famous basketball player so she was never on my bad side.
  • L.E.: A great teacher is some one who has respect and treats you equally like others.
  • K. M.: A great teacher is a teacher who can control a class.
  • A.B.: A great teacher is kind to kids and wants them to complete school and have education for themselves.
  • L.R.: What makes a great teacher is that they have to be nice, caring, loving, and fun.  She has to be a little strict with the bad kids and she has to give out treats to the good kids.
  • D.W.: A great teacher would have to be nice and have a sense of humor, and also be a great explainer and teacher.
  • J.P.: What I see in a teacher: My 5th grade teacher inspires me to be a teacher. She is nice, cool, gives you candy, and doesn’t yell that much.
  • A.P.: They have to be smart, and they have to be nice, and not punish the whole class.
  • P.S.: A great teacher is if they help me do some work after school and gives me ways to pass the FCAT.
  • N.S.: A good teacher is when they don’t punish the whole class when it is one or two people and then takes the good students outside.
  • S. C. What makes a great teacher to me? My first grade teacher was the best teacher ever.  Her name was Mrs. Grinner. For my birthday we had cupcakes.  I think that a teacher should give you candy, let you have fun games, center games, and doesn’t yell about everything you do.
  • M.M.: What makes a great teacher? When they give prizes, helps you a lot, and lets you play games.
  • C.S.: I think a great teacher is a person who you can relate to, someone who is interesting and makes learning interesting. A great teacher is someone who’s funny and gives treats. My favorite teacher would also be nice, looks innocent, not mean and weird.  My best teacher is my kindergarten teacher, Ms. Sterling. She is nice, pretty, and interesting. Also a great teacher is someone who punishes a couple of students instead of the whole class and doesn’t give a lot of homework, but just enough to make it fun.

So, what can we learn from these students and what can be said about what makes a great teacher? Perhaps you can think of a teacher right now who has impacted you, motivated you, and encouraged you. A teacher who set you on the track of success and showed the traits of dedication, resilience, and passion every day in their teaching and maybe, just maybe they are the reason why you are a teacher today.

Teachers, never forget or underestimate your ability to inspire those you teach.

 

Photo by http://www.flickr.com/photos/kathycassidy/8522478858/sizes/m/in/photostream/

 

 

 
 Share on Facebook Share on Twitter Share on Reddit Share on LinkedIn
2 Comments  comments 
formats

Learn to Build Your Own Mobile App using PhoneGap

iphone

When I talk to college or high school students about my job as a software developer, I often encounter the question “how do I get started creating apps?”  As a software guy, I want to encourage students to become makers.   I love the craft of making software and building apps.   Therefore, I wanted to share some information about a tool that will provide a gentle introduction to building mobile applications for iOS, Android and Windows Phone.

PhoneGap is a free tool that allows you to create simple mobile applications using HTML, JavaScript, and CSS.   You should check out this tool for the following  reasons:

  • Using PhoneGap Build, you can build apps using one step without owning a Mac or other expensive programming tools.
  • A friend of mine is building a small mobile phone game using Canvas and JavaScript.  It’s amazing that this works!
  • As you grow in your HTML and JavaScript skills, you can use more advanced features of your mobile platform like the accelerometer, camera, geolocation and more.
  • You can build apps like these – http://phonegap.com/app/
  • I believe in taking baby steps in life.  While it would be cool to start learning Java and Objective C to build mobile apps, PhoneGap helps you start the learning process using tools that are simple and engaging.
  • If you start investing time in learning PhoneGap, you’re building skills to become a web developer too.   The demand for these skills is only increasing.

If you don’t know HTML, JavaScript, or CSS, no problem!  There are fun places to get started learning.

HTML/CSS

JavaScript

How do you get started with PhoneGap Build?

Here’s a quick video giving you an overview of how PhoneGap Build works from LearnToProgram.tv .   In future blog posts, I hope to provide more teaching regarding the design process of building a mobile app, getting started with HTML5 and JavaScript, and more.

Reference Links:

 

What kind of app would you like to create?   We would love to hear from you!!  Leave a comment and let us know how we can help you.

 

Related posts:

 

Photo taken from http://www.flickr.com/photos/witer/4908036684/sizes/m/in/photostream/

 

 

 

 

 
 Share on Facebook Share on Twitter Share on Reddit Share on LinkedIn
No Comments  comments 
formats

Change Your Life And Make A Difference – Know Your Strengths

Sunrise

In our work place, we have started a book club around Dave Ramsey’s book “EntreLeadership.”   A small tribe of my friends from work gather over lunch to learn Dave’s lessons on business and leadership.  One awesome recipe from this book shares how you build personal and organizational momentum.

  1. Have focus
  2. Have intensity
  3. Have persistence
  4. Ask God to amplify and guide your efforts

My mind is challenged and blown away by this simple idea.  What do you focus on?  My friend Scott shared a profound and practical book with me called “Strengths Finder 2.0” by Tom Rath (Thanks Scott!)   It argues that leaders and teachers who want to leave a positive impact should always look for ways to foster and grow natural strengths while minimizing weaknesses.   By doing this, it becomes possible to create strategic plans and guides that are energizing.  According to data from Gallup, if a leader primarily focuses on an employee’s strengths, the probability that the team member will be engaged is 99%.

What leader or teacher doesn’t want engagement from their team members or students?

The post “Seven reasons to lead with strengths” by Gallup.com, outlines additional results you may consider reviewing.

What’s special about the book is that you get access to Gallup’s strength inventory tool.  This online survey helps you discover your top 5 strength areas.   It should be noted that Gallup is VERY data oriented.   You can be assured that these strength recommendations are trustworthy.  My top 5 include the following: Belief, Learner, Connectedness, Responsibility, and Self- Assurance.   I’m not sharing this data with you because I want to brag.   I’m sharing my story because I hope you decide to discover your own strength areas too.

The strengths inventory tool concludes by giving you 50 actionable steps to help foster your strengths.   I immediately picked out the top “20%” from this list and plan to focus on one point every month.

  1. Help others see a bigger picture: “The meaning and purpose of your work will often provide direction for others. Remind people why their work is important and how it makes a difference in their lives and in the lives of others.”
  2. Foster friendships with like minded people: “Actively cultivate friends who share your basic values. Consider your best friend. Does this person share your value system?”
  3. Schedule learning time: “Time disappears and your attention intensifies when you are immersed in studying or learning. Allow yourself to ‘follow the trail’ by scheduling learning sessions during periods of time that will not be interrupted by pressing engagements.”
  4. Set goals for learning: “Develop ways to track the progress of your learning. If there are distinct levels or stages of learning within a discipline or skill, take a moment to celebrate your progression from one level to the next. If no such levels exist, create them for yourself (e.g., reading five books on the subject or making three presentations on the subject).”
  5. Connect organizations: “You are aware of the boundaries and borders created within organizations and communities, but you treat these as seamless and fluid. Use your Connectedness talents to break down silos that prevent shared knowledge.”
  6. Partner with a communicator: “Partner with someone with strong Communication talents. This person can help you with the words you need to describe vivid examples of connection in the real world.”
  7. Delegate and foster leadership in others: “You naturally take ownership of every project you are involved in. Make sure that your capacity to own does not keep you from sharing responsibility. Allow others the opportunity to experience the challenges of ownership. In doing so, you will contribute to their growth and development.”
  8. Say no more: “Push yourself to say no. Because you are instinctively responsible, it might sometimes be difficult to refuse opportunities. For this reason, you must be selective. Ask for more responsibility in only the areas that matter most to you.”
  9. Seek out strategic and deliberative people: “Partner with someone with strong Strategic, Deliberative, or Futuristic talents. This person can help you assess the goals to which you commit. You need this help because once you set your sights on a goal, you are likely to stay with it until you achieve it.”
  10.  “Start with dream. end in goal”  — Dave Ramsey : “Set ambitious goals. Don’t hesitate to reach for what others see as impractical and impossible, but what you see as merely bold and exciting — and most importantly — achievable with some heroics and a little luck. Your Self-Assurance talents can lead to achievements that you may not have otherwise even”

Check out our post on appreciative inquiry that builds upon this idea of strength building for families, teams and organizations.

Let’s keep the conversation going!  What tools do you use to foster strengths and passions of your team members or students?

Related Posts:

 

Photo is attributed to http://frank.itlab.us/photo_essays/wrapper.php?feb_25_2011_dancer.html (Amazing photography!)

 

 
 Share on Facebook Share on Twitter Share on Reddit Share on LinkedIn
No Comments  comments 
formats

Building Trust in the Classroom

Published on May 1, 2013 by in Uncategorized

Two things that I’ve come across this week have made me think about the issue of trust in the classroom. The first was Michael Hyatt’s podcast on building (or rebuilding) trust which can be found here. He breaks down the process of building trust into 4 basic components:

  1. Keep your word.
  2. Tell the truth.
  3. Be transparent.
  4. Give without any strings attached.

This seems like common sense advice, but harder to implement than we might think. The second thing that made me think about the issue of trust was an article in the Onion. Wait. You mean the satirical newspaper? Yep. That one. It was a spoof on student evaluations. In the article a professor is devastated by a negative evaluation by a slacker student (found here). I often find reviews like this one amusing more than anything, but I do read negative reviews carefully. As a professor I don’t want to put too much stock into student opinions, my job is not to “entertain” students or make them feel good, my job is to teach. Some things cannot be controlled, for example the difficulty of the subject matter, or the laziness of the students. On the other hand, a negative review can be the result of a strained relationship between a teacher and their students. Here are a few ideas for maintaining a good student-teacher relationship in the classroom:

  1. Clearly define your expectations. Put together a syllabus that clearly outlines your classroom policies and learning objectives. Don’t be vague. The syllabus does not need to be a complete outline of the entire course, but is should be an anchor for the students and the professor to refer to as they travel through the course. It lays down the ground rules and the consequences for breaking them. If a student tries to turn in a late assignment or misses too many classes, you can simply point to the syllabus when they come crying about a grade.
  2. Don’t make a habit of making exceptions. This will only create headaches (trust me, I’ve learned this from experience. Once you give in on one policy, the entire house of cards will come tumbling down. That said, be compassionate. Sometimes there are things that are outside of a student’s control and it does not serve the greater purpose of education to simply stick to the rules for the rules’ sake.
  3. Treat your students with dignity and respect. Too often professors treat their adult students like children. Yes, we need to hold our students accountable for their behavior in the classroom, but we do not need to babysit them. Don’t accommodate bad behavior (being late to class, missing assignments). Let students feel the consequences, but don’t create an adversarial relationship.
  4. Be organized and keep your word. I’m guilty of telling students that an assignment would be graded over the weekend and then failing to do the grading. When I let myself get overwhelmed I let my self-imposed deadlines slip. In other words, don’t make promises you can’t keep. Design your courses in such a way that there is a rhythm and an order that is easy to follow. Don’t take on too much.

I am by no means perfect at implementing these approaches. I am still learning how to be a good teacher, but these are just a few of the lessons that I have learned along the way. I hope that someone else might find them helpful!

 

 

 
 Share on Facebook Share on Twitter Share on Reddit Share on LinkedIn
No Comments  comments 
formats

Learn to Build Your Own Conversational Bot using ChatScript

Science fiction (i.e. Star Trek and Star Wars) paint a vision of the future where people can simply use conversational language to interact with their robots and computers.   In the future, conversation will become a first class user interface like the keyboard, the mouse, and touch screens.    Bruce Wilcox has made a powerful contribution to natural language processing and chatbots by creating ChatScript.  His work has won in the Loebner Prize Contest in 2010, 2011, and 2012.   I wanted to provide a high level introduction into this smart and insightful chatbot engine.    This is a true gem of the open source world.

Download ChatScript for SourceForge.NET

  • Open your web browser to http://sourceforge.net/projects/chatscript/ .
  • Click to the ‘download’ button.
  • After the ChatScript ZIP has completed downloading, unzip the file to a location on your hard drive.   (i.e. c:\chatscript or /home/user/chatscript).   We will refer to this location as your ChatScript home directory.

Test drive ChatScript

  • Open your ChatScript home directory.
  • Run ‘ChatScript.EXE’ (or LinuxChatScript32)
  • After ChatScript loads and you have provided your name, you will have the opportunity to chat with the small chatbot installed by default in ChatScript.
  • In the ChatScript home folder, open the ‘documentation’ folder to learn how ChatScript functions.   Bruce Wilcox and his team have provided a nice set of user guides to help you understand the language and process of creating a chatbot.   I highly recommend checking out the “ChatScript Tutorial.pdf” and “Paper- ARBOR-MakingItReal.pdf.”

Let’s add some personality

  • Open your ChatScript home directory.
  • Copy “Files1.txt” to “Files2.txt.”  “Files2.txt” will contain the topic files (i.e. “.top” files) that your personality will load.
  • Using your favorite text editor, we need to add a line to enable a new topic file.   We will also need to disable the “simpletopic” file.   Edit “files2.txt” so it looks exactly like the following.     Save your changes and close your text editor.

ChatScript File2

  • Open your ChatScript home folder.
  • Open the “RAWDATA” folder.
  • In this folder, create a file called “tutorial.top.”

cs helloworld

  • Open your ChatScript home folder.
  • Run ChatScript.EXE.  After the user provides their name, the user is greated with “Hello world.”

cs helloworld results

ChatScript enables you to organize your chatbot brain into conversation topics.     As you probably guessed, the first line of the script is associated with introductions.   Refer to the “ChatScript Tutorial.pdf” documentation for additional details.

Creating a virtual waiter

Let’s say we needed to program ChatScript to manage the process of ordering breakfast for a user.   Yum! What would this look like in ChatScript?   If you skim through the code below, you can probably understand the logical progression of the conversation.  I believe this is a major strength of ChatScript over alternatives.

Modify the “tutorial.top” file with the following code snippet.   To reload the ChatScript brain, type “:build 2” at the ChatScript prompt to reload the system.

topic: ~introductions keep repeat[]

t: keep() repeat() Hello! How are you? Welcome to Big Joe's Breakfast.  Can I start you off with something to drink?
	a: (~yes) What can I get you to drink?
		b: (*) Ok.  I'll get you your drink order. And I'll come back to take your breakfast order. ^reuse(READY_TO_ORDER)

	a: (~no) Ok. ^reuse(READY_TO_ORDER)

t: READY_TO_ORDER() keep() repeat() Are you ready to order?
	a: (~yes) Ok.   Do you like meat?
		b: (~yes) You might enjoy trying the green eggs and ham.
		b: (~no) You might enjoy trying our veggie omlette.  It's very good.

	a: (~no) I will be back shortly to take your order.

The following shows a sample Chat session using this script.

cs_waiter

  • t: keep() repeat() Hello! How are you? Welcome to Big Joe’s Breakfast.  Can I start you off with something to drink?
    • This line is a topic rule or gambit. (denoted by the “t:”)   Topic lines are executed from top to bottom so that chatbot creators can craft stories.  Topics are initiated by the bot when the system starts or the bot needs to shift the direction of conversation.
    • a: (~yes) What can I get you to drink?” – When the user wants something to drink. This rule will be triggered.   The “(~yes)” code will get triggered when the system encounters any form of an affirmative response.   In more technical terms, ChatScript will trigger this rule when the concept of “yes” is encountered.  While other chatbot frameworks pattern match on strings or text, ChatScript pattern matches on concepts.
    • a: (~no) Ok. ^reuse(READY_TO_ORDER) – This rule will reply “Ok” to the user and direct the system to trigger the “READY_TO_ORDER” rule.
  • t: READY_TO_ORDER() keep() repeat() Are you ready to order?
    • This topic rule is named “READY_TO_ORDER.”  The bot simply asks the question “Are you ready to order?”

Reflections on ChatScript

  • I really love the “concepts” feature of the language.   It’s really cool that the system knows that “I do!” and “I think so” means “yes.”
  • To prepare this small ChatScript code sample, I had to craft a focused story before designing my code.  I believe it would be interesting to introduce this technology to high school or college students interested in creative writing or drama.  Why?  The craft of designing the chatbot is like writing a scene from a play.

 “While ChatScript is a marvelous tool, it is not a chatbot. For that you need the script itself. And to write that script you need to define a personality, much as a novelist crafts a character. Who is the chatbot? What do they do? Who are their friends? What is their life story? We want to create a consistent being with a logical set of interests and intentions living in a rational world. The more a user can model the character’s personality, the more engrossed the user can become in the reality of a fictitious world.”
Bruce and Sue Wilcox – “Making it Real: Loebner-winning Chatbot Design”

  •  I would encourage the reader to explore the documentation for ChatScript.  This blog post only scratches the surface of the rich capabilities of the language.  In future work, we hope to create media to make ChatScript accessible to younger audiences and inspire the next generation of AI professionals.
  • Special thanks to Bruce and Sue Wilcox for creating such an amazing contribution to natural language processing.
  • We are excited to integrate ChatScript into our HistoChat web framework.   We plan to create a large ChatScript brain published in open source to help connect students to some of the great leaders of history.    Please consider backing our project and sharing the vision of HistoChat with your friends and associates. Check out the video below.

 

Photo from http://www.flickr.com/photos/edlitmus/4784371536/sizes/m/in/photostream/

 

 
 Share on Facebook Share on Twitter Share on Reddit Share on LinkedIn
No Comments  comments 
formats

Funny Message for Graduates from Jon Acuff

Published on April 28, 2013 by in Uncategorized

This is a great talk to share with your graduating seniors. Love Jon Acuff’s humor!!

On August 29, 2011 at Convocation, North America’s largest weekly gathering of Christian students, Jon Acuff entertained students with witty jokes about current trends on college campuses. Jon Acuff is a Christian blogger and author of the book ‘Stuff Christians Like’.

 
 Share on Facebook Share on Twitter Share on Reddit Share on LinkedIn
No Comments  comments 
formats

Using an online dropbox to make grading manageable

Published on April 24, 2013 by in Uncategorized

I am sitting in my office near the end of the Spring semester and I am surrounded by piles of paper (see the above picture- yes that is from my office). For the most part, these piles consist of assignments, lab reports, quizzes, exams, etc, that I have long since graded, but students have failed to pick up. Each semester, I dutifully box up the unclaimed papers and save them for the requisite two semesters before they are summarily dumped into the box destined for the shredder. I hate paper. It clutters up my life and keeps me from thinking clearly. It is distracting and it makes it hard for me to keep track of what is done and what is left to be done.

I am currently taking a training class on online teaching. One of the tools that we have discussed is a dropbox for student submissions. We use the Desire2Learn LMS, but I’m sure that the other systems have similar functions. While the training class was focused on using this tool for an online class, I think it would be incredible useful for my traditional classes. If nothing else, it will reduce the amount of paper that piles up in my office each semester.

Assignments where I plan on using the dropbox for student submission:

1)      Lab reports. Each lab report includes a summary of the procedures for a given lab, the results, conclusions and a set of given discussion questions.

2)      Article summaries. Students are required to find articles in the general media related to the topics covered in class. I ask them to write a short summary of the article, describe how it relates to the material we’ve covered in class and why they thought it was interesting.

3)      Unknowns project. I am thinking about implementing a project in which the students will have to identify an unknown microorganism. They will write a report summarizing the biochemical tests they used to identify the organisms. This report will include a dichotomous key and a profile of the microorganism they identify.

I am actually planning on shifting to this approach for my traditional delivery course in the Fall. I already require my students to submit lab reports and article summaries, so this will just be shifting these assignments into the virtual space. I think the advantages far outweigh the disadvantage. Top on my list is that it will cut down on the amount of paper that have in my office. There will be no chance that I could lose or misplace an assignment (which has been known to happen).  The other advantage is that students will have a more clearly defined deadline. I will probably still accept late assignments, but I think this will cut down on the number of assignments that trickle in after the due date. The disadvantages will probably be related to technical problems. Students without decent access to a PC at home (which should not be an issue if they signed up for an online class!), or with remedial computer skills will struggle with getting the assignments turned in on time. I will try to mitigate these problems by providing as much technical support as possible and writing out clear instructions for submission.

Each of these assignments will be graded out of a possible 100 points using a rubric that I will provide to the students. I will grade the assignments and provide feedback, as I see fit, within the comments section of the gradebook. Grading is one of the hardest parts of my job. I often get overwhelmed with the piles of papers and tests to grade, but I think that this tool will allow me to better manage the work flow, rather than overwhelm me. What is your experience using online submission tools? I know that some professors utilize programs like TurnItIn.com. Are there others that work better? I’d love to hear from you!

 
 Share on Facebook Share on Twitter Share on Reddit Share on LinkedIn
No Comments  comments 
formats

Can ChatBots Increase Student Engagement And Learning? [Case Study]

SIRI

 Our ability to speak and have conversations to pass on knowledge is one of our most cherished human qualities.   As a young father, I have enjoyed seeing my little ones learn new words and learn how to communicate their needs.  Learning language is one of our first big lessons of life.

For me, it has been exciting to see the increasing capacity of computers emulating humans.   In chess programs, computers show remarkable strengths in solving planning problems.   Researchers have built cars that can drive without human guidance over challenging desert.  [2] Programs like WATSON can now win game shows like Jeopardy. [3] This is amazing science!

Emulating human conversation, however, is still a frontier to be conquered.    While programs exist that emulate human conversation (i.e. chatbots), these programs still feel like computer programs.   We can do better!  Researchers from the center for Psychology at Athabasca University performed a study to answer the question if chatbots can emulate a historical figure and serve as a teaching tool in their distance learning programs.   For complete details on their study, please visit the following link.

Results from study:

A sample of 53 students from Athabasca University psychology students were asked to chat with FreudBot for 10 minutes, a chatbot programmed with domain knowledge of Sigmund Freud.   The students were asked focused questions regarding the quality of the activity and how they would prioritize improvements to the Freudbot.  Students replied to questions using a scale from 1 to 5 (1=negative, 5=very positive).  [1]

Let M = {average response from students}

  • Would you recommend this activity be expanded to include other topics? Yes (M=4)
  • How engaging did you find this activity? Yes (M=3.08)
  • How memorable do you think this activity will be for learning about Freud? (M=3.04)
  • How useful did you find this activity for learning about Freud? (M=2.96)

The study observed that students had no issues on staying on task.

Opportunities for improvement for FreudBot:

  • The students desired to see improvements in the quality of chat responses.
  • The students also desired to see improvements in the audio response of the system.

Personal reflections:

I believe we can achieve greater educational impact by exploring the following questions and observations:

  • ChatScript: This study used a technology known as AIML.  In particular, I would be interested in seeing if ChatScript can produce measured improvements in the quality of chat responses.   AIML pattern matches by string or text matching.  Let’s say you wanted to make your chatbot vegetarian.   In AIML, you would need to manually encode rules for every form of meat. (i.e. turkey, bacon, ham, steak, etc.)   Using ChatScript’s concept syntax (note the ~), you could express the rule elegantly in one line of code. [4]?: (Do you like ~meat?) No.  I am vegetarian.To learn more about the advantages of ChatScript from the creator of the system, please visit a great post by Bruce Wilcox.   It should be noted that Bruce’s work won the Loebner Prize in 2010 and 2011.
  • Less is more: Is it easier to improve the educational impact of the chatbot when fewer rules need to be drafted and maintained?
  • Student modified chatbots: Can we make changing chatbots accessible to students? What would be the benefits of students correcting the chatbot?
  • Video: Let’s say we’re talking with a chatbot of Albert Einstein.   If the student asks “what is your theory of relativity,” then the system can provide a brief answer with a link to a YouTube video.
  • Link to virtual worlds: Can the learning outcomes and the level of engagement improve if the students used SecondLife or Minecraft to encounter the historical character?   In an American history class, it would be cool to encounter Benjamin Franklin in his print shop or library in a virtual world.

 

As always, we love to hear your comments and ideas.    Have a great week!

 

Please consider supporting our Kickstarter project.  

[1] Heller, B., Proctor, M., Mah, D., Jewell, L. & Cheung, B. (2005). Freudbot: An Investigation of Chatbot Technology in Distance Education. In P. Kommers & G. Richards (Eds.), Proceedings of World Conference on Educational Multimedia, Hypermedia and Telecommunications 2005 (pp. 3913-3918). Chesapeake, VA: AACE.

[2] http://en.wikipedia.org/wiki/Stanley_(vehicle)

[3] https://en.wikipedia.org/wiki/Watson_(computer)

[4] http://sourceforge.net/projects/chatscript/

 

 

 

 
 Share on Facebook Share on Twitter Share on Reddit Share on LinkedIn
No Comments  comments 
michaelrosario - MT Coding is a fundamental tool for this generation - http://t.co/xbDL6lhXyH via @MindShiftKQED, @fitzwalsh, @DeborahHowardd 4 hours ago