Transitions in teaching computing and science
toronto_db2_guy 20000029D5 919 Views
I've decided to close out my blog here on developworks and move it over to my educational website.
If you have never heard of App Inventor then you would be just like me approximately 6 months ago. Now I'm using it in my high school classroom everyday. App Inventor is like Visual Basic for the modern era. It is a graphical programming environment that is hosted (yes - it is in the cloud!!). The environment was created by Google based on some slick work by the gurus at MIT.
Back in August Google decided to divest in many projects, including App Inventor. Thankfully, MIT has agreed to pickup the project and further its life as a new open source project. Now everyone can get involved and enhance this great learning tool that can be used to create useful mobile applications without getting into Objective-C or Java and XML.
I will no longer be updating this blog on developerworks. If you would like to peak inside the world of high school CS education come visit my website from time to time and say hello.
Cheers all !!
Motivating high school CS students
I have been so fortunate over the past 12+ months. Last September I landed my first full time teaching position at a great high school and this month I've started a totally revised program of study at another great high school. All summer I contemplated the best first programming language for students and I have concluded that Java is not in my list.
I wanted to provide students with a positive first experience in CS.
I enjoy programming when the goal and the challenge of reaching the goal are so interesting that I simply lose track of time. The language and tools need to be simple yet powerful so they are never viewed as a barrier on your journey to "getting the code right".
What did I decide to use?
For my Grade 10 computer science course I decided to use the Mobile Application Development environment pioneered by MIT and Google - App Inventor.
I first heard about App Inventor from Peter Beens (an experienced HS CS teacher), and then I dug into the environment a bit deeper and had lots of fun making simple games and useful applications like a Restaurant Tip Calculator program for my Samsung Android phone. I dabbled with Apple's iPhone environment, but unless you are into XML and Java the entry point is fairly steep.
A surprise came in early August when Google announced the closing of Google Labs which included the Google App Inventor environment. Thankfully, Google also announced that they would open source the App Inventor environment and MIT established a new Mobile Learning Center and their first key project is App Inventor. This week in one of the App Inventor Forums MIT announced a job posting for a full-time engineer to work on the App Inventor project. This is great news for teachers and fans of bringing CS to high school students as a mobile app development experience.
For my Grade 11 Computer Science course I selected Python for many reasons and I'm looking forward to using the simplicity and power of Python and its amazing standard library and other fun libraries such as Pygame.
I haven't been updating my blog for way too long. I'll share some of the ideas from the two summer workshops I attended and I'll keep you updated on how the new year goes using App Inventor and Python.
You can follow my courses on my Moodle powered website.
Gender and Computing
I wanted to share with you a recent episode of a regional television show.
The program Women in Science - TVO Agenda show was excellent as the panel shared their thoughts on gender differences within the secondary and post-seconday institutions. Specfically they addressed the fileds of Science, Engineering, and Computer Science.
Computer Science education is NOT just about computer programming.
Computer Science is a way of thinking about problem solving.
These problems can address the full spectrum of life including:
Computer programming skills and knowledge can be applied to any of these above disciplines and it is important to expose first year computer programming students to the potential impact of computer science across society.
Sandy Graham, a panelist from the television show will be joining our classes this Friday and I'm looking forward to the activity and classroom discussion.
toronto_db2_guy 20000029D5 Tags:  media twitter watson education lotus social repairs home 2,185 Views
Impact of Computing ContinuesIf you have been following the trials of humans vs. machine over the past three (3) days you may wonder "What's the big deal?" I believe that we are yet to see the impact, but we'll know it when we experience it first hand.
Fundamentally, computer programs consist of data structures and algorithms. As a high school computer science and business technology teacher, the Jeopardy event provided an excellent opportunity to discuss both aspects of computing. The data structure and algorithms playing chess have been demonstrated over the past few decades, but the nuances of human communication and knowledge proved much more challenging. I was trying to explain to others that having optimized data structures and algorithms were both key to Watson's success this week.
Remember the Day 2 Final Jeopardy question (IBM's explanation)? My question for the class "How would you improve Watson?"
There are 2 airports in Toronto: Pearson and Billy Bishop. Billy Bishop was a famous WWI Canadian flying Ace and Lester Pearson was involved in the war and he helped to establish United Nations Peacekeeping. Last time I checked Toronto <> U.S. City and the final IF statement should be included in Watson II.
Impact of Human Communication
The other major event over the past 2-3 weeks is the uprising in Egypt. The other day I came across the Fast Company Infographic of the day. It clearly demonstrates the impact of human communication. The graphic used Google's pagerank algorithm and Twitter activity to determine the key people and their impact on the uprising in Egypt. It would have been interesting to see well known Twitter users playing a large role in the event. It made me think about how my social media footprint as a consumer and creator of content. Like most people I'm much higher on the consuming end than the creation end of content.
Home repairsWhy Home repairs?
I have recently hired a number of home improvement firms to fix items around the house and I can state that Social Media helped me tremendously. The solution for me was to checkout Homestars for my city and cull through the various reviews and replies to find the best trades. When I'm impressed with the result I feel obligated to return and include my side of the story. So far this has been a huge success, I wish I thought of HomeStars earlier, its a great idea.
A tribute to a past mentor ( Lotus and Social Media )The media has recently been covering Lotusphere and in this online video the commentators reference the stage presence of a previous IBM mentor - Bob Picciano ( skip to the 5 minute mark of the video). It is great to see Lotus remaining in the forefront of social media and integrating RIM into the IBM/Lotus offerings. I'm looking forward to using more advanced features of Android and hopefully we will see some new offerings in this area also. I've been creating my first Android applications using Eclipse and the Android toolkit and the programming environment is much better than I expected. It is a combination of declarative and procedural programming. I know that Java coders won't want to call Java code procedural, but compared to updating XML files I would call it procedural!
toronto_db2_guy 20000029D5 2,255 Views
Ray Ozzie Leaves Microsoft
I have been a fan of Ray Ozzie and his work. I witnessed first hand how Lotus Notes transformed the way work was performed.
In his final email memo to Microsoft employees he hits on many important aspects of the current drivers in IT and where he views the future.
Ray Ozzie wrote ..."Complexity kills. Complexity sucks the life out of users, developers and IT. "...made me contemplate why Google Wave was not successful. It was simply too complex. Perhaps the people are having difficulty articulating why they need an iPAD, but one thing that it is NOT is complex. If you are a non-believer check this_YouTube video out.
In Support of Simplicity
I'm in the process of setting up a Web based Learning Management System (LMS) called Moodle on a local hosting provider.
Moodle is the essence of simplicity. It was designed to support a flexible learning environment that was quick to setup and easy to update.
I'll report back soon with a link to my Moodle site, but in the meantime "Good luck Mr. Ozzie !! and everyone else - "Keep it Simple !!".
The Informix team has announced "Panther" !!
Informix 11.7 server was announced today.
This release continues the tradition of rock-solid database servers from the Informix development team.
The Informix Flexible Grid feature and associated tooling (Open Admin Tool - OAT) provide an extremely flexible environment for scaling a reliable cluster of database servers. You can even have different server platforms (Windows and Linux for example) in a single grid.
New index scan technology can improve query performance for those "sometimes nasty" SQL queries. Trusted contexts can be used to improve Informix server performance for application servers such as WebSphere and others.
In this release you can also use the latest Optim Development Studio tools and the IBM Mashup Center.
I wish I was able to attend the Information on Demand (IOD) conference in Las Vegas, but I'll be busy in the classroom teaching computer technology courses instead.
HTML5 music video mashup
Everyone is talking about HTML5 and how it can be used to replace Adobe Flash for multi-media websites. Recently, I came across a great example of HTML5 in action in a music video from one of my favorite groups Arcade Fire. The interactive website for the song Wilderness Downtown uses HTML5 and Google Earth to create a compelling experience (at least for me). You will need to use Google Chrome browser to get the full effect, but other browsers probably work well also.
Enjoy the weekend...
1. Malware 101This week's very public cross-site scripting issue on Twitter provided an interesting opportunity to explain malware in my programming class.
2, URL shortening - good or bad?
The article in the Globe and Mail also explained how URL shortening services are being used to mis-direct users to malicious websites and how the 140 character limit of Twitter provides a platform for potential security vulnerabilities.
3. Event-driven web applications - Are they opening more potential security issues?
4. Ethics in action
As more news about the Twitter issues was revealed this week it became apparent that the issue was identified by a Japanese individual identify the vulnerability earlier this year.
5. Better coding practices
The lesson also provided an opportunity to discuss defensive coding techniques to avoid potential security issues.
toronto_db2_guy 20000029D5 1,827 Views
As of today, I am now a full-time high school teacher. I've made the leap and I'm teaching computer science and business classes at a local high school.
I have met so many interesting people while working at IBM (both IBMers and clients) and everyone has been so supportive of my decision to move into teaching. I can share my experiences with students as they learn how to use productivity software applications and learn how to program.
Motivating students is now my priority and it always helps when the IT job market is improving in the Toronto area. For example, over the weekend I read this Globe and Mail article about how Toronto is getting more established (at least enticing companies with provincial tax credits) in the electronic gaming and digital visual effects industries.
until next time...
Brain Drain becomes Brain Gain (for Canada)I recall a few years ago when we continually heard about the "Brain Drain" of scientists leaving Canada to seek research grants and prolific careers in the United States. This week the Canadian government and its universities "fired across the bow" and successfully recruited 19 of the world's best with a 7 year Canada Excellence Research Chair (CERC) grants.
What about Gender Equity?
Of the 19 successful candidates there are zero women represented and according to Winnipeg Free Press out of the 40 names put forward none were women.
The Many Faces of Science and Computing
When I was recently teaching computer studies I came across some excellent videos from the University of Washington examining a day in the life of three successful women in the field of computing. The video was well received by the students and they came to better understand that the field of computing is not "only" about programming in the corner on your own. While preparing one of my lessons I also discovered
Career Advice from an IBM Fellow - YouTube Style
One of the most innovative and personal career advice videos was recently created by, IBM Fellow, John Cohn.
His video Engineering Paradise - YouTube is fun to watch, but the singers won't be competing on American Idol anytime soon.
When we watched John's video in the classroom I explained the role of the "Fellows" program at IBM and we had a great discussion of intellectual property rights, open source licensing models, and the ethical use of software.
Should high school programming courses be taught using C++?
The most common programming language being taught in Canadian high schools is currently Java. There are many reasons why Java has become the predominant language. Java is the language used in many high school programming contests and standardized programming exams including the: International Baccalaureate (IB) and the U.S. Advanced Placement programs. From 1999 to 2003 the APCS exam in the U.S. used C++ for their programming problem solving questions, but in 2004 C++ was replaced with Java.
Should standardized programming tests be only available in Java or should there be alternative versions available in Python or C++?
I feel that there are many reasons to chose Java, C++, or Python as an introductory programming language. Therefore, I believe that these standardized examinations should be offered in multiple languages to address the diversity of student interests.
I recently spent a month teaching grade 11 and 12 computer programming courses at a local high school. As a pre-service teacher I continued with the programming lessons and languages used by the primary teacher for the course. I have used many different languages over the years and approaching some of the fundamental computer science such as algorithms, data structures, and logic using C++ examples turned out to be a very rewarding experience.
Why I liked using C++ in the classroom?
According to the creator of C++, Bjarne Stoustrup:
" C++ is a general purpose programming language designed to make programming more enjoyable for the serious programmer."
Bjarne recently published a new book called "Programming: Principles and Practice using C++".
In my view his book is an excellent teaching resource to aid in lesson planning and guided-programming activities for a rigorous high school computer science course. The text was originally designed to support an undergraduate programming course at Texas A&M, but his approach can be easily adapted to a high school setting.
I would not recommend that Bjarne's book be used "as-is" within a high school course, but his approach to computer science, programming, and testing is refreshing and it provides a scalable model for learning how to program (in any language). It is true that only a few students in high school computer science classes will ultimately pursue careers within the software field, but I feel that for those students who do decide to continue studying software after high school, Bjarne's book can be used to guide them onto more advanced topics.
During my practice teaching in March I also had the opportunity to teach units on the following topics:
I will provide some additional examples of how I approached these activities in upcoming blog entries.
How do you learn new technology?
Some people just dive in and learn new technology for the shear interest of it. Others are looking to solve a problem and are not the interested in the technology itself.
Consider how an Apple Store is now really a social learning zone and not much of a retail store anymore.
I recently came across this interesting study from the University of Western Ontario that does a fine job on categorizing types of IT learners.
I found this quote the most interesting - “Informal and incidental learning actually dominated the amount of learning going on,”
Deborah Compeau from the Richard Ivey School of Business describes six categories in her report.
Case in point - "I just downloaded DB2 Express-C for Mac OS X Snow Leopard" - just to explore how it performs on my Macbook.
At teacher's college we are often asked to participate in co-operative learning activities. Co-operative learning is more than just group work, it refers to learning from others within a group and not just the teacher.
I have tried Google Docs to jointly update a single document, but it required transforming the document to and from different formats.
I kept thinking that working as a group between face-to-face meeting should be more interactive and productive.
Have you heard about the new Google Wave?
Google Wave is a collection of web-based collaborative tools to improve our ability to work (or play) together. Once you have been invited to join the Google wave pilot program from a friend you can start a wave or discussion thread with anyone in your Google contacts who also has a Google wave account.
How is Google wave different from Google docs?
A Google wave is a hybrid of joint document editing (but in real-time - you actually see each person typing on the screen at the same time), discussions, and instant messaging.
Google waves can also include Google gadgets such as voting on updates to a document ( or just playing sudoku :->).
When to use a Google wave?
I have found that starting a wave at the beginning of a project using a single document with collaborative editing works well.
Avoid going crazy with attachments, it simply defeats the purpose of collaborating. Sharing your research findings is simple and effective using the wave format.
Two features that make Google wave interesting to me include:
If you need to work on joint projects across a large group consider how Google Wave might be a good fit. Keep in mind that this is still in pilot/beta mode so there are many missing features that really should be there, but that's life when it is free.
toronto_db2_guy 20000029D5 1,843 Views
This week marks the first ever computer science education week.
To find out more check out the Computer Science Education Week website.
The site suggests that teachers use Alice to have students create programs celebrating computer science education.
If you are unfamiliar with Alice, you can download the environment for free and check it out. It was created by the folks at Carnegie Mellon.
Alice is an excellent graphical programming environment that can be used to introduce students to the fundamental components of programming, including variables, loops, conditions, etc..
Each program is called a world and you add objects and methods to the world and basically build a small movie or storyboard.
I was fortunate to see Alice in action at a high school recently and the students seem to really enjoy the environment and transitioning from Alice to Java or Python would probably work well.
You never know until you try it, so maybe I'll find out in the future if the transition from Alice to other "industrial" object-oriented programming languages is smooth or not.
Anyway, it is great to see a recognition that teaching computer science in high school programs is important and should help drive innovative ideas in the 21st century.
I just completed my first month of practice teaching high school science (including Physics). The amount of preparation required to teach Physics and Science is incredible, but when you are able to connect the students with the content the reward is definitely worth the long nights preparing the lessons.
From my perspective, the revised science curriculum in Ontario is focused on :
What does scientific literacy look like?
A great example of scientific literacy would be the new unit in Grade 10 science on Climate Change.
Since awareness is the first step in behavioural change, it is comforting to know that every student is going to be spending a few weeks examining climate change issues as they complete their high school education. I expect that my parents would have never expected to be sorting their waste on a daily basis, so everyday behaviour does take some time to occur and the interest in environmental education in North America is definitely on the rise. However, environmental education is nothing new in other parts of the world. In 2000, I had the opportunity to go trekking in the Annapurna region of Nepal, I remember spending an afternoon at a local school and the teachers explained to us that their students had a mandatory course on environmental education. The beauty of the mountains in Nepal is breathtaking and the educators ensured that their students did not take it for granted.
During my month of teaching, I wasn't about to teach the Climate Change unit, but I had fun teaching the Optics unit. With recent advances in medical and industrial applications of optics technologies I really enjoyed teaching the unit. I was able to discuss fiber optics, microscopic surgery, laser eye surgery, and other fun topics such as the physics of rainbows.
What is inquiry-based learning?
Inquiry based learning involves providing students with an environment for them to pose questions and discover answers without being provided directed instruction on how to obtain the answers. This teaching technique has many advantages and it can help create a generation of self-directed learners who are intrinsically motivated to learn science.
When I was interviewing new employees I was always looking for evidence of inquiry-based skills, so this skill is definitely a great asset for students on their way to college or university programs.