Академический Документы
Профессиональный Документы
Культура Документы
11O
HumbertoCervantesMaceda
Informacindelprofesor
HumbertoCervantesMaceda
T138
www.humbertocervantes.net/cursos
Acercadeustedes
Nombre
Carrera
Quexperienciatienesrespectoaprogramacin?
Quteinteresaenrelacinalaprogramacin?
Sucarrera
Licenciaturaencomputacin
Cienciasdelacomputacin
IngenieradeSoftware
Quson?
Qudiferenciashayentreellas?
Programar
Quesprogramar?
Programar
Quesprogramar?
Elprocesodedisear,escribir,probar,depurary
mantenerelcdigofuentedelosprogramasde
cmputo.Dichocdigofuenteestescritoen
algnlenguajedeprogramacin.Elpropsitode
programarescrearunprogramaqueexhibaalgn
comportamientodeseado.Elprocesodeescribir
cdigofuenterequiereconocimientoendistintos
temasincluyendoeldominioaplicativo,
algoritmosespecializadosylgica.(Wikipedia)
Recordando:Computadora
ArquitecturadeVon Newmann
Representaunmodelo
paradisearcomputadoras
digitales(1945)queesla
basedelascomputadoras
queseusanhoyenda
5Partesprincipales
ALU
Unidaddecontrol
Memoria
Dispositivosdeentraday
salida
Busdedatos
ArquitecturadeVon Newmann
DispositivosdeEntrada
ySalida
Permitenrealizar
comunicacinhaciael
exterior
Recordando:Computadora
Ratn
Procesamiento
Pantalla
Teclado
Informacin
Datos
CD
Unidad Central
Impresora
Escner
Red
Bocinas
ArquitecturadeVon Newmann
ALU
Arithmetic Logic Unit
Realizaoperaciones
aritmticas(suma,resta,
multiplicacin)y
operacioneslgicas(si,
y,o,no)
ArquitecturadeVon Newmann
UnidaddeControl
Obtieneinstruccionesen
lamemoriaprincipal,las
interpretaylasejecuta
ArquitecturadeVon Newmann
Memoria
Almacenamientode
datos
UnidadCentral
Memoria
Microprocesador
Disco duro
Dentrodelaunidadcentralseencuentran
Microprocesador
Almacenamientovoltil(Memoria)
Almacenamientonovoltil(Discosduros)
ArquitecturadeVon Newmann
Busdedatos
Permitequese
comuniquenlosdatos
entrelasdistintaspartes
Programa
Conjuntodeinstruccionesalmacenadasenla
memoriaquevanadirigiralprocesadorpara
realizarunatareaespecifica
Enlamemoria,unprogramasevecomoun
conjuntodeunosyceros
100100011101101010010011001
Losunosycerossonellenguajedelamquina
Elnicoqueentiendeelprocesador
Ejem.0110100110101011=SUMAM,N,P
Algoritmo
Demanerainformal,unalgoritmoescualquierprocedimiento
computacionalbiendefinidoquetomaunoomsvalores
comoentradayproduceunoomsvalorescomosalida.Un
algoritmoesentoncesunasecuenciadepasosque
transformanentradasensalidas
Ejemplo:Ordenamientodenmeros
Unalgoritmoescorrectosiparacadaentradadada,se
detieneyproducelasalidacorrecta.Elalgoritmoresuelve
entonceselproblemacomputacional.
Aplicacindealgoritmos
Rutear datosenlared
Decodificargenomas
Realizartransaccionesseguras
Corregirrumbodeunavin
Controlarprocesosindustriales
Programayalgoritmo
Culesladiferencia?
Programayalgoritmo
Unprogramaeslaimplementacindeunalgoritmo,
esdecirsurepresentacinenalgnlenguajede
programacin
Unaestructuradedatosesunamanerade
almacenaryorganizardatosconelfindefacilitarsu
accesoymodificacin.Noexisteunasolaestructura
dedatosquefuncionebienparatodoslos
propsitos,porello,esimportanteconocerlas
fortalezasylimitacionesdelasmismas.
Representacindeunalgoritmo
Existendistintas
representacionespara
unalgoritmo
Pseudocdigo
Diagramasdeflujosde
datos
Estructurasdedatos
Unaestructuradedatosesunamanerade
almacenaryorganizardatosconelfinde
facilitarsuaccesoymodificacin.Noexiste
unasolaestructuradedatosquefuncione
bienparatodoslospropsitos,porello,es
importanteconocerlasfortalezasy
limitacionesdelasmismas.
SoftwareytiposdeSoftware
Software
Coleccindeprogramasydatosqueproporcionan
instruccionesaunacomputadorasobrequhacerycmo
hacerlo
DistintostiposdeSoftware
Aplicaciones
Sistemasoperativos
Drivers
Herramientasdeprogramacin
Drivers
Softwareentodoslados
Porquprogramamos?
Porquprogramamos?
Engeneral,serealizanprogramaspara
resolverproblemasonecesidadesdeforma
automticamedianteelusodecomputadoras
problema
1011100011
0110010001
1011100011
1111011111
0110010001
1001000111
1111011111
1011100011
0011101110
1001000111
0110010001
1110110111
1011100011
0011101110
1111011111
1110000111
0110010001
1110110111
1001000111
1111011111
1110000111
0011101110
1001000111
1110110111
0011101110
1110000111
1110110111
1110000111
Hayunproblema
Lascomputadorasyloshumanosnohablamos
elmismoidioma...
10100011101010010010
10011001001000010011
01110001101010011011
Lenguajesdeprogramacin
Parapoderprogramarlascomputadoras,seinventaron
lenguajesdealtonivel,esdecir,entendiblesporlos
humanos
Primeroslenguajes
Fortran (1954)
Cobol(1959)
B(1969)
Lenguajescomuneshoyenda
Pascal(1970)
C(1971)
C++(1983)
Java(1995)
C# (2000)
Ejemplodeprograma
Programaqueescribeholamundo!enlapantallaen
lenguajeC
#include <stdio.h>
void main()
{
printf(Hola, mundo !\n);
}
Unprogramaseescribeenuneditor,yseguardaenun
archivo
Compilador
Loslenguajesdealtonivelnosonentendiblesporla
computadora,esnecesariotraducirlosantesdequepuedan
serejecutados
Latraduccinlarealizaunprogramallamadocompilador
#include
<stdio.h>
main()
{
printf(Hola!\n
);
}
Compilador
1011100011
0110010001
1111011111
1001000111
0011101110
1110110111
1110000111
Unavezcompilado,elprogramayapuedeserejecutadopor
lacomputadora
Depurador
Eldepuradoresunprogramaquepermite
ejecutarpasoapasoelprogramaqueestamos
realizandoconelfindepoderencontrar
problemas
Entornosdedesarrollointegrado
Esunprogramaque
incluyevariosotros
programaspararealizar
desarrollodesoftware
Editordecdigofuente
Compilador/interprete
Depurador
Builder
Etc
Elprocesodedessarrollo
Elprocesorepresentaunaseriedeetapasquese
siguenparadesarrollarunaaplicacindesoftware
Entrelasetapasprincipalesseencuentran
Entenderqusequierehacer
Proponerydisearunasolucin
Construccindelasolucin
Probarlasolucin
Entregarlasolucinalcliente
Realizarmantenimiento
Unaanaloga
Unprogramapequeo,ascmounacasapequeapueden
serdiseadosyconstruidosporunasolapersona
Deformaunpoco'artesanal'
Unaanaloga
Unproyectocomplejorequieresinembargo
deunprocesodedesarrolloquepermita
coordinarunnumerograndede
programadores
Torre Mayor
Informacindelcurso
www.humbertocervantes.net