Download - CI2611 Algoritmos
-
UNIVERSIDADSIMNBOLVARVicerrectoradoAcadmico
1.Departamento:COMPUTACINYTECNOLOGADELAINFORMACIN
3.Cdigodelaasignatura:CI2611
No.deunidadescrdito:3
No.dehorassemanales:Teora3Prctica1Laboratorio3
4.Fechadeentradaenvigenciadeesteprograma:ApartirdeEnero2005
2.Asignatura:ProgramadeAlgoritmosyEstructurasI
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,Diseosdescentesdeprogramasyderivacinycorreccindeprogramas.
-
Sehacehincapienrefinanciamentosdeprogamas,aunquesdunanocinbsicaderefinaientodedatos(temaprincipaldelcursoCI2616).Lanocipndetipoabstractodedato(verlocomoclase)yobjetodeberserdadadesdeuncomienzo,ancuandosolotrabajaremosfundanentalmentelostiposbsicos,tipoarregloytipoarchivosecuencial.Sedaralanocindeencapsulamientoyocultamientodedatosenlenguajesdeporgramacinparaintroducirlanocindeclase(implementacindetiposabstractos).Lasnocionessobrederivacinycorreccindeprogramasserntratadasmsformalmentealfinaldelcurso.Enlasprimerassemanasdelcursosedesarrollarnlosprogramasdeformamsintuitiva.Sedeberndarvariassolucionesalgortmicasaunmismoproblema,mostrandolasbondadesdeunasrespectoalasotrasyresaltandoelbuenestilodelaprogramacin.
Esrecomendablequelosestudiantesyahayanvisto,osiganenparalelo,uncursodelgicayteoradeconjuntosconelfindeestablecerlanotacinmatemticaautilizar.
Enlaprimerapatredelcursosedeterminarnespecificacionesdeproblemasysedesarrollranlosalgortmosdemaneraintuitivaapartirdeestasespecificaciones,haciendonfacisenesquemasdealgortmosydiseodescendente.Dejandoenclarocadamomentolasaserciones(predicados)querepresentanloscambiosdeestadosdecadaaccin.Lanocindemtodos(procedimientosyfunciones)sepresentatempranoenelcurso,demaneradetenerlomastempranoposibleestemecanismodecontroldelacomplejidad,ypermitaalequipodellaboratorioelaborarproyectosdondedesdeuncomienzosehagausodeestemecanismodeestructuracindeprogramas.Encuantoalostiposdedatos,estossernlostiposprimitivosdelenguajeJAVA,eltipoarchivosecuencialyltipoarreglo.Encuantoaconstructores,sedarnenelsiguienteorden:laasignacin,lasecuenciadeacciones,ProcedimientosyFunciones(comomecanismodeabstraccinproceduralenlaaplicacindeldiseodescente,pasodeparmetros:parmetrosdeentrada,salidayntradasalida.Variableslocales.Llamadasrecursivas,alfinaldelcurso),constructorescondicionales,constructoresinterativos.Enlaprimerapartedelcursoseenfatizarmselbunestilodeprogramacin,enlasegundapatresepuedeincluircriteriosdeeficienciasetrataenelcursoCI2616.
Enlasltimassemanasdelcursoseharnfasisenderivacinformaldealgoritmosinterativos.Sedesarrollaranalgortmosutilizandotcnicasdederivacin.Larazondedarderivacinesparamostrarqueexisteunaformasistemticaapradesarrollareinclusocalcularunprogramacorrectoapartirdeunaespeificacin.
Alfinaldelcursosdaraunabreveintroduccinaldiseodesolucionesrecursivasdeproblemas(utilizandoparaestounavariedaddeejmplosconcretos).TcnicaDivideyConquistars.Lassolucionesrecursivas,productodeaplicarlatcnicDivideyConquistaras,deberansermostradasdemaneranatural(eltratamientoformaldecorrecciny/oderivacindeprogramas recursivos no es materia de este curso). En la medida posible, se dar una solucin recursiva de ejeplosmostradosalolargodelcurso.
Paradesarrollarlosalgoritmosenteora,seutilizarelpseudolenguajedellibroKaldewaij.EnlaboratorioseutilizarellenguajeJAVA.
Enlaprimerapatredelcursosedeterminarnespecificacionesdeproblemasysedesarrollranlosalgortmosdemaneraintuitivaapartirdeestasespecificaciones,haciendonfacisenesquemasdealgortmosydiseodescendente.Dejandoenclarocadamomentolasaserciones(predicados)querepresentanloscambiosdeestadosdecadaaccin.Lanocindemtodos(procedimientosyfunciones)sepresentatempranoenelcurso,demaneradetenerlomastempranoposibleestemecanismodecontroldelacomplejidad,ypermitaalequipodellaboratorioelaborarproyectosdondedesdeuncomienzosehagausodeestemecanismodeestructuracindeprogramas.
-
Enlasprimerassemanasdelcursosedargradualmenteelpseudolenguajequeseutilizaraparadescribirlosalgoritmos:lasestructurasbsicasdecontrolylostiposdedatosnacesariospararesolverproblemascadavezmscomplejos.Tambinseprecisarnlaregladealcancedeidentificadoresypasodeparmetros(distinguiendoparmetrosdeentrada,salidayentradasalida).
7.PROGRAMADESSARROLLADODETEORIA:
1)LgicayTeoradeconjuntos(2clases.Bibliografa:GuayGries):Breveintroduccindelclculodepredicadosydelateoradeconjuntosyrelacines.Establecerlaterminologaynotacinautilizaralolargodelcurso.
2)Problemasysusolucinmediantealgoritmos(2clases.Bibliografa:Gua):Quesunproblema?.Enunciadodeunproblema.Especificacionesinformales:inconsistencia,ambigedad,redundancia.EspecificacionesFormales.Pasosaseguirparespecificarunproblema(PrecondicinyPostcondicin:determinacindelosobjetosdedatoyderesultadoyrepresentarlasrelacionesentreestosutilizandolasoperacionessobrelosobjetos).Ejemplodeespecificacin:Dadounnmeronaturalquerepresentaunacantidaddesegundos,sedeseacalcularlarepresentacindeestosnmerosendas,horas,minutosysegundos.
Pasosaseguirenlaresolucindeunproblemamediantealgoritmos(enunciado,especificacinyprocesodeabstraccin,diseo,construccindelprograma,tiposdepruebas,derivacin).Conceptode:Proceso/accin(manipulacindeobjetos),Objetos (identificador, tipo, estado ovalor), TiposAbstractos de Datos o Clases (slo dar el concepto e ilustrar conejejmplos, comoporejemploel TipoNmeroComplejo). El concepto detipoabstractodedatocomomecanismodeestructuracindelainformacinquemanipulaunalgoritmoaundeterminadoniveldeabstraccin(losdatoscompuestoslosveremoscomoobjetos,untipoabstractosecorrespondeconlanocindeclase). ElConceptodeAlgoritmo.Delaespecificacin alalgoritmo,Diseodescenteparaconstruirsolucionesalgoritmicasdeproblemas:modelosdemaquinasabstractas.Ejemploparailustrarenqueconsiteresolverunproblemamedianteunalgoritmo(ladescripcinsehaceenlenguajenatural).Ejemplo:Setieneuncestoconpapas,sedeseapelarunnmerosuficientedepapasteniendoencuentaqueelcestopuedevaciarseylaspapaspuedenreponerse(sehacenvariasversionesparailustrarlosconceptosdeaccin,objetos,diagramasdeestados,versionesqueresuelvencompletaoparcialmenteelproblema).Asercionesparadescribirestados.
Elconceptodemquina,algoruitmoversusprogramas.LenguajesdeProgramacin,Compiladores,Interpretadores:solodecirqueloslenguajesconstituyenmquinasabstractas,queesnecesariotraducir(porcompiladoresointerpretadores)losprogramasenlenguajedealtonivelaprogrmasenlenguajedemquinas.Ejemplos:describirmedianteunalgoritmoellenguaje natural, el proceso que resulta de hacer la divisin entera de dos nmeros naturales. Nocin de mquinasabstractas.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.Ejemplossencillossobresecuenciadeacciones:sumadedosnmeros, intercambiodevaloresdedosvariables. Otrosejemplos:unnmeronaturalquerepresentaunacantidaddesegundos,sedeseacalcularlarepresentacindeestenmeroendas,horas,minutosysegundos.
-
Accionesparametrizadas:Procedimientosyfuncionescomomecanismodeabstraccindeaccionessobreobjetosycontroldelacomplejidad.PasodeParmetros.Utilizacindeldiseodescente.Ejemplo:Mquinadetrazados.Dibujaruncuadroconlamquinadetrazados(enesteejemploseilustranlosconceptosdediseodescendentes,accionesparametrizadas).Dibujodeloscuadrosencajados.Ejemplodesntesis:hacerlasumadedosduracionesdadasendas,horas,minutosysegundos.
Anlisisdecaos:Introduccindelaaccincompuesta(bloque),accincondicionalyalternativa.Semnticadelasaccionescondicionales entrminosdepreypostcondicin. Accionesalternativasvlidas, condicionalesanidados. Motivacin.Ejemplo:derivarunalgoritmoquedetermineelvalorabsolutodeunnmero.Ejemplo:Dadostresnmerosordenarlosdemenoramayor.Ejemplo:hallarelmximodetresvalores(darsolucinutilizandocondicional,ysolucinutilizandounafuncinquedevuelveelmximoentredosnmeros).Ejemplo:hallarlasracesrealesdeunpolinomiodesegundogrado.Usodetablasdedesicinparaelanlisisdecasos.
3.3. Procesositerativos.Arreglos.Esquemasdealgoritmos(6clases.Bibliografa:gua,Kaldewaij,Castro):Procesoiterativo.Anlisisdeprocesositerativos.Elementosdeanlisisiterativo:estadoinicial,estados
intermedios,estadofinal.Nocindevariantedeunprocesoiterativo.Condicindecontinuacindeunprocesoiterativo,accinelementalrepetida,funcindecota.ElconstructorMientras,susennticaenfuncindeprey postseleccin.Esmuyimportanteresaltarqueelinvariantedebesurgirdemaneranaturalenelesquemade solucinalgoritmicadelproblema,ynoalainversa,esdecir,hacerelalgoritmoyluego,unavezconstruido,se determinalosinvariantesdelasaccionesiterativas.Heursticabsicaparadeterminarinvariantes.Ejemplos(aplicar diseodescendenteenloposible):Clculodelasumadelosnprimerostrminosdeunasucecin,MximoComn Divisor(soluciniterativa,eintroducirlassolucionesrecursivasdemaneranatural),Razenteradeunnmero. Clculodepotenciansimadeunnmero(verdistintassolucionesylamaseficienteysusplanteamientos
recursivos).
TipoArreglo:definicin.Verunainstanciadearreglocomounobjeto.Motivacindeuso(permitenpresentarsecuenciasyaccesodirctoaloselementosdeunasecuencia).Ejemplos:sumadeloselementosdeunarreglo,busquedabinaria,clasificacinrespectoaunpivote(loselementosalpivoteprimero...).
3.4. Diseodescendente(4clases.Bibliografa:gua,Castro):
Refinamientodedatosyrefinamientodeacciones.Refinamientoddeacciones:seccin7.2.1delagua.Ejemploconlamquinqdetrazados:Dibujodencirculosconcntricos.Refinamientodedatos:InvariantedeAcoplamiento.Ejemplo:clculodelasracecscomplejasdeunpolimonio.Otroejemplo:contarcuantasvecesaparecelapalabramuenunasecuenciadecaracteres.EncapsulamientoyOcultamientodedatos:elcontructortipo(clase).Ventajas.Ejemplo:clculodelasracescomplejasdeunpolinomioutilizandoelconstructordetipos.4) Derivacinformaldeprogramasysolucionesrecursivasdeproblemas(4clases.Bibliogrfa:gua,Kaldewaij):
Derivacindeprogramasiterativos(usodelasheursticas).Invariante.Tratamientoformaldearreglos.
Solucionesrecursivasdeproblemas.Variosejemplos.Procedimientoyfuncionesrecursivas.
Evaluacin:Hayqueevitarsobrecargaalestudianteconasignacionesquesesalgandelosobjetivosdelcurso.Enteoraserecomiendaelaborarlosexmenesparciales,unoalamitaddeltrimestreyunoalfinal.Enlaboratorioserecomiendalaevaluacincontinuasemanalenelaula.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.
UNIVERSIDAD SIMN BOLVARVicerrectorado Acadmico
7. BIBLIOGRAFIA