SlideShare una empresa de Scribd logo
1 de 35
A Ciencia da 
Programación de 
Ordenadores 
(TAMÉN EN GALEGO) 
Manuel Caeiro Rodríguez 
5 de novembro de 2014
Que é un ordenador?
Donde hai ordenadores?
Que hai nun ordenador? 
 Hardware (cousas que se poden tocar) 
 Dispositivos electrónicos 
 Circuitos impresos 
 Cables
Que hai nun ordenador? 
 Software 
(non se pode tocar) 
 Programas 
 Datos 
 Bits: ceros e uns 
 Cargas eléctricas, correntes e outras 
propiedades físicas que poden estar en dous 
estados (binarios, dixitais) 
 As agrupacións de ceros e uns (bytes) son 
as que realmente almacenan programas e 
datos.
Almacenamento de datos 
 1889: Herman Holleritz, desenvolveu as 
tarxetas perforadas para gardar datos (censo 
dos EEUU). 
 Os datos (e programas) poden ser 
codificados como buracos nunha tarxeta.
A máquina de Turing 
 1936: máquina imaxinaria 
 Dispositivo que manipula símbolos sobre unha cinta 
de acordo a unha táboa de regras. 
 A pesar da súa simplicidade, pode ser adaptada para 
simular a lóxica de calquera ordenador actual 
 A diferenza marcaa a Lei de Moore 
http://gl.wikipedia.org/wiki/Alan_Turing
Arquitectura de Von Neumann 
 1945: Modelo teórico que describe a 
estructura básica dos ordenadores actuais 
Concepto de programa almacenado 
UCP e zona de almacenamento separados 
Definiu o bit “Binary digit” 
http://gl.wikipedia.org/wiki/John_von_Neumann
Que fai un ordenador?
Que fai un ordenador? 
 Ollo, os ordenadores só executan os programas ... 
Licenza CC-BY-NC-ND 3.0 de csumplugged.org
Como se programa?
Como se programa? 
1 2 3 
Traducir 
Interpretar 
Ensamblar 
Ensamblar Compilar 
Linguaxe máquina 
Linguaxe 
ensambladora 
Linguaxe de alto nivel 
(3ª generación)
Linguaxes de alto nivel
Por que hai varias linguaxes 
de ordenador? 
 O que se pode facer nun ordenador ven 
determinado pola linguaxe máquina 
 O que cambia unha linguaxe de 
programación é a forma en que nós (as 
persoas) nos podemos comunicar cos 
ordenadores e con outras persoas
Linguaxes de Programación 
máis Relevantes 
 1957-1959: 
 FORTRAN (Formula Translation) 
 LISP (List Processor) 
 COBOL (Common Business-Oriented Language) 
 Son considerados as linguaxes máis antigas 
pero ainda se usan (sistemas legados). 
 Caixeiros automáticos 
 Tarxetas de crédito 
 Curiosidade: Terminator ve 
COBOL no seu 
visor
Linguaxes de Programación 
máis Relevantes 
 1970: “Pascal” 
 Alto nivel 
 En honra ao matemático/físico Blaise Pascal, que 
desenvolvera a Pascaline 
 Ensino de programación estructurada. 
 Creador: Niklaus Wirth 
 Usado para programar Skype
Linguaxes de Programación 
máis Relevantes 
 1972 “C” 
 Linguaxe moi utilizado, de propósito xeral. Moitas 
outras linguaxes derivadas: C++, C#, Java, 
JavaScript, Perl, PHP e Python. 
 Creador: Dennis Ritchie 
 Usado para servidores WWW
Linguaxes de Programación 
máis Relevantes 
 1983 “C++” 
 “C Con Clases” ++ é o operador incremento 
 Extensión de C orientada a obxectos 
 Creador: Bjarne Stroustrup 
 Usado para programar navegadores web
Linguaxes de Programación 
máis Relevantes 
 1980 “Ada” 
 En honra a “Ada (Augusta Byron) Lovelace” 
 1843: fixo primeiro algoritmo para a máquina 
analítica deseñada por Charle Babbage. 
 Ada desenvolveuse como un encargo do DoD US 
http://www.lavozdegalicia.es/noticia/sociedad/2012/12/10/ada-lovelace- 
implicacion-maquina-analitica-babbage/ 
00031355146716765243152.http://www.computerhistory.org/babbage/ htm
Linguaxes de Programación 
máis Relevantes 
 1991 “Python” 
 Por honra aos comediantes “Monty Python” 
 Creado para permitir distintos estilos de 
programación e ser divertido. 
 Creador: Guido Van Rossum 
 Usado para programar 
 Google 
 Yahoo! 
 Spotify
Linguaxes de Programación 
máis Relevantes 
 1993 “Ruby” 
 Por ser a pedra de nacemento dun dos 
colaboradores do creador 
 Deseñado para ser moi productivo e ao mesmo 
tempo divertido. 
 Creador: Yukihiro Matsumoto 
 Usado para programar 
 Twitter 
 Groupon
Linguaxes de Programación 
máis Relevantes 
 1995 “Java” 
 Pola cantidade de café que tomaron os seus 
creadores mentres traballaban nel 
 Deseñado para ser utilizado en aparellos de 
electrónica de consumo. 
 Creador: James Gosling 
 Usado para programar 
 Android apps
“Hola Mundo” na historia das 
linguaxes de programación 
COBOL 
Pascal 
C 
Phyton Ruby
Índice TIOBE 
 Un indicador da popularidade das linguaxes 
de programación, baseado en uso por parte 
de programadores, cursos e empresas
Cales son as características 
dun bo programa? 
 Que funcione!
Grandes desastres software 
 1962: Cohete Mariner 1 (18,5 M. $). Fallo no sistema de guía 
por un “-” 
 1983: (Casi) III Guerra Mundial. O sistema de aviso da Unión 
Soviética detectou un lanzamento falso. 
 1985: Therac-25. Mortes por máquina médica radiación en 
Canadá. 
 1990: AT&T comunicacións de teléfono. 60.000 usuarios sen 
servizo. Erro na especificación de protocolos. 
 1994: Procesadores Pentium, cometen erros matemáticos. 
 1996: Ariane-5. Estoupa no aire. Problema: conversión 64 bits a 
16 bits. 
 1998: Mars Climate Orbiter da NASA. (327,6 M. $). O aparello 
estaba orientado nun ángulo incorrecto. Problema: utilización de 
diferentes unidades de medida (libras-forza por segundos vs. 
Newtons por segundo). 
 2000: Erro do milenio. Asumiuse que o software só funcionaría 
para os anos que comenzasen con 19. Polo tanto, o 1 de 
xaneiro de 2000 sería o 1 de xaneiro de 1900.
Cales son as características 
dun bo programa? 
 Que funcione ben para o usuario!
Cales son as características 
dun bo programa? 
 Que se entenda! 
 Facilite a comunidación entre as persoas 
Malos Exemplos 
Código ofuscado Código espagueti (goto) 
#include <time.h> 
#define ch(x) "/|"[sgn(x)+1] 
#define sgn(x) (x>0?1:x?-1:0) 
main(){long a=0,b=0,c=0,d=0,i=0,j=0;char s[21][40] 
;memset(s,' ',0x348);while(j++<0x15)s[j][-1]='0'; 
srand(time(NULL));while(++i<<15){switch(rand()%7){ 
case 0:c&&(c-=sgn(c)*(rand()%(2*c))); 
case 1:c--,c^=-~-~-~-~-~-~-~-8;break; 
case 2:d=18-~!c,c=-sgn(a)+d>>3;break; 
case 3:c=a=(c>0?1:-1)*(d=b=18);break; 
case 4:c=a=sgn(a)*(d=b*=7.0/9);break; 
case 5:sgn(c)*c>2&&(c-=3*sgn(c),d--); 
}s[d][19+c]=ch(c);}while(i&21^21)puts(s[31&i++]);}
O Software aberto 
 Comunidades abertas e libres. 
 Dereitos do Software libre (Richard Stallman) 
do GNU Project: 
 Para executar o software como queiras. 
 Para estudar o software e cambialo 
(acceso ao código fonte) 
 Para redistribuir copias. 
 Para distribuir copias das modificacións. 
http://gl.wikipedia.org/wiki/Richard_Stallman
Sitios importantes 
 Stack overflow. 
 É un sitio web no con preguntas e respostas 
sobre cuestións relacionadas coa programación 
de ordenadores. 
 É a mensaxe de erro máis típica e menos 
explicativa en C
Sitios importantes 
 Git hub. É un sitio no que se poden gardar 
proxectos software e manter un control de 
versións. 
 Filosofía aberta
Queres programar? 
 2007: “Scratch” 
 Plantexado para que programen os nenos 
 Creador: Mitchel Resnick (MIT Media Lab) 
 Dispoñible en Galego
Aprender xogando
Outros 
http://193.146.210.92:3001/gl/boards/1157
Programar e máis en Galego 
 Concurso de Scratch 
http://aprendoprogramando.cpetig.org/ 
 Código Octupus 
http://www.tecnoloxia.org/codigooctopus/ 
 A traducir ao galego http://www.trasno.net/ 
 “Programación para Rapaces” en Edu-AREA (Beta) 
http://193.146.210.92:3001/gl/boards/1157

Más contenido relacionado

Similar a A ciencia da programación de ordenadores (tamén en galego)

Similar a A ciencia da programación de ordenadores (tamén en galego) (20)

Sistema informático
Sistema informáticoSistema informático
Sistema informático
 
Presentación sist informatico
Presentación sist informaticoPresentación sist informatico
Presentación sist informatico
 
Un mundo interconectado maria casares parte i
Un mundo interconectado maria casares parte iUn mundo interconectado maria casares parte i
Un mundo interconectado maria casares parte i
 
Jose luisverez
Jose luisverezJose luisverez
Jose luisverez
 
Ordenador22
Ordenador22Ordenador22
Ordenador22
 
O ORDENADOR
O ORDENADORO ORDENADOR
O ORDENADOR
 
Sistema informatico
Sistema informaticoSistema informatico
Sistema informatico
 
Sistema Infprmático
Sistema InfprmáticoSistema Infprmático
Sistema Infprmático
 
"Software Libre e tpdh" Fran Tsao
"Software Libre e tpdh" Fran Tsao"Software Libre e tpdh" Fran Tsao
"Software Libre e tpdh" Fran Tsao
 
Sistema informático
Sistema informáticoSistema informático
Sistema informático
 
Introdución á Robótica en Primaria.
Introdución á Robótica en Primaria.Introdución á Robótica en Primaria.
Introdución á Robótica en Primaria.
 
Software libre secundaria
Software libre secundariaSoftware libre secundaria
Software libre secundaria
 
Sistema informático nerea
Sistema informático nereaSistema informático nerea
Sistema informático nerea
 
Sistema informático david_carlota
Sistema informático david_carlotaSistema informático david_carlota
Sistema informático david_carlota
 
Gnu linux1
Gnu linux1Gnu linux1
Gnu linux1
 
Sistema informático TIC
Sistema informático TICSistema informático TIC
Sistema informático TIC
 
Presentaciones noelia sánchez blanco
Presentaciones   noelia sánchez blancoPresentaciones   noelia sánchez blanco
Presentaciones noelia sánchez blanco
 
Ordenador
OrdenadorOrdenador
Ordenador
 
Ordenador
OrdenadorOrdenador
Ordenador
 
Informatica lais
Informatica laisInformatica lais
Informatica lais
 

Más de Manuel Caeiro Rodríguez

Recursos Educativos Abiertos. Desarrollo y uso de planes de actividades y rec...
Recursos Educativos Abiertos. Desarrollo y uso de planes de actividades y rec...Recursos Educativos Abiertos. Desarrollo y uso de planes de actividades y rec...
Recursos Educativos Abiertos. Desarrollo y uso de planes de actividades y rec...Manuel Caeiro Rodríguez
 
Presentación sobre licencias Creative Commons en Edu-AREA
Presentación sobre licencias Creative Commons en Edu-AREAPresentación sobre licencias Creative Commons en Edu-AREA
Presentación sobre licencias Creative Commons en Edu-AREAManuel Caeiro Rodríguez
 
Extendiendo el concepto de REA para promover la Innovación en Edu-AREA
Extendiendo el concepto de REA para promover la Innovación en Edu-AREAExtendiendo el concepto de REA para promover la Innovación en Edu-AREA
Extendiendo el concepto de REA para promover la Innovación en Edu-AREAManuel Caeiro Rodríguez
 
Breve introducción á aprendizaxe autorregulada
Breve introducción á aprendizaxe autorreguladaBreve introducción á aprendizaxe autorregulada
Breve introducción á aprendizaxe autorreguladaManuel Caeiro Rodríguez
 
Workshop Edu-AREA no ISEP (Porto) Sessão 2
Workshop Edu-AREA no ISEP (Porto) Sessão 2Workshop Edu-AREA no ISEP (Porto) Sessão 2
Workshop Edu-AREA no ISEP (Porto) Sessão 2Manuel Caeiro Rodríguez
 
Workshop Edu-AREA no Colégio Internato dos Carvalhos - Vila Nova de Gaia (Por...
Workshop Edu-AREA no Colégio Internato dos Carvalhos - Vila Nova de Gaia (Por...Workshop Edu-AREA no Colégio Internato dos Carvalhos - Vila Nova de Gaia (Por...
Workshop Edu-AREA no Colégio Internato dos Carvalhos - Vila Nova de Gaia (Por...Manuel Caeiro Rodríguez
 
Presentación TELspain: ATENEA-I, In2it, TELGalicia y EDU-AREA ... learning a...
Presentación TELspain: ATENEA-I, In2it, TELGalicia y EDU-AREA ... learning a...Presentación TELspain: ATENEA-I, In2it, TELGalicia y EDU-AREA ... learning a...
Presentación TELspain: ATENEA-I, In2it, TELGalicia y EDU-AREA ... learning a...Manuel Caeiro Rodríguez
 
Presentación Edu-AREA en TELGalicia Outubro 2014
Presentación Edu-AREA en TELGalicia Outubro 2014Presentación Edu-AREA en TELGalicia Outubro 2014
Presentación Edu-AREA en TELGalicia Outubro 2014Manuel Caeiro Rodríguez
 
TELGalicia 2a edición 2014-2015 Obxectivos e Propostas
TELGalicia 2a edición 2014-2015 Obxectivos e PropostasTELGalicia 2a edición 2014-2015 Obxectivos e Propostas
TELGalicia 2a edición 2014-2015 Obxectivos e PropostasManuel Caeiro Rodríguez
 
Edu-AREA in Interacción (Tenerife, 12 september 2014)
Edu-AREA in Interacción (Tenerife, 12 september 2014)Edu-AREA in Interacción (Tenerife, 12 september 2014)
Edu-AREA in Interacción (Tenerife, 12 september 2014)Manuel Caeiro Rodríguez
 
Presentación Edu-AREA en CINAIC 2013 (6 de noviembre)
Presentación Edu-AREA en CINAIC 2013 (6 de noviembre)Presentación Edu-AREA en CINAIC 2013 (6 de noviembre)
Presentación Edu-AREA en CINAIC 2013 (6 de noviembre)Manuel Caeiro Rodríguez
 

Más de Manuel Caeiro Rodríguez (20)

Rea uvigo-sesion-4
Rea uvigo-sesion-4Rea uvigo-sesion-4
Rea uvigo-sesion-4
 
Rea uvigo-sesion-3
Rea uvigo-sesion-3Rea uvigo-sesion-3
Rea uvigo-sesion-3
 
Sesión 2 Cursos REA Vigo
Sesión 2 Cursos REA VigoSesión 2 Cursos REA Vigo
Sesión 2 Cursos REA Vigo
 
Curso REA na UVigo - sesión 1
Curso REA na UVigo - sesión 1Curso REA na UVigo - sesión 1
Curso REA na UVigo - sesión 1
 
Recursos Educativos Abiertos. Desarrollo y uso de planes de actividades y rec...
Recursos Educativos Abiertos. Desarrollo y uso de planes de actividades y rec...Recursos Educativos Abiertos. Desarrollo y uso de planes de actividades y rec...
Recursos Educativos Abiertos. Desarrollo y uso de planes de actividades y rec...
 
Edu area-wcseit
Edu area-wcseitEdu area-wcseit
Edu area-wcseit
 
Edu area-obradoiro
Edu area-obradoiroEdu area-obradoiro
Edu area-obradoiro
 
Presentación sobre licencias Creative Commons en Edu-AREA
Presentación sobre licencias Creative Commons en Edu-AREAPresentación sobre licencias Creative Commons en Edu-AREA
Presentación sobre licencias Creative Commons en Edu-AREA
 
Extendiendo el concepto de REA para promover la Innovación en Edu-AREA
Extendiendo el concepto de REA para promover la Innovación en Edu-AREAExtendiendo el concepto de REA para promover la Innovación en Edu-AREA
Extendiendo el concepto de REA para promover la Innovación en Edu-AREA
 
Obradoiro APETEGA
Obradoiro APETEGAObradoiro APETEGA
Obradoiro APETEGA
 
Breve introducción á aprendizaxe autorregulada
Breve introducción á aprendizaxe autorreguladaBreve introducción á aprendizaxe autorregulada
Breve introducción á aprendizaxe autorregulada
 
Workshop Edu-AREA no ISEP (Porto) Sessão 2
Workshop Edu-AREA no ISEP (Porto) Sessão 2Workshop Edu-AREA no ISEP (Porto) Sessão 2
Workshop Edu-AREA no ISEP (Porto) Sessão 2
 
Workshop Edu-AREA no Colégio Internato dos Carvalhos - Vila Nova de Gaia (Por...
Workshop Edu-AREA no Colégio Internato dos Carvalhos - Vila Nova de Gaia (Por...Workshop Edu-AREA no Colégio Internato dos Carvalhos - Vila Nova de Gaia (Por...
Workshop Edu-AREA no Colégio Internato dos Carvalhos - Vila Nova de Gaia (Por...
 
Edu area-iacobus-2
Edu area-iacobus-2Edu area-iacobus-2
Edu area-iacobus-2
 
Edu area-iacobus-1
Edu area-iacobus-1Edu area-iacobus-1
Edu area-iacobus-1
 
Presentación TELspain: ATENEA-I, In2it, TELGalicia y EDU-AREA ... learning a...
Presentación TELspain: ATENEA-I, In2it, TELGalicia y EDU-AREA ... learning a...Presentación TELspain: ATENEA-I, In2it, TELGalicia y EDU-AREA ... learning a...
Presentación TELspain: ATENEA-I, In2it, TELGalicia y EDU-AREA ... learning a...
 
Presentación Edu-AREA en TELGalicia Outubro 2014
Presentación Edu-AREA en TELGalicia Outubro 2014Presentación Edu-AREA en TELGalicia Outubro 2014
Presentación Edu-AREA en TELGalicia Outubro 2014
 
TELGalicia 2a edición 2014-2015 Obxectivos e Propostas
TELGalicia 2a edición 2014-2015 Obxectivos e PropostasTELGalicia 2a edición 2014-2015 Obxectivos e Propostas
TELGalicia 2a edición 2014-2015 Obxectivos e Propostas
 
Edu-AREA in Interacción (Tenerife, 12 september 2014)
Edu-AREA in Interacción (Tenerife, 12 september 2014)Edu-AREA in Interacción (Tenerife, 12 september 2014)
Edu-AREA in Interacción (Tenerife, 12 september 2014)
 
Presentación Edu-AREA en CINAIC 2013 (6 de noviembre)
Presentación Edu-AREA en CINAIC 2013 (6 de noviembre)Presentación Edu-AREA en CINAIC 2013 (6 de noviembre)
Presentación Edu-AREA en CINAIC 2013 (6 de noviembre)
 

Último

a cuarta onda traballo sobre o libro.pdf
a cuarta onda traballo sobre o libro.pdfa cuarta onda traballo sobre o libro.pdf
a cuarta onda traballo sobre o libro.pdfRemoeaLinguaLinguaGa
 
Rosalia de Castro. traballo sobre a memoria da choivapdf
Rosalia de Castro. traballo sobre a memoria da choivapdfRosalia de Castro. traballo sobre a memoria da choivapdf
Rosalia de Castro. traballo sobre a memoria da choivapdfRemoeaLinguaLinguaGa
 
IZAN O DA SACA de Xabier Quiroga_traballo de análise.pdf
IZAN O DA SACA de Xabier Quiroga_traballo de análise.pdfIZAN O DA SACA de Xabier Quiroga_traballo de análise.pdf
IZAN O DA SACA de Xabier Quiroga_traballo de análise.pdfRemoeaLinguaLinguaGa
 
Traballo Ruido,Relatos de Guerra por Daniel Carcamo Avalo..pdf
Traballo Ruido,Relatos de Guerra por Daniel Carcamo Avalo..pdfTraballo Ruido,Relatos de Guerra por Daniel Carcamo Avalo..pdf
Traballo Ruido,Relatos de Guerra por Daniel Carcamo Avalo..pdfRemoeaLinguaLinguaGa
 
Resistencia (Unha historia tenra e dramática que non te defraudará (1).pdf
Resistencia (Unha historia tenra e dramática que non te defraudará (1).pdfResistencia (Unha historia tenra e dramática que non te defraudará (1).pdf
Resistencia (Unha historia tenra e dramática que non te defraudará (1).pdfRemoeaLinguaLinguaGa
 
GUIÓN DA XIMCANA CAIÓN SOLUCIONARIO.docx
GUIÓN DA XIMCANA CAIÓN SOLUCIONARIO.docxGUIÓN DA XIMCANA CAIÓN SOLUCIONARIO.docx
GUIÓN DA XIMCANA CAIÓN SOLUCIONARIO.docxAgrela Elvixeo
 
Revista Chío Maio 2024, n-30 artigo de A G M.pdf
Revista Chío Maio 2024, n-30 artigo de A G M.pdfRevista Chío Maio 2024, n-30 artigo de A G M.pdf
Revista Chío Maio 2024, n-30 artigo de A G M.pdfAntonio Gregorio Montes
 
Non penses nun elefante rosa antía yáñez.pdf
Non penses nun elefante rosa antía yáñez.pdfNon penses nun elefante rosa antía yáñez.pdf
Non penses nun elefante rosa antía yáñez.pdfRemoeaLinguaLinguaGa
 
O Hobbit.pdf_20240504_162323_0000.pdf recensión
O Hobbit.pdf_20240504_162323_0000.pdf recensiónO Hobbit.pdf_20240504_162323_0000.pdf recensión
O Hobbit.pdf_20240504_162323_0000.pdf recensiónRemoeaLinguaLinguaGa
 
Como atopar informacion de confianza na rede
Como atopar informacion de confianza na redeComo atopar informacion de confianza na rede
Como atopar informacion de confianza na redeEduNoia1
 
A memoria da choiva - Uxía Iglesias (1).pdf
A memoria da choiva - Uxía Iglesias (1).pdfA memoria da choiva - Uxía Iglesias (1).pdf
A memoria da choiva - Uxía Iglesias (1).pdfRemoeaLinguaLinguaGa
 

Último (12)

a cuarta onda traballo sobre o libro.pdf
a cuarta onda traballo sobre o libro.pdfa cuarta onda traballo sobre o libro.pdf
a cuarta onda traballo sobre o libro.pdf
 
Mobilidade de alumnado a Polonia Erasmus+
Mobilidade de alumnado a Polonia Erasmus+Mobilidade de alumnado a Polonia Erasmus+
Mobilidade de alumnado a Polonia Erasmus+
 
Rosalia de Castro. traballo sobre a memoria da choivapdf
Rosalia de Castro. traballo sobre a memoria da choivapdfRosalia de Castro. traballo sobre a memoria da choivapdf
Rosalia de Castro. traballo sobre a memoria da choivapdf
 
IZAN O DA SACA de Xabier Quiroga_traballo de análise.pdf
IZAN O DA SACA de Xabier Quiroga_traballo de análise.pdfIZAN O DA SACA de Xabier Quiroga_traballo de análise.pdf
IZAN O DA SACA de Xabier Quiroga_traballo de análise.pdf
 
Traballo Ruido,Relatos de Guerra por Daniel Carcamo Avalo..pdf
Traballo Ruido,Relatos de Guerra por Daniel Carcamo Avalo..pdfTraballo Ruido,Relatos de Guerra por Daniel Carcamo Avalo..pdf
Traballo Ruido,Relatos de Guerra por Daniel Carcamo Avalo..pdf
 
Resistencia (Unha historia tenra e dramática que non te defraudará (1).pdf
Resistencia (Unha historia tenra e dramática que non te defraudará (1).pdfResistencia (Unha historia tenra e dramática que non te defraudará (1).pdf
Resistencia (Unha historia tenra e dramática que non te defraudará (1).pdf
 
GUIÓN DA XIMCANA CAIÓN SOLUCIONARIO.docx
GUIÓN DA XIMCANA CAIÓN SOLUCIONARIO.docxGUIÓN DA XIMCANA CAIÓN SOLUCIONARIO.docx
GUIÓN DA XIMCANA CAIÓN SOLUCIONARIO.docx
 
Revista Chío Maio 2024, n-30 artigo de A G M.pdf
Revista Chío Maio 2024, n-30 artigo de A G M.pdfRevista Chío Maio 2024, n-30 artigo de A G M.pdf
Revista Chío Maio 2024, n-30 artigo de A G M.pdf
 
Non penses nun elefante rosa antía yáñez.pdf
Non penses nun elefante rosa antía yáñez.pdfNon penses nun elefante rosa antía yáñez.pdf
Non penses nun elefante rosa antía yáñez.pdf
 
O Hobbit.pdf_20240504_162323_0000.pdf recensión
O Hobbit.pdf_20240504_162323_0000.pdf recensiónO Hobbit.pdf_20240504_162323_0000.pdf recensión
O Hobbit.pdf_20240504_162323_0000.pdf recensión
 
Como atopar informacion de confianza na rede
Como atopar informacion de confianza na redeComo atopar informacion de confianza na rede
Como atopar informacion de confianza na rede
 
A memoria da choiva - Uxía Iglesias (1).pdf
A memoria da choiva - Uxía Iglesias (1).pdfA memoria da choiva - Uxía Iglesias (1).pdf
A memoria da choiva - Uxía Iglesias (1).pdf
 

A ciencia da programación de ordenadores (tamén en galego)

  • 1. A Ciencia da Programación de Ordenadores (TAMÉN EN GALEGO) Manuel Caeiro Rodríguez 5 de novembro de 2014
  • 2. Que é un ordenador?
  • 4. Que hai nun ordenador?  Hardware (cousas que se poden tocar)  Dispositivos electrónicos  Circuitos impresos  Cables
  • 5. Que hai nun ordenador?  Software (non se pode tocar)  Programas  Datos  Bits: ceros e uns  Cargas eléctricas, correntes e outras propiedades físicas que poden estar en dous estados (binarios, dixitais)  As agrupacións de ceros e uns (bytes) son as que realmente almacenan programas e datos.
  • 6. Almacenamento de datos  1889: Herman Holleritz, desenvolveu as tarxetas perforadas para gardar datos (censo dos EEUU).  Os datos (e programas) poden ser codificados como buracos nunha tarxeta.
  • 7. A máquina de Turing  1936: máquina imaxinaria  Dispositivo que manipula símbolos sobre unha cinta de acordo a unha táboa de regras.  A pesar da súa simplicidade, pode ser adaptada para simular a lóxica de calquera ordenador actual  A diferenza marcaa a Lei de Moore http://gl.wikipedia.org/wiki/Alan_Turing
  • 8. Arquitectura de Von Neumann  1945: Modelo teórico que describe a estructura básica dos ordenadores actuais Concepto de programa almacenado UCP e zona de almacenamento separados Definiu o bit “Binary digit” http://gl.wikipedia.org/wiki/John_von_Neumann
  • 9. Que fai un ordenador?
  • 10. Que fai un ordenador?  Ollo, os ordenadores só executan os programas ... Licenza CC-BY-NC-ND 3.0 de csumplugged.org
  • 12. Como se programa? 1 2 3 Traducir Interpretar Ensamblar Ensamblar Compilar Linguaxe máquina Linguaxe ensambladora Linguaxe de alto nivel (3ª generación)
  • 14. Por que hai varias linguaxes de ordenador?  O que se pode facer nun ordenador ven determinado pola linguaxe máquina  O que cambia unha linguaxe de programación é a forma en que nós (as persoas) nos podemos comunicar cos ordenadores e con outras persoas
  • 15. Linguaxes de Programación máis Relevantes  1957-1959:  FORTRAN (Formula Translation)  LISP (List Processor)  COBOL (Common Business-Oriented Language)  Son considerados as linguaxes máis antigas pero ainda se usan (sistemas legados).  Caixeiros automáticos  Tarxetas de crédito  Curiosidade: Terminator ve COBOL no seu visor
  • 16. Linguaxes de Programación máis Relevantes  1970: “Pascal”  Alto nivel  En honra ao matemático/físico Blaise Pascal, que desenvolvera a Pascaline  Ensino de programación estructurada.  Creador: Niklaus Wirth  Usado para programar Skype
  • 17. Linguaxes de Programación máis Relevantes  1972 “C”  Linguaxe moi utilizado, de propósito xeral. Moitas outras linguaxes derivadas: C++, C#, Java, JavaScript, Perl, PHP e Python.  Creador: Dennis Ritchie  Usado para servidores WWW
  • 18. Linguaxes de Programación máis Relevantes  1983 “C++”  “C Con Clases” ++ é o operador incremento  Extensión de C orientada a obxectos  Creador: Bjarne Stroustrup  Usado para programar navegadores web
  • 19. Linguaxes de Programación máis Relevantes  1980 “Ada”  En honra a “Ada (Augusta Byron) Lovelace”  1843: fixo primeiro algoritmo para a máquina analítica deseñada por Charle Babbage.  Ada desenvolveuse como un encargo do DoD US http://www.lavozdegalicia.es/noticia/sociedad/2012/12/10/ada-lovelace- implicacion-maquina-analitica-babbage/ 00031355146716765243152.http://www.computerhistory.org/babbage/ htm
  • 20. Linguaxes de Programación máis Relevantes  1991 “Python”  Por honra aos comediantes “Monty Python”  Creado para permitir distintos estilos de programación e ser divertido.  Creador: Guido Van Rossum  Usado para programar  Google  Yahoo!  Spotify
  • 21. Linguaxes de Programación máis Relevantes  1993 “Ruby”  Por ser a pedra de nacemento dun dos colaboradores do creador  Deseñado para ser moi productivo e ao mesmo tempo divertido.  Creador: Yukihiro Matsumoto  Usado para programar  Twitter  Groupon
  • 22. Linguaxes de Programación máis Relevantes  1995 “Java”  Pola cantidade de café que tomaron os seus creadores mentres traballaban nel  Deseñado para ser utilizado en aparellos de electrónica de consumo.  Creador: James Gosling  Usado para programar  Android apps
  • 23. “Hola Mundo” na historia das linguaxes de programación COBOL Pascal C Phyton Ruby
  • 24. Índice TIOBE  Un indicador da popularidade das linguaxes de programación, baseado en uso por parte de programadores, cursos e empresas
  • 25. Cales son as características dun bo programa?  Que funcione!
  • 26. Grandes desastres software  1962: Cohete Mariner 1 (18,5 M. $). Fallo no sistema de guía por un “-”  1983: (Casi) III Guerra Mundial. O sistema de aviso da Unión Soviética detectou un lanzamento falso.  1985: Therac-25. Mortes por máquina médica radiación en Canadá.  1990: AT&T comunicacións de teléfono. 60.000 usuarios sen servizo. Erro na especificación de protocolos.  1994: Procesadores Pentium, cometen erros matemáticos.  1996: Ariane-5. Estoupa no aire. Problema: conversión 64 bits a 16 bits.  1998: Mars Climate Orbiter da NASA. (327,6 M. $). O aparello estaba orientado nun ángulo incorrecto. Problema: utilización de diferentes unidades de medida (libras-forza por segundos vs. Newtons por segundo).  2000: Erro do milenio. Asumiuse que o software só funcionaría para os anos que comenzasen con 19. Polo tanto, o 1 de xaneiro de 2000 sería o 1 de xaneiro de 1900.
  • 27. Cales son as características dun bo programa?  Que funcione ben para o usuario!
  • 28. Cales son as características dun bo programa?  Que se entenda!  Facilite a comunidación entre as persoas Malos Exemplos Código ofuscado Código espagueti (goto) #include <time.h> #define ch(x) "/|"[sgn(x)+1] #define sgn(x) (x>0?1:x?-1:0) main(){long a=0,b=0,c=0,d=0,i=0,j=0;char s[21][40] ;memset(s,' ',0x348);while(j++<0x15)s[j][-1]='0'; srand(time(NULL));while(++i<<15){switch(rand()%7){ case 0:c&&(c-=sgn(c)*(rand()%(2*c))); case 1:c--,c^=-~-~-~-~-~-~-~-8;break; case 2:d=18-~!c,c=-sgn(a)+d>>3;break; case 3:c=a=(c>0?1:-1)*(d=b=18);break; case 4:c=a=sgn(a)*(d=b*=7.0/9);break; case 5:sgn(c)*c>2&&(c-=3*sgn(c),d--); }s[d][19+c]=ch(c);}while(i&21^21)puts(s[31&i++]);}
  • 29. O Software aberto  Comunidades abertas e libres.  Dereitos do Software libre (Richard Stallman) do GNU Project:  Para executar o software como queiras.  Para estudar o software e cambialo (acceso ao código fonte)  Para redistribuir copias.  Para distribuir copias das modificacións. http://gl.wikipedia.org/wiki/Richard_Stallman
  • 30. Sitios importantes  Stack overflow.  É un sitio web no con preguntas e respostas sobre cuestións relacionadas coa programación de ordenadores.  É a mensaxe de erro máis típica e menos explicativa en C
  • 31. Sitios importantes  Git hub. É un sitio no que se poden gardar proxectos software e manter un control de versións.  Filosofía aberta
  • 32. Queres programar?  2007: “Scratch”  Plantexado para que programen os nenos  Creador: Mitchel Resnick (MIT Media Lab)  Dispoñible en Galego
  • 35. Programar e máis en Galego  Concurso de Scratch http://aprendoprogramando.cpetig.org/  Código Octupus http://www.tecnoloxia.org/codigooctopus/  A traducir ao galego http://www.trasno.net/  “Programación para Rapaces” en Edu-AREA (Beta) http://193.146.210.92:3001/gl/boards/1157

Notas del editor

  1. Darlle as grazas a Valentina Fornoso pola invitación e a Román. Presentarme. Esta charla vai sobre a ciencia dos ordenadores, en particular sobre a programación, que é un tema moi técnico, pero que tamén está moi relacionada coas linguas, xa que cando programamos o que tentamos e expresar o que queremos que un ordenador faga nunha linguaxe que poida entender. Internamente o ordenador fala nunha linguaxe propia e nos falamos na nosa linguaxe propia tamén, o galego. A linguaxe de programación é unha linguaxe intermedia entre nos e o ordenador. Os programas de ordenadores son textos con instruccións que lle pasamos ao ordenador para que as faga. Hai centos de linguaxes de progrmación, pero todos eles consiste de instruccións claras e non ambigüas dirixidas a dispositivos que non entenden o significado do que se lles di.
  2. Un ordenador é unha máquina programable. As dúas carácterísticas principais dun ordenador son: Responde a un conxunto de instruccións específicas dunha maneira determinada Executa programas, conxuntos de instruccións.
  3. Os ordenadores aos que nos soemos referir son os sistemas anteriores, nos que vemos un teclado e unha pantalla na que se amosa información, máis hai ordenadores en moitos outros dispositivos, cada vez en máis, que nos arrodean na nosa vida cotiá. Para que funcionen estes dispositivos teñen que ter programas e esta charla vai dirixida a explicar que son eses programas e como se poden desenvolver. Pero, qué é realmente un ordenador? Por que se caracterizan estos sistemas? E que fan? E como se consigue que o fagan?
  4. Hai outros tipos de ordenadores, mecánicos ou electro-mecánicos, ou cuánticos.
  5. Nun DVD a información gardase como posibles reflexos. Se se reflexa a luz un 1 e se non un 0.
  6. A idea tomouna dos revisores dos trens, que facían buracos nos billetes para identificar ás persoas. Dende a invención da programación ata mediados dos 80, moitos dos programas facíanse a través de tarxetas perforadas.
  7. O Premio máis relevante no mundo da informática é o premio Alan Turing.
  8. Os ordenadores actuais seguen o modelo de von Neumann.
  9. Un programa de ordenador é un conxunto de isntruccións paso a paso que lle indican ao ordenador como facer unha tarefa. A imaxe ten licenza CC-BY-NC-ND 3.0 e é de csumplugged.org
  10. Un programa de ordenador é un conxunto de isntruccións paso a paso que lle indican ao ordenador como facer unha tarefa. A imaxe ten licenza CC-BY-NC-ND 3.0 e é de csumplugged.org
  11. Escribindo ceros e uns non. Matrix, ceros e uns
  12. A nivel de linguaxe máquina, representacións de cifras decimais e enteiras A nivel de linguaxe ensambladora, CISC vs. RISC
  13. http://www.science.uva.nl/research/amstel/dws/masters/index.php?page_id=1264 Falar dos paradigmas de programación.
  14. Se todos estes son ordenadores … que é realmente un ordenador.
  15. Fonte: http://www.epocalc.net/pages/mes_timeline/the-history-of-programming-languages.html Linguaxes de alto nivel creados para a programación científica, matemática e empresarial
  16. 1642. Calculadora mecánica que suma e resta. Sobreviven 8.
  17. Basado nunha linguaxe anterior chamada “B”
  18. Adobe Google Chrome Mozilla Firefox Microsoft Internet Explorer
  19. Traballou na máquina calculadora mecánica de Charles Babbage, chamada máquina analítica. Primeira proposta de ordenador de propósito xeral. Diseñouno, pero no puido construir. En Londres no 2002, 153 anos despois de tela deseñada, construirona en Londres, pesa 5 toneladas. No 2008 fixeron outra en california. Fixo o primeiro algoritmo destinado a ser procesado por unha máquina. En linguaxe similar a ensamblador (Turing completo con bucles e condicionais) Non se puido construir por que se temía que fora utilizada para fins bélicos. A máquina debía funcionar con un motor a vapor e tería 30 metros de longo por 10 de ancho. Entrada de datos con tarxetas perforadas.
  20. Os tutoriais, exemplos de código e as instruccións soen conter referencias aos Monty Python.
  21. Os tutoriais, exemplos de código e as instruccións soen conter referencias aos Monty Python.
  22. 1642. Calculadora mecánica que suma e resta. Sobreviven 8.
  23. Eu son profesor de programació
  24. http://www.devtopics.com/20-famous-software-disasters/ http://www.computerworld.com/article/2515483/enterprise-applications/epic-failures--11-infamous-software-bugs.html 1. Fallo nunha fórmula, no que se escenceron de poñer un guión ou signo menos.
  25. Eu son profesor de programació
  26. O Código tamén se le, como a literatura. Por iso quizáis a maioría das linguaxes de programación son en inglés.
  27. Se non sabes algo de programación e o buscas nun navegador (Google) probablemente che devolva páxinas deste sistema.
  28. Se non sabes algo de programación e o buscas nun navegador (Google) probablemente che devolva páxinas deste sistema.
  29. Os tutoriais, exemplos de código e as instruccións soen conter referencias aos Monty Python.
  30. Os tutoriais, exemplos de código e as instruccións soen conter referencias aos Monty Python.
  31. Os tutoriais, exemplos de código e as instruccións soen conter referencias aos Monty Python.
  32. A habilidade para programar non so trata sobre o desenvolvemento de programas de ordenador, senón que tamen ensina a pensar e a resolver problemas. A programación pode ser ademais unha actividade moi creativa na que desnevolver contidos multimedia, música e outros elementos para darlle renda solta á imaxinación. Hai moitas disciplinas e competencias que se poden traballar a través da programación, entre outras: Matemáticas: lóxica, xeometría, álxebra, estatística, etc. Música Física Robótica Comunicación: programación en parella, comunicación, etc.