You are on page 1of 5

UNIVERSIDADSIMNBOLVAR

VicerrectoradoAcadmico

1.Departamento:COMPUTACINYTECNOLOGADELAINFORMACIN

2.Asignatura:ProgramadeAlgoritmosyEstructurasI
3.Cdigodelaasignatura:CI2611
No.deunidadescrdito:3
No.dehorassemanales:Teora3Prctica1Laboratorio3
4.Fechadeentradaenvigenciadeesteprograma:ApartirdeEnero2005

5. OBJETIVOGENERAL:
IntrduccinalaresolucinsistemticadeproblemasmediantealgoritmosyalosprincipiosbsicosdelaProgramacin.
6. OBJETIVOSESPECFICOS:
Alfinlizarelcursoelestudiantedeberconocernocionesbsicassobre:
1) Especificacinformaldeproblemasmedianteprecondicinypostcondicin,utilizandoelclculodepredicadosde
primerorden.
2) ControldeComplejidadenlaresolucinalgortmicadeproblemas.UtlicizacindelDiseoDescenteytcnicasbsicas
deDiseodeAlgoritmos.RefinamientodeDatosydeProrogramas.
3) MetodologaparaladerivacinypruebadelaCorreccindeprogramas.
4) EsquemasdeAlgortmosIterativos.DiseosyconstruccinyProgramasIterativos.
5) NormasbsicasdeEstilodeProgramacin.
6) Elestudiantedebersercapazdeleeryentenderespecificacionesdeprogramas.Entenderlametodologaquedebe
seguirseparadesarrollarprogramascorrectos.
Durantetodoelcursoejercitarnlasnociones:Especificacindeproblemas,Diseosdescentesdeprogramasyderivacin
ycorreccindeprogramas.

Sehacehincapienrefinanciamentosdeprogamas,aunquesdunanocinbsicaderefinaientodedatos(temaprincipal
delcursoCI2616).Lanocipndetipoabstractodedato(verlocomoclase)yobjetodeberserdadadesdeuncomienzo,
ancuandosolotrabajaremosfundanentalmentelostiposbsicos,tipoarregloytipoarchivosecuencial.Sedaralanocin
deencapsulamientoyocultamientodedatosenlenguajesdeporgramacinparaintroducirlanocindeclase
(implementacindetiposabstractos).Lasnocionessobrederivacinycorreccindeprogramasserntratadasms
formalmentealfinaldelcurso.Enlasprimerassemanasdelcursosedesarrollarnlosprogramasdeformamsintuitiva.Se
deberndarvariassolucionesalgortmicasaunmismoproblema,mostrandolasbondadesdeunasrespectoalasotrasy
resaltandoelbuenestilodelaprogramacin.
Esrecomendablequelosestudiantesyahayanvisto,osiganenparalelo,uncursodelgicayteoradeconjuntosconelfin
deestablecerlanotacinmatemticaautilizar.
Enlaprimerapatredelcursosedeterminarnespecificacionesdeproblemasysedesarrollranlosalgortmosdemanera
intuitivaapartirdeestasespecificaciones,haciendonfacisenesquemasdealgortmosydiseodescendente.Dejandoen
clarocadamomentolasaserciones(predicados)querepresentanloscambiosdeestadosdecadaaccin.Lanocinde
mtodos(procedimientosyfunciones)sepresentatempranoenelcurso,demaneradetenerlomastempranoposibleeste
mecanismodecontroldelacomplejidad,ypermitaalequipodellaboratorioelaborarproyectosdondedesdeuncomienzo
sehagausodeestemecanismodeestructuracindeprogramas.

Encuantoalostiposdedatos,estossernlostiposprimitivosdelenguajeJAVA,eltipoarchivosecuencialyltipoarreglo.
Encuantoaconstructores,sedarnenelsiguienteorden:laasignacin,lasecuenciadeacciones,Procedimientosy
Funciones(comomecanismodeabstraccinproceduralenlaaplicacindeldiseodescente,pasodeparmetros:
parmetrosdeentrada,salidayntradasalida.Variableslocales.Llamadasrecursivas,alfinaldelcurso),constructores
condicionales,constructoresinterativos.Enlaprimerapartedelcursoseenfatizarmselbunestilodeprogramacin,en
lasegundapatresepuedeincluircriteriosdeeficienciasetrataenelcursoCI2616.
Enlasltimassemanasdelcursoseharnfasisenderivacinformaldealgoritmosinterativos.Sedesarrollaranalgortmos
utilizandotcnicasdederivacin.Larazondedarderivacinesparamostrarqueexisteunaformasistemticaapra
desarrollareinclusocalcularunprogramacorrectoapartirdeunaespeificacin.
Alfinaldelcursosdaraunabreveintroduccinaldiseodesolucionesrecursivasdeproblemas(utilizandoparaestouna
variedaddeejmplosconcretos).TcnicaDivideyConquistars.Lassolucionesrecursivas,productodeaplicarlatcnic
DivideyConquistaras,deberansermostradasdemaneranatural(eltratamientoformaldecorrecciny/oderivacinde
programas recursivos no es materia de este curso). En la medida posible, se dar una solucin recursiva de ejeplos
mostradosalolargodelcurso.
Paradesarrollarlosalgoritmosenteora,seutilizarelpseudolenguajedellibroKaldewaij.Enlaboratorioseutilizarel
lenguajeJAVA.
Enlaprimerapatredelcursosedeterminarnespecificacionesdeproblemasysedesarrollranlosalgortmosdemanera
intuitivaapartirdeestasespecificaciones,haciendonfacisenesquemasdealgortmosydiseodescendente.Dejandoen
clarocadamomentolasaserciones(predicados)querepresentanloscambiosdeestadosdecadaaccin.Lanocinde
mtodos(procedimientosyfunciones)sepresentatempranoenelcurso,demaneradetenerlomastempranoposibleeste
mecanismodecontroldelacomplejidad,ypermitaalequipodellaboratorioelaborarproyectosdondedesdeuncomienzo
sehagausodeestemecanismodeestructuracindeprogramas.

Enlasprimerassemanasdelcursosedargradualmenteelpseudolenguajequeseutilizaraparadescribirlosalgoritmos:
lasestructurasbsicasdecontrolylostiposdedatosnacesariospararesolverproblemascadavezmscomplejos.Tambin
seprecisarnlaregladealcancedeidentificadoresypasodeparmetros(distinguiendoparmetrosdeentrada,saliday
entradasalida).

7.PROGRAMADESSARROLLADODETEORIA:
1)LgicayTeoradeconjuntos(2clases.Bibliografa:GuayGries):
Breveintroduccindelclculodepredicadosydelateoradeconjuntosyrelacines.
Establecerlaterminologaynotacinautilizaralolargodelcurso.
2)Problemasysusolucinmediantealgoritmos(2clases.Bibliografa:Gua):
Quesunproblema?.Enunciadodeunproblema.Especificacionesinformales:inconsistencia,ambigedad,redundancia.
EspecificacionesFormales.Pasosaseguirparespecificarunproblema(PrecondicinyPostcondicin:determinacindelos
objetosdedatoyderesultadoyrepresentarlasrelacionesentreestosutilizandolasoperacionessobrelosobjetos).Ejemplo
deespecificacin:Dadounnmeronaturalquerepresentaunacantidaddesegundos,sedeseacalcularlarepresentacinde
estosnmerosendas,horas,minutosysegundos.
Pasosaseguirenlaresolucindeunproblemamediantealgoritmos(enunciado,especificacinyprocesodeabstraccin,
diseo,construccindelprograma,tiposdepruebas,derivacin).Conceptode:Proceso/accin(manipulacindeobjetos),
Objetos (identificador, tipo, estado ovalor), Tipos Abstractos de Datos o Clases (slo dar el concepto e ilustrar con
ejejmplos,como porejemploelTipoNmeroComplejo).Elconcepto detipoabstractodedatocomo mecanismode
estructuracindelainformacinquemanipulaunalgoritmoaundeterminadoniveldeabstraccin(losdatoscompuestos
losveremoscomoobjetos,untipoabstractosecorrespondeconlanocindeclase).ElConceptodeAlgoritmo.Dela
especificacinalalgoritmo,Diseodescenteparaconstruirsolucionesalgoritmicasdeproblemas:modelosdemaquinas
abstractas.Ejemploparailustrarenqueconsiteresolverunproblemamedianteunalgoritmo(ladescripcinsehaceen
lenguajenatural).Ejemplo:Setieneuncestoconpapas,sedeseapelarunnmerosuficientedepapasteniendoencuenta
queelcestopuedevaciarseylaspapaspuedenreponerse(sehacenvariasversionesparailustrarlosconceptosdeaccin,
objetos,diagramasdeestados,versionesqueresuelvencompletaoparcialmenteelproblema).Asercionesparadescribir
estados.
Elconceptodemquina,algoruitmoversusprogramas.LenguajesdeProgramacin,Compiladores,Interpretadores:solo
decirqueloslenguajesconstituyenmquinasabstractas,queesnecesariotraducir(porcompiladoresointerpretadores)los
programasenlenguajedealtonivelaprogrmasenlenguajedemquinas.Ejemplos:describirmedianteunalgoritmoel
lenguaje natural, el proceso que resulta de hacer la divisin entera de dos nmeros naturales. Nocin de mquinas
abstractas.Ejemplo:describirelalgoritmodemultiplicacindedosenterosentrminodelasoperacionesdesumayresta.
1.

ContruccindeProgramas(12clases).

3.1. Elpseudolenguaje(2clases,Bibliografa:gua,Kaldewaij):
3.2. Tiposbsicosysusoperaciones,variables.Expresiones.Accionesbooleanos,caracteres.Declaracindevariables.
Expresiones. Acciones elementales: observacin, modificacin (la asignacin). Semntica de la asignacin.
Semnticadelasecuenciadeaccionesmedianteascerciones(S{Q}11{P}y{P}12{R}entonces{Q}11;12{R}).
Especificacin,ddesarrollointuitivoyverificacindealgoritmosutilizandoelpseudolenguaje.Ejemplossencillos
sobresecuenciadeacciones:sumadedosnmeros,intercambiodevaloresdedosvariables.Otrosejemplos:un
nmeronaturalquerepresentaunacantidaddesegundos,sedeseacalcularlarepresentacindeestenmeroendas,
horas,minutosysegundos.

Accionesparametrizadas:Procedimientosyfuncionescomomecanismodeabstraccindeaccionessobreobjetosycontrol
delacomplejidad.PasodeParmetros.Utilizacindeldiseodescente.Ejemplo:Mquinadetrazados.Dibujaruncuadro
conlamquinadetrazados(enesteejemploseilustranlosconceptosdediseodescendentes,accionesparametrizadas).
Dibujodeloscuadrosencajados.Ejemplodesntesis:hacerlasumadedosduracionesdadasendas,horas,minutosy
segundos.
Anlisisdecaos:Introduccindelaaccincompuesta(bloque),accincondicionalyalternativa.Semnticadelasacciones
condicionales entrminosdepreypostcondicin.Accionesalternativasvlidas,condicionalesanidados.Motivacin.
Ejemplo:derivarunalgoritmoquedetermineelvalorabsolutodeunnmero.Ejemplo:Dadostresnmerosordenarlosde
menoramayor.Ejemplo:hallarelmximodetresvalores(darsolucinutilizandocondicional,ysolucinutilizandouna
funcinquedevuelveelmximoentredosnmeros).Ejemplo:hallarlasracesrealesdeunpolinomiodesegundogrado.
Usodetablasdedesicinparaelanlisisdecasos.
3.3.

Procesositerativos.Arreglos.Esquemasdealgoritmos(6clases.Bibliografa:gua,Kaldewaij,Castro):
Procesoiterativo.Anlisisdeprocesositerativos.Elementosdeanlisisiterativo:estadoinicial,estados
intermedios,estadofinal.Nocindevariantedeunprocesoiterativo.Condicinde
continuacindeunprocesoiterativo,accinelementalrepetida,funcindecota.ElconstructorMientras,susennticaen
funcindeprey
postseleccin.Esmuyimportanteresaltarqueelinvariantedebesurgirdemaneranaturalenel
esquemade solucinalgoritmicadelproblema,ynoalainversa,esdecir,hacerelalgoritmoyluego,unavezconstruido,
se
determinalosinvariantesdelasaccionesiterativas.Heursticabsicaparadeterminarinvariantes.Ejemplos
(aplicar
diseodescendenteenloposible):Clculodelasumadelosnprimerostrminosdeunasucecin,Mximo
Comn
Divisor(soluciniterativa,eintroducirlassolucionesrecursivasdemaneranatural),Razenteradeun
nmero.
Clculodepotenciansimadeunnmero(verdistintassolucionesylamaseficienteysusplanteamientos
recursivos).
TipoArreglo:definicin.Verunainstanciadearreglocomounobjeto.Motivacindeuso(permitenpresentarsecuenciasy
accesodirctoaloselementosdeunasecuencia).Ejemplos:sumadeloselementosdeunarreglo,busquedabinaria,
clasificacinrespectoaunpivote(loselementosalpivoteprimero...).
3.4.

Diseodescendente(4clases.Bibliografa:gua,Castro):

Refinamientodedatosyrefinamientodeacciones.Refinamientoddeacciones:seccin7.2.1delagua.Ejemploconla
mquinqdetrazados:Dibujodencirculosconcntricos.Refinamientodedatos:InvariantedeAcoplamiento.Ejemplo:
clculodelasracecscomplejasdeunpolimonio.Otroejemplo:contarcuantasvecesaparecelapalabramuenuna
secuenciadecaracteres.EncapsulamientoyOcultamientodedatos:elcontructortipo(clase).Ventajas.Ejemplo:clculo
delasracescomplejasdeunpolinomioutilizandoelconstructordetipos.

4)
Derivacinformaldeprogramasysolucionesrecursivasdeproblemas(4clases.Bibliogrfa:gua,
Kaldewaij):
Derivacindeprogramasiterativos(usodelasheursticas).Invariante.Tratamientoformaldearreglos.
Solucionesrecursivasdeproblemas.Variosejemplos.Procedimientoyfuncionesrecursivas.
Evaluacin:
Hayqueevitarsobrecargaalestudianteconasignacionesquesesalgandelosobjetivosdelcurso.Enteoraserecomienda
elaborarlosexmenesparciales,unoalamitaddeltrimestreyunoalfinal.Enlaboratorioserecomiendalaevaluacin
continuasemanalenelaula.Losporcentajesdeberanestarentre6070%teora,y3040%laboratorio.

7.BIBLIOGRAFIA
-

OscarMeza.GuadealgoritmosI.2000
JorgeCastro,FelipeCucker,XavierMesseguer,AlbertRubio,LluisSolano,BorjaValles.CursodeProgramacin.
McGrawHill.1993.ISBN8448119592.Captulos1,2y3.
KaldewaijAnne.Programing:thederivationofalgorithms.PrenticHall.1990.ISBN0132041081.Captulos1,
2,3y4.
GriesDavid,GriesPaul.Pragramlive:IntroducingProgramingwithJAVA.Software.
GriesDavid.TheSciencieofPrograming.Springer.Verlag.1981.ISBN0387964800.Cota:QA76.6G747.
Pginas185y310319.
HostmannCay,CornellGary.CoreJAVA2:VolumenIFundamentals.PrenticeHall.1999.Captulos1,2y3.

You might also like