Friday, April 23, 2010

Photos, Slides, Videos

A Decent video on the Basics of Java Programming.


A great video for computer science teachers who want to explain what computer science is all about. Sort of long, but great.



A video that explains what a processor is and does.



A video that explains memory and disk drives.



An introduction to the Java programming language - slides


Introduction_to__Java_programming_Language.ppt

Games, Maps, Cartoons, and Archival Photos

Historical Computing Photos

An abacus - this was the original calculator. They are still used today in China and the middle east.


A Slide Rule - This was used to perform complex calculations quickly. It preceded the electronic calculator.


A drawing by Leonardo da Vinci of a gear-driven computing device - this was never built.


Jacquard's Loom - this was invented by Joseph Marie Jacquard in 1801 and used punch cards to program a pattern to weave. It is probably the very first example of machine computing for industrial purposes, and modern computers are still based upon the idea behind Jacquard's punch card system.



The Hollerith Desk - This was invented by the founder of IBM and was first used to automate the 1890 census. It saved the U.S. government more than 5 million dollars, and is the direct precursor to electronic general-purpose computers.


The Harvard Mark 1 - this was the first electro-mechanical computer. Though much more advanced in terms of speed and storage, modern computer architecture, conceptually speaking, is essentially unchanged.


The first computer bug - This was found in the Harvard Mark 1 by Grace Hopper, and represents the first computer glitch. The term "bug" originated from this. Yes, the first computer bug was literally a bug!


A Few Interesting Cartoons

Don't overdo it!


Welcome to the 21st Century.


Not a cartoon, but still kind of amusing.

Interactive Communication

Comments are enabled on all posts so that interactive communication is readily available.

Recommended Web Sites

Here some recommended websites:

W3Schools - this websites contains vast resources for learning lots and lots of different web-based programming schools. The Javascript section is particularly recommended, but this website is great for learning many web-based skills.

MSDN - if you are interested in programming applications that run on Microsoft Windows, then this is the place to go. It has pretty much everything you need to know about programming for Windows.

Eclipse.org - Eclipse is an industrial strength Java developer's tool. It is free, open-source, and through the use of plugins, can support many, many types of programming, including web-based programming in multiple programming languages. Highly recommended.

NetBeans.org - Netbeans is another high-quality Java developer's tool, and it can also use plugins, but it can only support Java. It is very easy to use, so if you develop in Java and don't like Eclipse, I would recommend this. It is also free.

Alice - Alice is "An Educational Software that teaches students computer programming in a 3D environment." Alice allows students to learn introductory programming concepts by having them create animations and play games. It's freely available, makes learning to program fun, and has good tutorials.

Java API Specification - this website contains all the documentation for the Java programming language. It is a reference for the entire Java language. It will not teach you to program, but if you ever program in Java, you will need to visit this site.

Computer Science Teacher's Association - this is the a comprehensive website for Computer Science teachers and it contains lots of useful material. Membership is recommended, but there are also free materials available.

Science Buddies - this is a good website for science teachers.

MOSS - MOSS is a free service for detecting software plagiarism. Unfortunately, software plagiarism is rampant in computer science classes. In college, I witnessed more than a few people get expelled for it. This service works by detecting similarities in submitted code, and it works well. Many universities use this service.

5 reading responses

Rationale

Computer science has many, many instructional books, but most of them revolve around a specific subject such as programming language or an operating system. Furthermore, most fiction books revolving around computer science have some aspect of them which is incorrect and therefore misleading. Therefore, in this reading response log, non-fiction books were chosen which where possible, are practical and/or interesting. Because students perform better and enjoy school more when they enjoy class, a variety of books were chosen, from history to home automation to appeal to the widest possible range or students. If students don’t like one of these books, perhaps they will enjoy another.


Title: Home Hacking Projects for Geeks
Author: Tony Northrup and Eric Faulkner
Illustrator: Mark Frauenfelder
Publisher: O’Reilly Media, Inc., 1005 Gravenstein Highway North, Sebastopol, CA 95472
Copyright: 2005 O’Reilly Media, Inc.
ISBN#: 0-596-00405-2
Genre: non-fiction
Library Location: Amarillo Public Library, Central Branch
Summary: This book contains a collection of projects which allow people to expand the capabilities of their computers themselves. Projects include items such as accessing your media collection from the internet, setting up a video monitoring system for your house, remotely monitoring a pet, and, in general, involve home automation of some kind. Many of the projects are low-cost, use software that is freely available and at no cost, and some of the projects don’t require any spending whatsoever.
Personal Comments: This book provides a multitude of computer projects for amateurs, geared towards home automation, and is an excellent book for people who enjoy working with computers and stretching the boundaries of their capabilities. Furthermore, for motivated do-it-yourselfers, this book provides an excellent outlet for their talents. The book provides detailed instructions for configuring any needed software for home automation projects, including code samples, and for most people, this is a boon to their ability to complete the projects. Furthermore, this book provides an excellent medium for teaching the relationship between software and hardware. It is important to note that the title of the book somewhat misleading. The word “geek” here is not intended as a negative connotation, but rather as a personality type, and the word “hacking” is not meant in to describe malicious activities. Hacking in this book’s context is meant to express tinkering with software rather than any malicious connotation.
Suggested Use in Classroom: Home Hacking Projects for Geeks provides excellent extra credit or in-class lab projects. Additionally, because students tend to be more motivated when they see practical applications for their learning, reading this book would provide them with a good resource for instilling this motivation. Because most of the projects are a little too pricy for students to be able to afford on their own, this book would be most useful for in-class use. However, simply flipping through it could give students ideas about their careers, learn how computer science is practical, or give them an idea of they might like to do with their skills in their spare time.


Title: Computers in Plain English
Author: David Strode Akens
Illustrator: Eugene L. Klein
Publisher: PC Press, Inc., Huntsville, Alabama
Copyright: 1999 by David Strode Akens
ISBN#: 0-87397-977-4
Genre: non-fiction
Library Location: Amarillo Public Library, Central Branch
Summary: Computer in Plain English provides anyone with a thorough explanation of computers, as the author says, in plain English. It starts with a small history of personal computers, moves on to explain the basics of computer chips, and finishes with an explanation of all the types of input and output devices, as well as software, that a computer user will probably use. It also includes a thorough glossary in case an average computer user with needs to look something up.
Personal Comments: The cover on this book contains the phrase “should be required reading,” and true to this phrase, the book contains all the information that any computer user should know. The book does not show favoritism for PCs or Macs, nor does it recommend specific software or hardware. It instead explains what desktop publishing software, spreadsheets, and databases are and what they are for, and how computers are organized in general. It also explains the purpose of hardware, such as hard drives, the mouse, and keyboard. This would be an excellent book for any new computer user or for an old computer user looking to round out his or her knowledge. The glossary is especially helpful.
Suggested Use in Classroom: This book provides information that fulfills several of the TEKS computer science objectives, and consequently, provides a good supplement to the textbook, because the writing style is fairly vernacular, is easy to read, and is also interesting, because the content, though somewhat dated, is easy relatable to concepts to which students have probably already been exposed and is definitely current enough to be useful. Computer science students who have little experience with computers, such as those who do not have a home computer, would also find this text useful in case they would like to catch up with other students or learn the need for some of the computer’s internal computers, such as the hard drive. Finally, the glossary is extensive and provides an excellent resource for vocabulary that students should know.


Title: Careers for Computer Buffs & Other Technological Types
Author: Marjorie Eberts and Margaret Gisler
Illustrator: This book contains no illustrations
Publisher: The McGraw-Hill Companies, Two Penn Plaza, New York, NY, 10121-2298
Copyright: 2006 by The McGraw-Hill Companies, Inc.
ISBN#: 0-07-145877-8
Genre: non-fiction
Library Location: Amarillo Public Library, Central Branch



Summary: Careers for Computer Buffs & Other Technological Types provides a summary of today’s market sectors in the computing industry, followed by excellent summaries of careers in all major sectors of the computing market. Examples of such careers include programmers, technical writers, systems analysts, and hardware engineers. Career summaries have salary ranges, job descriptions, job requirements including the type of degree needed, and in many cases, the type of personalities that people who choose these careers are likely to have. It even includes examples of the types of tasks that a given career path may entail.

Personal Comments: This book is a first-rate resource for anyone who likes working with computers and would like their vocation to reflect that. The book’s extensive list of occupations does not exclude those such as musicians, writers, or salesman, which makes it a superior read for people who enjoy working with computers but do not necessarily want to write software, design hardware, or choose a career which is otherwise traditionally associated with computers. For anyone who is considering a career working with computers, this is a good book.

Suggested Use in Classroom: As the title likely suggests, this book would be a good recommendation for students who are digitally oriented and are considering a career working with computers, but do not necessarily know what they want to do. The book contains enough content to give the reader an idea of careers they may not have considered, and furthermore, what those careers are really like. For students with a specific vocation in mind, Careers for Computer Buffs & Other Technological Types will provide an explanation of that vocation and what it is like.


Title: Computers: The Life Story of a Technology
Author: Eric G. Swedin and David L. Ferro
Illustrator: Contains public domain photographs from various institutions, universities, and corporations. Cover Images by J.W. Mauchly
Publisher: Greenwood Press, 88 Post Road West, Westport, CT, 06881
Copyright: 2005 by Eric G. Swedin and David L. Ferro
ISBN#: 0-313-33149-9
Genre: non-fiction / historical
Library Location: Amarillo Public Library, Central Branch


Summary: Computers: The Life Story of a Technology provides an historical overview of the entire history of computing machines, from prehistory to modern times. The book provides explanations of methods of computing before computers existed, the earliest computing machines, the first digital computers, and advances in software. Content is written so that the chronology of advancement corresponds with the writing in the book, so the earliest advances are mentioned first and the latest technology last. The book includes photographs, where available, of historical computing advances, and describes the people or corporations responsible for their development.
Personal Comments: The authors of this book describe it as an overview, but in my opinion, this is more than an overview. The authors provide very thorough explanations of why any mentioned advances are important and how they are relevant, and the timeline given in the book puts the increasing pace of advancement in computing into its astonishing perspective. Worth mentioning is the fact that the underlying technologies behind advances in computing are noted. For example, mechanical computers in the 1800s are described, and then the book describes how electronic computers with capacitors replaced those, and then how digital computers with vacuum tubes replaced those, and then finally the movement to the use of transistors. This book’s historical account of computing should make it interesting for anyone.
Suggested Use in Classroom: Most likely, the best use of this book in the classroom would be as recommended reading for any computer science student who also likes history. Reading this book would make anyone appreciate the pace of advancement in the computing field and how rapid the pace of advancement in this field is and has been.


Title: How Personal & Internet Security Work
Author: Preston Gralla
Illustrator: Eric Lindley
Publisher: Que Publishing, 800 East 96th Street, Indianapolis, Indiana, 46240
Copyright: 2006 by Que Publishing
ISBN#: 0-7897-3553-9
Genre: non-fiction
Library Location: Amarillo Public Library, Central Branch



Summary: This comprehensive book describes many, many different types of security-related technologies. From the World Wide Web to parental controls, this well-illustrated text provides step-by-step and simple descriptions of these and many other technologies. Not only are computer technologies, described however. The book describes other technologies such as airport metal detectors. In the computer world, security starts with locks on doors.

Personal Comments: How Personal & Internet Security Work is an exceptional book for regular people who want to learn about computer security. It is actually a very effective introduction to computer security, with emphasis not on threats from malicious hackers, but on spyware, anti-spyware, malicious hackers, and even the government equally. In my opinion, the fact that identity theft, credit card security, and workplace surveillance are mentioned alongside firewalls, proxy servers, and the TCP/IP protocol is important because in the digital world, security breaches usually do not happen through digital channels, but rather through tactics such as digging through the garbage for materials that should have been shredded. This book, through its wealth of information, states this fact rather elegantly.

Suggested Use in Classroom: Because this book is colorful and easily understandable by anyone, it provides a straightforward and approachable outlet for enrichment or supplemental reading. Any topic could be examined in the book without the need for learning about other topics. This fact provides the teacher with a method to answer the questions of curious students, to increase their understanding of real-world subjects, and facilitate the learning, motivation, and inspiration of computer science students by helping them to learn how about computer science in the real world.

5 web site evaluations




Name of Site: Java Beginner Website Address: http://www.javabeginner.com/
Copyright Date/Last Update: © 2007-08 javabeginner.com. Even though the copyright date is 2008 instead of 2010, further research indicates that the site’s domain name will not expire until 2014. Author/organization credentials: The rights to the contents of this site are reserved and owned by Javabeginner.com. No part of the contents of this site may be copied, reproduced, transmitted, distributed, modified in any form or by any means - graphic, electronic, mechanical, photocopying, printing, recording, taping or stored in an information storage and retrieval system - without the written permission of javabeginner.com. The contents may not be displayed on other web sites other than this one. The preface on the site’s home page is addressed by Srini Appikatla, who has also authored the sites http://www.jdbc-tutorial.com/ and http://www.interview-questions-java.com/, both of which are extensive in their respective subject areas. Website design and ease of navigation: This site is extremely simple and intuitive to navigate. There is a left-hand menu that contains links to portions of learning about introductory Java programming, and the links are arranged so that the links are meant to be read in succession from top to bottom. Each link has very clear and concise title, making this site very easy to quit reading and come back to later. Furthermore, that is the extent of the complexity of the navigation: only one link needs to be clicked to get anywhere on the site. This is very useful because it reduces the frustration that many informational sites tend to generate. Essentially, it couldn’t get easier to navigate this site. However, there are some drawbacks. The design of the site is generally clean and simple, but there is obtrusive advertising throughout the site located within the learning material. This can be annoying, but it doesn’t make the site confusing.
Response and recommendation for use: This site makes excellent supplemental reading for students who want or need a little extra review, as it goes into some depth on most sections of the site. The site contains lots of well-commented code samples which are a boon to beginning programmers. Due to the fact that the site references language-agnostic programming concepts at times when a beginner may not be familiar with them, I would not recommend this site as a global Java learning resource for students. However, this site does contain a vast amount of learning material, more in fact than most programmers will ever use, and because of this fact, it is great for computer science teachers who may not know Java but want to teach it, for example, for an AP computer science class, and would like a wide array of Java material to choose from, or would just like to expand their existing Java knowledge.


       Name of Site: Computer Science Unplugged
       Website Address: http://www.csunplugged.org/
       Copyright Date/Last Update: There is no copyright date on this site, but it is       copyrighted under a Creative Commons Attribution-Noncommercial-No Derivative Works   3.0 License.  Basically, this means that teachers are allowed to print out and photocopy any material on the site without permission, but they have to attribute it to the authors of the site. You can download a PDF version of the site authored by Tim Bell, Ian H. Witten and Mike Fellows, adapted for classroom use by Robyn Adams and Jane McKenzie, and illustrated by Matt Powell, which is © 2005 Computer Science Unplugged.
      Author/Organization Credentials: The site is sponsored by Google, Inc., the University of Canterbury, and Carnegie Mellon University. Tim Bell, the instigator of the site, is Associate Professor and Deputy Head of Department at the University of Canterbury. Ian H. Witten, another author of the site, is a computer science professor at the University of Waikato in New Zealand. There is no information on Mike Fellows.
      Website design and ease of navigation: The website design is somewhat dated, but its cleanliness and simplicity make the use of this site straightforward. A left-hand menu contains links to various kinds of material that the site had to offer, including activities, books, and resources for teachers. Many of the left-hand menu items contains a sub-menu which is not as obvious as it probably could be, and it is easy to miss for a new visitor to the site, potentially causing the visitor to miss out on valuable information. Furthermore, left-hand menu items are highlighted when a user is visiting the corresponding page, but the highlighting is extremely subtle unless the left-hand menu item contains a sub-menu. It can make it difficult for a user to remember where he or she is in the site. However, these are relatively small caveats and can be overlooked because of the great content on the site.
      Response and recommendation for use: This website is a wonderful resource for computer science teachers. There is a free PDF available for download which contains lots of different lessons for learning about various topics on computer science. The book is targeted towards primary age children, and because of this fact, some teachers may want to modify some of the lessons to accommodate secondary students. However, computer science can be a difficult, complex, and therefore a confusing subject, and in my opinion, most of the lessons, though admittedly childish in nature, make it fun and interesting to learn computer science for any age. The site also contains numerous activities, also targeted at primary age children, but still applicable for any age. Most of the explanations of the material are very similar to those my professors in college gave us. Finally, this site contains extensive links to other sites in which more teaching resources can be found, albeit some of the links are dead. However, for any computer science teacher looking for lesson plans, this is the first site I would recommend, no matter the grade level.


       Name of Site: Wikiversity School of Computer Science
       Copyright Date/Last Update: The last update occurred March 2010 and the site is licensed under the Creative Commons Attribution/Share-Alike License.
       Author/Organization Credentials: This is a Wikimedia project, which means it is managed by the Wikimedia foundation, which also manages Wikipedia. As with Wikipedia, there is no one author for this website, but rather, many authors contribute to many different portions of the site. Authors may or may not be qualified to write on the site, but material may be challenged at any time by anyone. Because material which is incorrect is likely to be challenged, incorrect material tends to disappear over time, but can still exist.
       Website design and ease of navigation: The design of the site is simple, pleasing the eye, and organized. It is easy to scan the front page and find what you are looking for. If a user ends up on the wrong page, it is also easy to correct that due to the Browse feature, located in the left-hand menu. In addition, there is a search engine built right into the site which works adequately well. Therefore, the user has a lot of options to navigate the site and find what he or she is looking for, or simply wade through the site. One drawback of the site is the sheer number of links on the front page. They are easily visible and well-organized, but the amount of them can still force a user to spend time reading them all in search of the correct topic. In spite of this, the sheer amount of information on the site makes it difficult to organize, and it is unlikely that a much more efficient organizational scheme would be possible.
       Response and recommendation for use: This site contains a vast amount of information, and it therefore makes a great resource for teachers who know what curriculum they need to teach but need a good starting point for planning lessons or organizing the curriculum. This site provides a multitude of lessons which teach several different programming languages. Java is among the most prominent, which is good for secondary teachers because the AP test tests Java. Many of the lessons contain extensive details which may not be directly related to the lesson but are very helpful, such as installing the required software to complete a lesson.This is definitely a plus because it allows teachers to communicate this information to students. However, in general, I would caution teachers to thoroughly check the material on this site before recommending it to students, as it is always possible that the information could be incorrect. Finally, this site is relatively new and therefore lacks material that would make it more complete. Because anyone can edit this site, teachers can create an account and put their own lesson plans on the site. This not only shares the lesson plan with other people to read and improve; it also provides a central location to keep lesson plans.



       Name of Site: Faculty Resource Center
       Copyright Date/Last Update: (c) Microsoft 2009
       Author/Organization Credentials: This site is owned and operated by Microsoft, which is, as many people know, the world leader in operating systems sales. The license for using the site can be found here. Anyone may submit content to the site, making the quality of the material worth some scrutiny.
       Website design and ease of navigation: This website, as with most Microsoft websites, is pleasing to the eye, has excellent usage of color, and is fairly straightforward to navigation. Users of msn.com, hotmail.com, or other Microsoft   websites will find this site to be familiar. Navigation is possible through a search engine with advanced features such as search by keyword, grade level, computer science area, or type of technology. Users may also browse by computer science area, which causes every lesson uploaded in every subject area to be displayed. Many lessons are in languages other than English, and there are enough of them to make finding English lessons more time-consuming than expected. There is no way to filter by language, which can be frustrating on some subjects of the site which contain many non-English lessons.
        Response and recommendation for use: This site centers around Microsoft technology, and as such, contains some material which may be inappropriate for simply impractical in a secondary school setting. For example, there are many lessons on Microsoft Expression, a proprietary tool for designing websites and Windows desktop software. Because it is largely a design tool and not so much a programming tool, this would not be appropriate for a computer science class. However, this is more than offset by the “programming fundamentals” section, which has more than 200 labs, books, projects, exams, quizzes, etc. covering secondary computer science. No matter the programming language, this site is an excellent place for teachers to find lesson plans. It is important to note that only content covering Microsoft programming languages/products may be uploaded to the site, so that is all there is available. However, Microsoft programming languages are very similar to in grammar and syntax to other common languages such as Java and C++, and it would therefore be easy for a teacher to modify a lesson to suit his or her needs if necessary. I would recommend this site for computer science teachers who want interesting and practical material to use for conveying computer science concepts to students, as there are quite a few lessons which revolve around creating a game of some kind. This would not be a good resource for computer science students, as they may not be able to choose lessons within their skill level.



       Name of Site: Google Code University
       Website address: http://code.google.com/edu/
       Copyright Date / Last Update: ©2010 Google, Inc.
       Author / Organization credentials: This site is owned and operated by Google, Inc., the world leader in search engine technology and a world leader in open-source, free-of-charge, high-quality software libraries. Anyone may submit content to the site, but in order to do so, the user must have taught a course at a university.  The user must then go through an approval process conducted by Google, Inc. Any material present on the site is licensed under the Creative Commons license, so anyone may reuse and modify the material.
       Website design and ease of navigation: Google Code University is very easy to navigate. In the Google tradition, it is a white page with black text and blue links.  A left-hand menu contains links to all the content on the entire website, and the titles of the links have been carefully chosen to make them clear, concise, and produce the expected page when clicked upon. There are links to Google software libraries which may be used for teaching, a link to computer science curriculum resources, and last but not least, a custom Google search which searches university websites for the given search term. In summary, this site is pleasing to the eye and users will spend less time searching and more time using this site than most others.
       Response and recommendation for use: Google Code University contains high-quality material reviewed by employees of an extremely reputable company, all free of charge. Because all the computer science lessons come from either Google or from a university, I would not recommend the courses on this site for students because some of the reading is difficult or requires previous programming knowledge, and the courses on the site require scrutiny and may require modification by the computer science teacher. However, the “web security” and “languages” courses and all other links in the left-hand side of the page list downright spectacular resources for students of all ages. Any non-course section of this site would provide excellent resources for extra credit material, and the Web Security courses, the Python language course, and the “Tools 101” section would be good recommendations for any student who is considering a career in web development. In summary, this site is best suited for teachers who want to provide some enrichment to their students’ academic focus, or especially for teachers who want to show their students that they are learning something practical.