<html><head></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; "><font class="Apple-style-span" color="#ff1314"><b style="font-size: 18px;">Texto en Español sigue al texto en Inglés</b></font><div><span class="Apple-style-span" style="font-size: 18px;"><br></span></div><div><span class="Apple-style-span" style="font-size: 18px;">Chris, thanks for your comments. Unfortunately I guess my message was confusing and you misinterpreted it completely.</span></div><div><span class="Apple-style-span" style="font-size: 18px;"><br></span></div><div><span class="Apple-style-span" style="font-size: 18px;">The purpose of my message was not to brag about my limited knowledge as you seem to have assumed, but to propose what I thought could be a good subject to use in schools while teaching programming.</span></div><div><span class="Apple-style-span" style="font-size: 18px;"><br></span></div><div><span class="Apple-style-span" style="font-size: 18px;">I feel there is a strong need of good ideas to teach programming in an effective and appealing way.</span></div><div><span class="Apple-style-span" style="font-size: 18px;"><br></span></div><div><span class="Apple-style-span" style="font-size: 18px;">Also I feel there is a strong need of showing more clearly the relationship between what is taught and the real world.</span></div><div><span class="Apple-style-span" style="font-size: 18px;"><br></span></div><div><span class="Apple-style-span" style="font-size: 18px;">Let me tell you how did I get to think about all these ideas that ended up with my message about the ID cards.</span></div><div><span class="Apple-style-span" style="font-size: 18px;"><br></span></div><div><span class="Apple-style-span" style="font-size: 18px;">We recently attended a presentation entitled "Pedagogic value of programming".</span></div><div><span class="Apple-style-span" style="font-size: 18px;"><br></span></div><div><span class="Apple-style-span" style="font-size: 18px;">It was at an elementary school as part of a "Ceibal Fair". I thought to myself it was a great idea. We were finally going to listen to a teacher explaining why teaching programming is a good idea and hopefully also listening to a professional educator on the best ways to teach programming.</span></div><div><span class="Apple-style-span" style="font-size: 18px;"><br></span></div><div><span class="Apple-style-span" style="font-size: 18px;">The presentation was offered by a SugarLabs developer, who clarified he is not a teacher. It was limited to showing, line by line, how to write the Python code for three examples. One was finding out the prime numbers smaller than ten. The second was writing funny sentences by mixing parts of sentences at random. The third one was writing a song and playing it, using complex mathematical formulas.</span></div><div><span class="Apple-style-span" style="font-size: 18px;"><br></span></div><div><span class="Apple-style-span" style="font-size: 18px;">I was disappointed, not having heard what was announced. As I listened to all the details of the code, my thoughts were focused on trying to find ideas teachers could use to teach programming, showing it is an exciting subject, with real world applications. Also some examples where the code itself is very simple, allowing teacher and students to focus on the very important aspect of translating real world problems into a computer program. This may be done writing code in English like the presenter did or, maybe better by using a graphic object oriented language to avoid the distraction and frustration of syntax errors.</span></div><div><span class="Apple-style-span" style="font-size: 18px;"><br></span></div><div><span class="Apple-style-span" style="font-size: 18px;">I hope some teacher or teachers will offer one of these days the presentation that was announced on the "Pedagogic value of programming".</span></div><div><span class="Apple-style-span" style="font-size: 18px;"><br></span></div><div><span class="Apple-style-span" style="font-size: 18px;">My personal opinion about insisting on teaching how to write code to everyone, is that we are creating a new digital divide. A very small number of students is learning how to write code. A large number of teachers and students are learning how to hate programming. It seems no one is learning how to use programming to resolve real world problems and have fun in the process.</span></div><div><span class="Apple-style-span" style="font-size: 18px;"><br></span></div><div><span class="Apple-style-span" style="font-size: 18px;">Please correct me. I am not claiming to know everything. I am just showing the scars I have from the days I had to study math the hard way only to grow old and find out there are much more pleasant and fun ways of learning the same subjects. </span></div><div><span class="Apple-style-span" style="font-size: 18px;"><br></span></div><div><span class="Apple-style-span" style="font-size: 18px;">Sincerely,</span></div><div><span class="Apple-style-span" style="font-size: 18px;"><br></span></div><div><span class="Apple-style-span" style="font-size: medium; "><font class="Apple-style-span" color="#ff1314"><b style="font-size: 18px; ">Texto en Español:</b></font></span><div style="font-size: medium; "><span class="Apple-style-span" style="font-size: 18px; "><br></span></div><div style="font-size: medium; "><span class="Apple-style-span" style="font-size: 18px; ">Chris, </span><span class="Apple-style-span" style="font-size: 18px; ">gracias por tus comentarios. Desafortunadamente parece que mi mensaje fue confuso y lo mal interpretaste completamente.</span></div><div style="font-size: medium; "><span class="Apple-style-span" style="font-size: 18px; "><br></span></div><div style="font-size: medium; "><span class="Apple-style-span" style="font-size: 18px; ">El propósito de mi mensaje no fue hacer alarde de mis limitados conocimientos como pareces haber supuesto, sino proponer lo que pensé podría ser un buen tema para usar en las escuelas al enseñar programación.</span></div><div style="font-size: medium; "><span class="Apple-style-span" style="font-size: 18px; "><br></span></div><div style="font-size: medium; "><span class="Apple-style-span" style="font-size: 18px; ">Siento que hay una gran necesidad de buenas ideas para enseñar programación en forma efectiva y atrayente.</span></div><div style="font-size: medium; "><span class="Apple-style-span" style="font-size: 18px; "><br></span></div><div style="font-size: medium; "><span class="Apple-style-span" style="font-size: 18px; ">También siento que hay gran necesidad de mostrar más claramente la relación entre lo que se enseña y el mundo real.</span></div><div style="font-size: medium; "><span class="Apple-style-span" style="font-size: 18px; "><br></span></div><div style="font-size: medium; "><span class="Apple-style-span" style="font-size: 18px; ">Déjame decirte cómo llegué a pensar en estos temas que me llevaron a escribir el mensaje sobre las cédulas de identidad.</span></div><div style="font-size: medium; "><span class="Apple-style-span" style="font-size: 18px; "><br></span></div><div style="font-size: medium; "><span class="Apple-style-span" style="font-size: 18px; ">Recientemente escuchamos una presentación titulada "Valor pedagógico de la programación".</span></div><div style="font-size: medium; "><span class="Apple-style-span" style="font-size: 18px; "><br></span></div><div style="font-size: medium; "><span class="Apple-style-span" style="font-size: 18px; ">Tuvo lugar en una escuela primaria, como parte de una "Feria Ceibal". Pensé que era una gran idea. Finalmente oiríamos a un maestro explicando por qué enseñar programación es una buena idea y, esperábamos también oír a un educador profesional hablando sobre los mejores caminos para enseñar programación.</span></div><div style="font-size: medium; "><span class="Apple-style-span" style="font-size: 18px; "><br></span></div><div style="font-size: medium; "><span class="Apple-style-span" style="font-size: 18px; ">La presentación fue ofrecida por un desarrollador de SugarLabs que aclaró no ser maestro. Se limitó a mostrar, línea por línea, cómo escribir el código Python para tres ejemplos. Uno consistía en encontrar los números primos menores que diez. El segundo era construir frases graciosas mezclando al azar partes de oraciones. El tercero era escribir una canción y ejecutarla, usando fórmulas matemáticas complejas.</span></div><div style="font-size: medium; "><span class="Apple-style-span" style="font-size: 18px; "><br></span></div><div style="font-size: medium; "><span class="Apple-style-span" style="font-size: 18px; ">Quedé desilusionado. No escuchamos lo que se había anunciado. Mientras escuchaba todos los detalles del código, mis pensamientos se enfocaban a tratar de buscar ideas que los maestros puedan usar para enseñar programación, mostrándolo como un tema excitante, con aplicaciones en el mundo real. También ejemplos donde el código en sí sea muy simple, permitiendo al maestro y sus alumnos concentrarse en el aspecto tan importante de traducir problemas del mundo real a programas de computadora. Esto se puede hacer escribiendo código en Inglés, como hizo el presentador o, tal vez mejor, usando un programa gráfico orientado a objetos, para evitar la distracción y la frustración de los errores de sintaxis.</span></div><div style="font-size: medium; "><span class="Apple-style-span" style="font-size: 18px; "><br></span></div><div style="font-size: medium; "><span class="Apple-style-span" style="font-size: 18px; ">Espero que algún maestro o maestros ofrezcan uno de estos días la presentación que se nos había anunciado sobre "Valor pedagógico de la programación".</span></div><div style="font-size: medium; "><span class="Apple-style-span" style="font-size: 18px; "><br></span></div><div style="font-size: medium; "><span class="Apple-style-span" style="font-size: 18px; ">Mi opinión personal sobre el insistir en enseñar a escribir código a todos, es que estamos creando una nueva brecha digital. Un número muy pequeño de estudiantes está aprendiendo a escribir código. Un número grande de maestros y estudiantes están aprendiendo a odiar programación. Parecería que nadie está aprendiendo a usar programación para resolver problemas del mundo real y divertirse en el proceso.</span></div><div style="font-size: medium; "><span class="Apple-style-span" style="font-size: 18px; "><br></span></div><div style="font-size: medium; "><span class="Apple-style-span" style="font-size: 18px; ">Por favor corrígeme. No estoy diciendo que sé todo. Simplemente estoy mostrando las cicatrices que tengo de los días cuando tuve que estudiar matemática por el camino difícil para luego de viejo venir a enterarme de que hay maneras de aprender estos mismos temas que son mucho más agradables y divertidas.</span></div><div style="font-size: medium; "><span class="Apple-style-span" style="font-size: 18px; "><br></span></div><div style="font-size: medium; "><span class="Apple-style-span" style="font-size: 18px; ">Sinceramente,</span></div><div><span class="Apple-style-span" style="font-size: 18px;"><br></span></div></div><div><br><div>
<span class="Apple-style-span" style="border-collapse: separate; color: rgb(0, 0, 0); font-family: Arial; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-align: auto; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: 0px; -webkit-text-decorations-in-effect: none; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; font-size: medium; "><span class="Apple-style-span" style="border-collapse: separate; color: rgb(0, 0, 0); font-family: Arial; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: 0px; -webkit-text-decorations-in-effect: none; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; font-size: medium; "><div style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; "><div>Carlos Rabassa</div><div>Voluntario</div><div>Red de Apoyo al Plan Ceibal</div><div>Montevideo, Uruguay</div><div><br></div><div><br></div></div></span><br class="Apple-interchange-newline"></span><br class="Apple-interchange-newline">
</div>
<br><div><div>On Nov 8, 2011, at 12:53 PM, Chris Leonard wrote:</div><br class="Apple-interchange-newline"><blockquote type="cite">2011/11/8 Carlos Rabassa <span dir="ltr"><<a href="mailto:carnen@mac.com">carnen@mac.com</a>></span><br><div class="gmail_quote"><blockquote class="gmail_quote" style="margin: 0pt 0pt 0pt 0.8ex; border-left: 1px solid rgb(204, 204, 204); padding-left: 1ex;">
<br><div style="word-wrap: break-word;"><div><div><div><span style="font-size: 18px;"><b><font color="#ff1314">English Text:</font></b></span></div></div><div><font color="#ff1314"><span style="font-size: 18px;"><b><br></b></span></font></div>
<div><div><span style="font-size: 18px;">We believe this could be an interesting subject for a project using some of the applications in the Plan Ceibal computers.<br></span></div></div></div></div><div style="word-wrap: break-word;">
<div><div><div><div><br></div></div></div></div></div></blockquote><div><br> </div><blockquote class="gmail_quote" style="margin: 0pt 0pt 0pt 0.8ex; border-left: 1px solid rgb(204, 204, 204); padding-left: 1ex;"><div style="word-wrap: break-word;">
<div><div><div><div><div style="font-size: medium;"><span style="font-size: 18px;"><span style="color: rgb(0, 0, 0); background-color: transparent; font-variant: normal; text-decoration: none; vertical-align: baseline;">The first project we would like to suggest is to just repeat the calculation we show, using one or more of the applications in Plan Ceibal´ computers.</span></span></div>
<div style="font-size: medium;"><span style="font-size: 18px;"><br></span></div><div style="font-size: medium;"><span style="font-size: 18px;">Then, it could be resolving other problems:</span></div><div style="font-size: medium;">
<span style="font-size: 18px;"><span style="color: rgb(0, 0, 0); background-color: transparent; font-variant: normal; text-decoration: none; vertical-align: baseline;"><br></span></span></div><div style="font-size: medium;">
<span style="font-size: 18px;"><span style="color: rgb(0, 0, 0); background-color: transparent; font-variant: normal; text-decoration: none; vertical-align: baseline;">- Given seven of the eight digits in an ID card, calculate the missing digit.</span></span></div>
<div style="font-size: medium;"><span style="font-size: 18px;"><span style="color: rgb(0, 0, 0); background-color: transparent; font-variant: normal; text-decoration: none; vertical-align: baseline;"><br></span></span></div>
<div style="font-size: medium;"><span style="font-size: 18px;"><span style="color: rgb(0, 0, 0); background-color: transparent; font-variant: normal; text-decoration: none; vertical-align: baseline;">- Whenever there is an error, is the calculation going to return the wrong control digit? Justify the answer.</span></span></div>
<div style="font-size: medium;"><span style="font-size: 18px;"><br></span></div><div style="font-size: medium;"><span style="font-size: 18px;">- If we transpose two consecutive digits, a very frequent error, will the calculation result change? Are we going to be able, in such case, to find out what the error was and correct it?</span></div>
<div style="font-size: medium;"><span style="font-size: 18px;"><br></span></div><div style="font-size: medium;"><span style="font-size: 18px;">- Are there other applications in the real world for control digits, besides the ID card?</span></div>
</div></div></div><div style="font-size: medium;"><span style="font-size: 18px;"><br></span></div><div style="font-size: medium;"><span style="font-size: 18px;">We will be glad to send the paper by Omar Gil and Ricardo Vilaró, mentioned in the attached spreadsheet, to anyone who might wish to further study the subject and do other exercises.</span></div>
<br></div></div></blockquote></div><br><br>[Espa<span id="result_box" class="short_text" lang="es"><span class="hps">ñol</span></span> abajo]<br><br>Carlos,<br><br>The system you describe is generally referred to as a "checksum".<br>
<br><a href="http://en.wikipedia.org/wiki/Checksum">http://en.wikipedia.org/wiki/Checksum</a><br><br><a href="http://es.wikipedia.org/wiki/Suma_de_verificaci%C3%B3n">http://es.wikipedia.org/wiki/Suma_de_verificaci%C3%B3n</a><br>
<br>There are multiple algorithms for calculating check sums and each has fdifferent features.<br><br>Checksum methods typically employ some form of hashing (from the simple to the complex) and depending on the hashing algorithm used and the construction of the identifier they are used on (e.g. all digits, digits and letters) , checksums are capable of detecting transposition errors, simple single substitutions and / or double substitutions.<br>
<br><a href="http://en.wikipedia.org/wiki/List_of_hash_functions">http://en.wikipedia.org/wiki/List_of_hash_functions</a><br><br>Checksums are widely used in barcoding applications and data transmission to look for data corruption. They are used in all banking transactions and are probably printed on your checkbook.<br>
<br>The International Standards Organization publishes:<br>ISO/IEC 7064:2003 "Information technology -- Security techniques -- Check character systems" whcih contains a description of a great many checksum systems and their applicability to different identifier structures.<br>
<br>An understanding of checksums and their characteristics would certainly be a lesson worth learning for anyone interested in how their information is passed within computer systems. it is also an introduction of computing concepts like error correction.<br>
<br>cjl<br><br>[Espa<span id="result_box" class="short_text" lang="es"><span class="hps">ñol</span></span>]<br><span id="result_box" class="" lang="es"><br> <span class="hps">El sistema</span> <span class="hps">usted describe es</span> <span class="hps">generalmente</span> <span class="hps">denomina</span> <span class="hps">"checksum"</span><span class="">.</span><br>
</span><br>
<a href="http://en.wikipedia.org/wiki/Checksum">http://en.wikipedia.org/wiki/Checksum</a><br>
<br>
<a href="http://es.wikipedia.org/wiki/Suma_de_verificaci%C3%B3n">http://es.wikipedia.org/wiki/Suma_de_verificaci%C3%B3n</a><span id="result_box" class="" lang="es"><span class="hps"></span><br><br> <span class="hps">Hay algoritmos</span> <span class="hps">múltiples para</span> <span class="hps">sumas</span> <span class="hps">comprobar</span> <span class="hps">calcular</span> <span class="hps">y cada</span> <span class="hps">tiene características distintas.</span><br>
<br> <span class="hps">Métodos</span> <span class="hps">Checksum</span> <span class="hps">emplean típicamente</span> <span class="hps">alguna forma de</span> <span class="hps">hashing</span> <span class="hps">(del</span> <span class="hps">simple a lo complejo</span><span class="">) y</span> <span class="hps">dependiendo del algoritmo</span> <span class="hps">hashing</span> <span class="hps">utilizado y la confección</span> <span class="hps">del identificador</span> <span class="hps">se utilizan en</span> <span class="hps">(p.ej. todos</span> <span class="hps">dígitos</span><span class="">,</span> <span class="hps">dígitos y letras</span><span class="">)</span><span class="">,</span> <span class="hps">checksums</span> <span class="hps">son capaces de detectar</span> <span class="hps">errores</span> <span class="hps">transposición</span> <span class="hps">, simple</span> <span class="hps">sustituciones</span> <span class="hps">sola</span> <span class="hps">y / o</span> <span class="hps">sustituciones</span> <span class="hps">doble.</span><br>
<br> <span class="hps"><a href="http://en.wikipedia.org/wiki/List_of_hash_functions">http://en.wikipedia.org/wiki/List_of_hash_functions</a></span><br><br> <span class="hps">Checksums se</span> <span class="hps">ampliamente utilizado en</span> <span class="hps">códigos de barras</span> <span class="hps">aplicaciones</span> <span class="hps">y transmisión</span> <span class="hps">datos para buscar</span> <span class="hps">corrupción</span> <span class="hps">datos.</span> <span class="hps">Se utilizan en</span> <span class="hps">todas</span> <span class="hps">transacciones bancarias</span> <span class="hps">y son probablemente</span> <span class="hps">impreso en</span> <span class="hps">su chequera.</span><br>
<br> <span class="hps">La Organización</span> <span class="hps">Normas Internacionales</span> <span class="hps">publica</span><span class="">:</span><br> <span class="hps">ISO</span> <span class="hps">/ IEC</span> <span class="hps">7064:2003</span> <span class="hps">"tecnología</span> <span class="hps">información - Técnicas</span> <span class="hps">Seguridad</span> <span class="hps">- Compruebe</span> <span class="hps">sistemas</span> <span class="hps">carácter"</span> <span class="hps">que contiene una descripción</span> <span class="hps">de un</span> <span class="hps">sistemas</span> <span class="hps">checksum</span> <span class="hps">gran</span> <span class="hps">muchos</span> <span class="hps">y su aplicabilidad a</span> <span class="hps">estructuras</span> <span class="hps">identificador diferente</span><span class="">.</span><br>
<br> <span class="hps">Una comprensión de</span> <span class="hps">checksums</span> <span class="hps">y sus características</span> <span class="hps">ciertamente</span> <span class="hps">sería una lección</span> <span class="hps">pena aprender</span> <span class="hps">para cualquiera interesado en</span> <span class="hps">cómo sus</span> <span class="hps">información</span> <span class="hps">se pasa dentro</span> <span class="hps">sistemas informáticos.</span> <span class="hps">también es</span> <span class="hps">una introducción</span> <span class="hps">de conceptos</span> <span class="hps">computación como</span> <span class="hps">corrección</span> <span class="hps">error.</span></span><br>
</blockquote></div><br></div></body></html>