Archive for the ‘Uncategorized’ Category
Error Messages and Providing Information
The most interesting error message I ever saw read something like “Unexpected error – installation dying in disgrace” It was the “dying in disgrace” that I found really amusing. It wasn’t all that helpful but it did provide some humor in an otherwise very serious situation. At the time I was doing application installation testing for the final build of an operating system so this was a really big deal. Someone got called into work on a weekend to deal with that let me tell you. It would have been better for all of us if there had been more detail in the message of course. This is just one example of how important messages can be though.
Earlier today Doug Peterson posted (Tweeted on Twitter actually Follow Doug @DougPete) a link to the image below and called it a good discussion point for computer science classes. I agree.
Just what does that message indicate? Is it success or is it an error? Or is it some success handling an error? Is it bad or good? Who did what to cause it? And what is going to happen when the user hits the OK button? This message promotes more questions than it answers. I wondered if a student created this message but apparently it came from Family Feud on Facebook. Not what I typically expect in a professionally developed piece of software.
I’ve had students write programs with some obscure (lazy) messages as well as some fairly nasty error messages over the years. Error messages that call the user names or berate them as stupid and the like. This results in a discussion about the term “user friendly” of course. The other issue is messages that do not provide the user with enough information on how to handle the situation. There is a real knack to helpful error messages and it takes some thought. A message that says “bad things happened” is not enough by itself.
Error messages are not the only sort of messages though. There are also messages that ask questions, give instructions, or a combination of both. We work hard to emphasize that the computer can’t handle ambiguity but forget to remind students that users need clear easy to understand instructions and information as well. Teachers often don’t cover this in courses like the Advanced Placement Computer Science exam course where the focus is almost completely on programing concepts. Teachers often neglect related concepts like user interface design, error handling, and other human computer interaction (HCI) concepts that we tend to include under the heading of software engineering. Some of this is because of a feeling of necessity – there is limited time in the school year and many things that must be covered for the exam. So anything not tested is given a lower priority. This is both unfortunate and a reality. Trade offs have to be made.
I think though that these concepts have to at least be raised and discussed though. Sooner or later most programmers write code that someone other than the programmer is going to use or a grader is going to evaluate for correctness. So we should talk to students about how messages should be clear, helpful and ideally polite. Right?
Source: Alfred Thompson
SEO India SEO India – Addictive Media is a search engine optimization company from Delhi, India. Our services include professional website optimization and link building to get top rankings on search engines like Google and Yahoo Search.
How I Wound Up in Computer Science
The Computer Science Women blog (http://www.compsciwoman.com/ and on Twitter @Compsciwoman) has been running a series of posts by women detailing how they found themselves in computer science. The posts have been interesting and I think many people, especially young women, will enjoy reading them. There are clearly many paths into computer science with some being more intentional than other. My own introduction to computer science was quite unintentional. One might almost say accidental.
First off you have to understand that when I was in high school and college it was a different time. My high school was exceptional (in the late 1960s) as there was a computer. Yes A computer. They told us that if we got a good grade in calculus as a junior we could take a computer course in our senior year. May was not my strong suit and other than that tour my freshmen year I never saw that computer again. Then I entered college and was looking at my general education requirements – though courses that everyone has to take to get a liberal education. I needed to take two courses from a list of math, science and computer science courses.
The first was easy. I took biology as I had taken that in high school and done well. I didn’t really want to take a math course though. As I said I was not overly fond of math. So I signed up for the computer course. I forget what it was actually called but it turned out the be an introduction to programming using the FORTRAN language. FORTRAN was one of the two most widely used languages of the day in the early 1970s.
I started off rocky. A friend of mine all but wrote the first program for me. The second we did pretty much half and half. The third one, as I recall, I mostly wrote for both of us. Even if I remember that one wrong (possible) after the third programming assignment I was hooked. This programming stuff was fun! Students at this small university (Taylor University which has in my opinion one of the best small school CS programs around still) gave students a lot of free access to the computer center – after 5PM – and all the punch cards we could use. I took on project after project and could not wait until the next computer science course. I did take just about all they courses they offered. I was also able to get a job as a lab assistant which meant helping other students learn how to do their projects. That was a great experience as well.
The environment in the computer lab was great for me. We actually had a good number of women in the program but most of them had a life outside of the computer lab. I think they were smart that way. Several of them went on to careers every bit as successful by any definition as any of the men in the program did. That’s something to learn from as well.
Today most students have access to computers. Through programs like DreamSpark students (direct link to the High School version of DreamSpark) have access to all sorts of free development tools as well. No more punch cards but compilers and libraries and online learning resources galore. Even without formal course, though I really do like taking formal courses, students have resources to go beyond that is taught in class. And programs like the Imagine Cup give them a chance to create projects that not only get attention but show potential to literally change the work they live it. It’s pretty cool really.
For myself, almost 35 years after graduation, I am more excited about the computer science field than ever before. The best is yet to come. Are you in?
Source: Alfred Thompson
Objects When? If Ever?
This post started as a comment on Mark Guzdial’s blog (Moti asks: Objects Never? Well, Hardly Ever!) but I decided to elaborate some. I think this is an important discussion to have both in education and in industry. Mark’s post was inspired by an article by Moti Ben-Ari Objects Never? Well, Hardly Ever! | September 2010 | Communications of the ACM. (That is premium content so if you are not an ACM member it will not be fully visible – sorry about that) The key comment from the article is probably:
I claim that the use of OOP is not as prevalent as most people believe, that it is not as successful as its proponents claim, and, therefore, that its central place in the CS curriculum is not justified.
In computer science education today it is taken pretty much as an article of faith that object oriented design is THE design paradigm to teach. The only debate most of the time is when in the curriculum to introduce it. It took me a while to grok OOP. I’m old school and remember the move to structured programming in the early 70s. There was a lot of discussion back them about having to bend designs to make them fit the “new” structured methodology. Programming languages changed to reduce that problem but the “go to is bad” argument still remains – albeit somewhat underground.
But by and large the benefits were obvious enough that structured programming “won. We got a lot of good things from this change. Loops became more powerful and flexible for example. Design got easier and program maintenance got much easier.
Some say that OOP is the next step but I’m not so sure. I think it is an additional step that can co-exist with other paradigms. Proponents want to replace other ways of designing software and that is where the object first or objects later debate comes in. There is a third way that is to use objects in parallel. This argument that gets lost in the shuffle though. That is the school of thought I find myself in.
The way I see it objects fit into more traditional programs and make some things easier. Making everything an object often adds unnecessary and even unhelpful complexity to what can be simple designs. One only has to look at “hello world” written as an OOP program, say in Java. Compare that with the same in old languages like BASIC or even dynamic languages like Python. I don’t see why objects can’t be used with great efficiency when appropriate in a more traditionally designed program but always and for everything? Not so sure about that.
The problem as I see it is that objects are great tools for what they are good at but poor tools for many other things. Everything doesn’t have to be an object. Not every target in carpentry is a nail and so you need other tools than hammers. Programmers should be about having a full toolbox and not a limited one. To many people this means knowing multiple programing languages and I agree with that. I also think that programmers should be comfortable with multiple paradigms. That means functional programming as well as procedural or object oriented. It means that people should be able to use multiple tools (languages and paradigms) in the same over all project. Why not use F#( a functional language) along with C# and Visual Basic and maybe even Iron Python (a dynamic language) in the same project? Use the right tool a the right time. (This is easy with Microsoft’s .NET framework and Visual Studio of course. I’m not sure how easy it is in other tools and platforms.)
Anyway I am tired of language wars. You may want to read Old Geeks Never Die, They Just Get Grumpier on the Blog@CACM to better understand that point of view.
Source: Alfred Thompson
Multiple Paths into Computer Science
This started out as a comment on Mark Guzdial’s blog post titled “Skip college to study computing?” but I decided to add a little and post it here as well.
I think there are multiple paths into computer science careers these days. For example I have been very impressed with students going through programming courses at career technical high schools of late. Note that they avoid the term computer science in part at least because of the vocational nature of these schools. While college prep high schools try to avoid the appearance of vocational training as if preparing one for a job is a bad thing, career tech high schools embrace the word as a part of their mission. More practical than theoretical these programs are sending students to college but they’re looking to prepare for industry not academia. The teachers come with some industry experience and supplement lectures with examples from the professional world. The APCS exam is usually not a focus but the senior level courses are generally large project based and involved a lot of complicated concepts tied together. Is one way better than another? Probably not better or worse just different.
Community colleges are also more vocational (get them a job) focused but there is a mixed bag there. Faculty usually tends to be good but the students are not always motivated to work and learn. Far too many of these students think, like the straw man in the Wizard of Oz, that the only difference between them and others is a diploma. Sorry not the case unless you really have learned the stuff outside of class. This is not to say that some of these programs are not turning out highly professional and qualified industry capable graduates – many are. But you have to look carefully at what you get.
Four year colleges tend to focus on theory rather than practice. I do believe that is usually great in the long run. It seems to have worked for me. These graduates may have a longer ramp up in industry than the community college/vocational program graduates but in the long run the theory will serve them well as the field changes. And it is going to change!
And then there is the totally internally motivated self-directed learner. Some of these people can hold their own with any tier I university graduate. And better than many of them. I’ve known several of these over the years and they are amazing. Bill Gates is one of these people – not that I claim to really know him. These people are on top of things. There are often holes in their knowledge of course. They don’t always know that they don’t know something. But point them in a direction and give them some resources and off they go.
We need several kinds of people in the field. To get there we need several types of programs. I don’t think there is a one size fits all learning program. And that is not necessarily a bad thing.
Source: Alfred Thompson
Kodu Programming For Kids
I’ve demoed Kodu a number of times and I’ve showed it to individual children briefly as well. Last Saturday I did a workshop for kids at HacKid at the Microsoft office in Cambridge MA and that was different. I had about a baker’s dozen young people between about 8 and 12. About half girls and half boys. So quite a mix. We had some trouble getting came controllers to work on the borrowed laptops so were restricted to using keyboard and mouse. I wasn’t sure how that would go but it turns out kids are amazingly adaptable. In fact near the end of the 90 minutes when someone with admin rights got the controllers working kids moved over to them with no visible transition time. I guess controllers are something kids are good with.
There are a number of possible lessons in the Kodu classroom kit but the one I used was called Single Session Introduction Curriculum for PC and Xbox. The main thing we wanted to do in this session was show the students how to add and program objects in a virtual Kodu world. Specifically we wanted them to add a robot to go around and pick up and eat an apple. I figured that I would start with a demo – and I did. It went well but the kids were clearly itching to get started so the demo was not that long.
Then we went step by step though the first exercise. There were a few kids who needed a little help and we explored the “undo” function which is, as with most applications, a life saver. And then they were off and running.
In theory I had a second exercise but these kids were off and experimenting in directions I had not thought of. And it was a Saturday. And my classroom management skills for this age group (I taught this age group for one year about 15 years ago) are rusty so I let them go. I spent some time one on one helping when needed but largely just letting the kids show off what they had created. In a real class rather than one whose goal was just to get kids started and experimenting I would have reigned things in a little better of course. But since building excitement about the possibility of programing computers was this goal this seemed to actually work.
We did spend a little time near the end on creating and modifying the land mass of the virtual world. In all honesty most of the kids had figured that out on their own. At the end of the session some of the kids would have stayed. One boy said “this is the most fun. I could do this all day.” Many of the parents were promising their children that there would be a download when they got home. And at least one child was promised an Xbox controller for use with Kodu.
I came away even more convinced that Kodu is a great tool for getting kids excited about programming. And more things as well.
San Diego Computer Repair Computer & Laptop Repair Service in Las Vegas, San Diego – At Tech 2U we pride ourselves in providing the best PC repair, laptop repair and virus removal services in Sacramento, San Diego, Las Vegas & La Mesa.
SEO Company India SEO India Company W3Origin a leading Search Engine Optimization Company. Get 100% Ethical SEO Services by the Best Indian SEO Company at affordable cost.
Operating systems linux Looking for linux operating system, fedora software, Google Chrome Netbook; Click here to know about everything for linux.
Management Network Security Firewalls protect networks from the outside-in. However, over 80% of successful cybercrime and hacker attacks happen behind firewalls, on the inside of networks. NACwalls protects networks from the inside-out. Designed for SMBs to protect their internal, headquarters, branch and remote office networks with 25 network devices up to 100,000 included wired and wireless, NACwalls provide enterprise-class functions that are easy to deploy, cost effective and help SMBs secure their internal networks at a fraction of the cost of competition.
Flash design Are you looking for professional and creative Flash designers? At Flash Design India, we offer global Flash design services at affordable rates with flash header, flash banner and flash intro without compromising the quality of service.
Graphic design For a comprehensive and effective web presence of your company, depend on the best professional graphic design solution of graphic-design-india.com. Being a reputed graphic design company, w
e provide clients with quality graphic design services that suits their need perfectly.
Windows Hosting India BrainPulse offers professionally managed web hosting India solutions we offering Domain Name Registration services, Linux and windows hosting along with reseller hosting, SSL Certificate, Professional Seo services and e-commerce solution with dedicated servers In India since 1998.
Free VoIP International Calls Searching online how to make free VoIP international calls? Contact Talkfree7.blogspot.com today, a real-time communication and online social media communities, which can provide latest innovative idea to connect the global village.
make website EcoSiteBuilder.com is web based online website builder and providing free website building tools and software at $39 per year including domain and hosting.
Web Hosting BrainPulse is a Professional Web Hosting Company India, offering Affordable Website Hosting Services for corporates, Medium and small business with qulaity web designing and SEO Services India.
Web Hosting Delhi Experience world class web hosting services with BrainPulse Technologies, India’s Premium web hosting company from Delhi with 9 years of hosting experience, Hosting Delhi India offer Managed Web Hosting Solutions & domain name registration Delhi available for top TLD’s along with Linux hosting, windows hosting, Dedicated servers and reseller web hosting.
ppc management Mediarun offers PPC management services via innovative and result driven techniques charging low fixed retainers.
SEO Company India We are the largest SEOCompany India, with global presence, 700+ professionals, 24×7 customer support and hundreds of live clients. Our search engine optimization services are ethical, no obligatory and result oriented. So why are you looking further? Contact us today for a free website health check up.
Web Hosting India BrainPulse is leading web hosting company India offer Web Host Services on Linux/windows hosting Platform. Host website on VPS web hosting solutions, dedicated server Solutions India, reseller hosting on cpanel and Plesk hosting control panels with best quality at affordable Web Hosting Solutions from BrainPulse India.
PSD to CSS HTMLFirm converts your PSD designs to high quality cross browser compatible, W3C valided and SEO semantic HTML/CSS markup.
Windows Data Recovery – The windows data recovery software supports all variants of windows operating systems and recovers deleted or formatted data from FAT and NTFS partitions and other storage media such as pen drive etc.
Excel Recovery Software – Excel Recovery Software restore, read, retrieve & repair corrupt excel files successfully due to header corruption, human errors, virus attack and unexpected system shutdown.
Custom Web Design Internet Marketing Agency – Our internet marketing company offers you high quality Custom Web Design. Searchready is a creative web designing agency that delivers creative and personalized web solutions.
Lenovo IdeaPad U300s When Lenovo’s Beijing-based design team set out to create the IdeaPad U300s Ultrabook, they reimagined the entire laptop experience. The result? A revolutionary new breed of PC marked by impeccable style, intelligent innovations and jaw-dropping power.
Pen Drive Data Recovery – Pen drive data Recovery is a recovery software for USB drives, which recovers deleted data from corrupted or formatted pen drives.
Internet marketing company Volacci is an Austin-based Internet marketing company that earns valuable traffic for companies that span dozens of industries.
Outlook Data Recovery – Outllok Data recovery is pst file recovery software that recovers email messages, contacts, notes and folders from corrupt pst files.
Mac Data Recovery – Mac Data Recovery includes an exhaustive scan to locate lost partitions which recovers data from damaged, deleted, or corrupted HFS volumes and even from initialized disks.
Web Design India – Web Design India-Saamarth IT Consultancy,a Web Design and Web Development Company,Offers Web Design India,Web Designing India,Web Designer India,Web Development India,Web Development PHP,SEO Services,Leading Offshore Web Development Company Located in Noida-India.
NSF to PST conversion – NSF to PST Conversion has been developed with unique guided file excavation technology helps in locationg files and folders.
DBX to NSF Conversion – DBX to NSF Conversion is very user friendly and attractive features where dbx files are listed and converted into nsf files.
Software Security Testing CresTech has a dedicated COE known as CSAC (CresTech Security Assurance Center) which offers various software security testing services and information security services.
Search Engine Optimisation Search Engine Optimisation SEO involves increasing the quality, as well as the volume of traffic on a specific website. With SEO & search engine optimizer services SEO can drastically alter the Return of Investment (ROI) of your company by giving you greater visibility on the web
Roofing internet marketing The Best Internet Marketing Company and Search Engine Optimization for HVAC, Roofing Companies and Flooring Stores. SEO at it’s Best!
Rackmount LCD : web 2 print solution : SEO company services : Dell Laptop Chargers : Google places SEO : Top SEO Optimization Company : seo company
