Prof.Esp.Ing.JoséMaríaSola
UniversidadTecnológicaNacional
FacultadRegionalBuenosAires
DepartamentodeIngenieríaenSistemasdeInformación
K2051
2016
Marzo14,Lunes
Agendaparaestaclase� Bienvenidosasegundoañoyalcurso� Presentacióninicial,conozcámonos
� ElcontextodeSSL� SobrelaCátedraylaAsignatura� Laaprobaciónylaregularización� Bibliografía� GrupoYahoo� GitHub
� Páginadelcurso� SobreelLenguajeC� Primercontactoconelcompilador
� Hello.c
� SobreelcompiladoryelIDE
� TrabajoPráctico#0:“Hello,World!”
� Tareasparalapróximaclase
� Términosdelaclase.
Prof. Esp. Ing. José María Sola 3
Conozcámonos
DocentesdelCurso� ProfesoraCargo
� Esp.Ing.JoséMaríaSola
� Auxiliares� Srta.ElizabethSosa
Prof. Esp. Ing. José María Sola 5
EnlaClaseyHorarios� Primerasfiladebancolibresparaelproyectoryparaotromaterial(sielaulanotieneproyectorintegrado)
� Entrarysalirporpuertatrasera(sielaulalatiene)� Celular,ensilencioovibrador� Horariosdelcurso
� 4horascátedraconintervalode15minutos
� 3horasreloj+intervalode15o20minutos
� 19:45a� Intervalo21:00
� 23:00� Consultaspresenciales,antesydespuésdeclase.
Prof. Esp. Ing. José María Sola 6
AnálisisdelTítulodelaCarrera–IngenieríaenSistemasdeInformación� Ingeniería
� Aplicacióntecnología—cienciaytécnicas—pararesoluciónproblemas
� Construccióndesoluciones� Sistema
� Conjuntodeelementosrelacionadosconobjetivocomún
� Información
� Datosprocesados
� Materiaprimaparatomadedecisiones
� Datovalorsintáctico
� Informaciónvalorsemántico.
� SistemadeInformación
� Sistemamanualoautomáticocon
� personas,máquinasométodos
que
� procesainformación
� recolecta,transmite,almacenadistribuye,presentaymanipula
� informaciónparasususuarios
� entiempoyforma
� Engeneral,lossistemasdeinformacióntienengrandespartesimplementadasconSistemasSoftware
� LaprogramaciónylaconstruccióndeSistemasSoftware.
Prof. Esp. Ing. José María Sola 8
RoldelaMateriaenlasAcAvidadesdelIngenieroenSistemasdeInformación
Organización
SistemadeInformación
Proyecto
Problema
(Necesidad)Desarrollo
Análisis Diseño Implementación
Solución
Prof. Esp. Ing. José María Sola 9
OtrasAsignaturas� AsignaturasAnteriores
� AlgoritmosyEstructurasdeDatos
� MatemáticaDiscreta
� SistemasyOrganizaciones(nocorrelativa)
� AsignaturasParalelas� ParadigmasdeProgramación
� AnálisisdeSistemas
� SistemasOperativos(segundonivel,segúnelplan)
Prof. Esp. Ing. José María Sola 10
� Objetivos
� Identificarproblemasalgorítmicos.
� Conocerelprocesodediseñoeimplementacióndesoftware
� Aplicarlasherramientasfundamentalesrepresentativasdelosprocesos,integrandolasintaxiselementaldeunlenguajedeprogramaciónenellaboratorioasociado
� ContenidosMínimos
� ConceptodeDato
� TiposdeDatosSimples
� TipoAbstractodedatos� EstructurasdeControlBásicas:
secuencial,condicional,cíclica
� EstrategiasdeResolución
� EstructurasdeDatos:registros,arreglosyarchivos
� Abstraccionesconprocedimientosyfunciones
� PasajedeParámetros
� EstructurasdeDatoslineales(Pilas-Colas)
� AlgoritmosdeBúsqueda,RecorridoyOrdenamiento
� ArchivosdeAccesoSecuencialyAleatorio:organizacionesyaccesos.
� ProcesamientoBásico
� Recursividad� NocionesdeComplejidad
Computacional
� NocióndeOrdendeComplejidad.
AlgoritmosyEstructurasdeDatos
Prof. Esp. Ing. José María Sola 11
� Objetivos
� Aplicarmétodosinductivos,
deductivosyrecursivosenlaresolucióndesituaciones
problemáticasydemostracionesmatemáticas
� Comprenderlosconceptosyprocedimientosnecesariospara
resolverrelacionesde
recurrencia
� Aplicarpropiedadesyfuncionesdefinidasenlosnúmerosenterosyenterosnonegativos
� Caracterizardistintasestructurasalgebraicas,
enfatizandolasqueseanfinitas
ylasálgebrasdeBoole
� Aplicarpropiedadesdegrafos,dígrafosyárbolesenlaresolucióndesituaciones
problemáticas
� ContenidosMínimos
� LógicaProporcionalClásicaydePredicadosdePrimerOrden
� TeoríadeNúmeros
� InducciónMatemática
� RelacionesdeRecurrencia� EstructurasAlgebraicasFinitas
yAlgebradeBoole
� Grafos,dígrafosyárboles.
MatemáAcaDiscreta
Prof. Esp. Ing. José María Sola 12
SSLenlaCarrera
Asignatura
Área
CarreraIngenieríaenSistemasdeInformación
Programación
SSL Otras
Otras
Otras
Prof. Esp. Ing. José María Sola 13
ÁreaProgramación� Objetivos
� Formareinformaracercademetodologías,técnicasy
lenguajesdeprogramación,comoherramientasbásicas
paraeldesarrollodesoftwareyelestudiodedisciplinas
quepermitancrearnuevastecnologías
� Asignaturas(640hs)� 1.MatemáticaDiscreta(96hs)
� 2.AlgoritmosyEstructurasdeDatos(160hs)
� 3.SintaxisySemánticadelosLenguajes(128hs)
� 4.ParadigmasdeProgramación(128hs)
� 5.GestióndeDatos(128hs).
Prof. Esp. Ing. José María Sola 14
� MD,AyEdD,SSL
� ParadigmasdeProgramación
� Comprenderlosfundamentos
delosparadigmasdeprogramaciónbásicosqueson
utilizadosporloslenguajesde
programaciónactuales
� Conocerelmodeloformalo
semiformalsubyacentedecadaparadigmaylaformaen
queelmismoesincorporadoenunlenguajede
programaciónconcreto.
� Aplicarlosdiferentesparadigmasenlaresolución
deproblemas
� GestióndeDatos
� Desarrollarlosconceptosdeestructuracióndelosdatosendispositivosdealmacenamiento.
� Describirmetodologíasparaelmodeladodedatos.
� Conocermodelosactualesparalapersistenciadegrandesvolúmenesdedatos.
� Desarrollarlosconceptosrelacionadosconlaconsistencia,integridadyseguridaddelainformación.Aplicartécnicasymétodosparaeltratamientoconcurrentedelosdatos.
ObjeAvosdecadaAsignaturadelÁrea
Prof. Esp. Ing. José María Sola 15
IntegraciónconotrasAsignaturasyConceptosPrincipales� IntegraciónenÁreadeProgramación
� Integraciónvertical� MatemáticaDiscreta
� AlgoritmosyEstructurasdeDatos
� GestióndeDatos
� IntegraciónHorizontal
� ParadigmasdeProgramación
� Integraciónconotrasáreas� Computación
� SistemasdeInformación
� Abstracción(conceptofundamental)
� Separación,dejardeladolosdetallesparaenfocarenloimportante
� OrientaciónaObjetos
� Objeto:entidadconcomportamientoyquemantieneunestado.
Prof. Esp. Ing. José María Sola 16
AnálisisdelNombredelaAsignatura–SintaxisySemánAcadelosLenguajes(deProgramación)� Lenguaje:mediodecomunicación
� LenguajesNaturalesversusLenguajesFormales
� Lenguajedeprogramación:mediodecomunicaciónparadefinircomportamientodeunSistemaSoftware
� Sintaxis:Forma,Estructura
� Reglasdeforma
� ¿Cómoseescribe?
� Semántica:Significado,Sentido
� Reglasdesignificado� ¿Quésignifica?
� Comportamientodelsistemaenfuncióndeloescrito
� ¿Léxico?� Componentesdelasestructurassintácticas
� ¿Pragmática?
� “Bugs”,“Gaps”,Verificación,Validación,Comportamientoesperado.
Prof. Esp. Ing. José María Sola 18
GeneralidadesdeSSLOrdenanza1150/2007� Departamento IngenieríaenSistemasdeInformación� Bloque TecnologíasBásicas� Área Programación� Nivel 2� Horas/semana 4� Horas/Año 128� Correlatividades
� Anteriores� AlgoritmosyEstructurasdeDatos� MatemáticaDiscreta
� Siguientes� Debeestarregularizadaparacursar
� GestióndeDatos(3ro)� Debeestaraprobadaparacursar
� IngenieríaenSoftware(4to)
Prof. Esp. Ing. José María Sola 19
ObjetivosContenidosMínimos
� Conocerloselementospropiosdelasintaxisysemánticadeloslenguajesdeprogramación
� Conocerloslenguajesformalesyautómatas
� Comprenderconceptosyprocedimientosdelasgramáticaslibresdecontextoygramáticasregularesparaespecificarlasintaxisdeloslenguajesdeprogramación
� Utilizardistintostiposdeautómatasydistintostiposdenotacionesgramaticales
� Comprenderelprocesamientodelenguajesyenparticular,elprocesodecompilación
� GramáticayLenguajesFormales
� JerarquíadeChomsky� AutómatasFinitos� ExpresionesRegularesysu
aplicaciónalAnálisisLéxico� GramáticasIndependientes
delContexto� AutómatasPushDownysu
AplicaciónalAnálisisSintáctico� OtrosTiposdeAnalizadores
Sintácticos
� MáquinasTuring� IntroducciónalasSemánticas.
ProgramaSintéAcodeSSLOrdenanza1150/2007
LosTemasdeSSLLéxico,Sintaxis,SemánticayPragmática
• Definición
• Conceptos• Ejemplos
Compilador
• Proceso• Construcción
LenguajesFormales
• Modelos
• LenguajesdeProgramación
ANSIC
• Definición
• Aplicación
Prof. Esp. Ing. José María Sola 21
SSL
LaCátedra� DirectoradeCátedra
� C.C.MartaFerrariProfesoraAsociada(CarreraAcadémica)
� ProfesoresenCarreraAcadémica� Ing.SilvinaOrtega
ProfesoraAdjunta(CarreraAcadémica)� ProfesoresAdjuntos,Interinos
� Lic.RicardoBarca� Ing.EduardoZúñiga� Esp.Ing.JoseMaríaSola� Dr.OscarBruno
� AnterioresProfersores� C.C.JorgeMuchnik
ProfesorTitular(Ordinario)� C.C.AnaMaríaDíazBott
ProfesoraAdjunta(CarreraAcadémica)� C.C.AdrianaAdamoli
ProfesoraAdjuntaInterina(Interino)
Prof. Esp. Ing. José María Sola 22
Aprobación–ExamenFinal� Requisitoparaaprobación
� Regularizaciónyaprobacióndelexamenfinal
� Laregularizaciónvencealoscuatroaños� Examenfinal
� Correlativasaprobadas� AlgoritmosyEstructurasdeDatos
� MatemáticaDiscreta
� Cuatrooportunidades� Elexamenfinalesconceptual
� EjerciciosyAfirmacionessinJustificación
� Lasafirmacionessonsinjustificación
� Losejerciciosnorequierenunaresoluciónextensa
� Seapruebaconnota4� Sedebenresponderporlomenos5puntos
� Porlomenosunejerciciodebeestarbienresuelto
� Conformacióndelanota
� Lasafirmacionesmalrespondidasrestanuno
� Locorrectosumauno
� Lonorespondidonosumaniresta.
Prof. Esp. Ing. José María Sola 25
RequisitosparalaRegularización(i.e.,Firma)� 75%deAsistencia(Bedelía)
� Evaluaciones(Cátedra)� Grupaleseindividuales� TrabajosPrácticos,entregassemanales
� Deaplicaciónoconceptuales
� Dosrecuperatorios,enDicyenFeb
� Notaconceptual
� Evaluacióncontinua� Lasfechasseestablecenduranteelcurso� Findelcurso
� Evaluaciónindividualoral-escrita("coloquio”)
� Conocimientosdelostrabajosprácticos.
Prof. Esp. Ing. José María Sola 26
DinámicadeTrabajo� Indicacióndelecturasyejerciciosobligatorios� Profundizacióndeconceptosenclase� Claseinteractivayparticipativa
� Serecomiendaseguirlaclaseconlabibliografíaytomar
apuntesalapar
� Ejerciciosdeaplicaciónenclase� Consultas
� Duranteclase,yjustoantesdeiniciaryfinalizarlaclase
� Enotroshorarios,atravésdelForoenYahooGroups.
Prof. Esp. Ing. José María Sola 27
Bibliogra[a� Libros
� [K&R1988]� Biblioteca,Fotocopiadora,yLibrerías
� [MUCH2012],tresvolúmenes
� Biblioteca,yLibreríadelCentrodeEstudiantes
� Otrosartículosalolargodelcurso,informadosporel
GrupoYahoo,ypublicadosdesdelapáginadelcurso
� Prioritariosparaprimerapartedelcurso
� Capítulo#1de[K&R1988]
� Volumen#1de[MUCH2012].
Prof. Esp. Ing. José María Sola 28
GrupoYahooUTNFRBASSLh_ps://groups.yahoo.com/group/UTNFRBASSL
Prof. Esp. Ing. José María Sola 29
� Objetivos
� Forodelcurso� Canaldecomunicación
� Materialesdelectura
� Consultas� Enunciados� Anunciosparticularesdel
cursoygenerales
� Antesdecadaclasesedeberevisarsihaynovedadesenelgrupo
� Periododesuscripción� durantelastresprimeras
semanasdelcuatrimestre
� Siyaestáinscriptonoesnecesarioreinscribirse
� Requisitosparasuscripción� UsuarioYahooconnombrey
apellido
� Cuentadee-mail(decualquierdominio)connombreyapellido,asociadaalusuarioYahoo
� Desdelapáginadesuscripción,completarformulariocon� nombreyapellido,
� legajoy
� códigodecurso
� Comunicación
� Elsubject(asuntodelmensaje)debecomenzarconelcódigodecursoydebeserdescriptivo
� Sedebefirmarconnombreyapellido
� NoestánpermitidoslosOff-Topic
� ReglasparaelusodelgrupoYahooenlasecciónFiles(archivos)delpropiogrupo.
GrupoYahooUTNFRBASSLh_ps://groups.yahoo.com/group/UTNFRBASSL
Prof. Esp. Ing. José María Sola 30
� SistemadeControldeVersiones(VCS)
� Gestióndecambiossobreproductoosuconfiguración
� Ejemplos:Git,Mercurial,ySubversion
� Git
� VCSdistribuido,2005porLinusTorvaldsparaelkerneldeLinux
� GitHub
� ServicioqueimplementaGit
� Otrossimilares:Bitbucket,GitLab,Gitorious,CloudForge
� ¿PorquéGitHubenelCurso?
� Tienepepositoriospúblicos,yprivadosparauniversidades
� Es,paramuchos,elprimercontactoconunVCSdistribuido,yconlenguajesdemarcalivianos,comomarkdown
� Esmáseficientequetrabajosimpresos
� Poseeinterfacesweb,deescritorio,ymóvil
� ¿Paraqué?
� Avancedecadaestudianteydecadaequipo.
� Interacciónentrealumnosyconlacátedrasimilararedsocial
� Seguimientodecorreccionesymejoras
� Repositoriosduranteelcurso
� Primerasclases� Repositorioindividual
� Luego,usodelaOrganizaciónutn-frba-ssl� Paralosmiembrosdel
cursoasignamosunarepositorioprivado,dentroutn-frba-ssl,acadaequipo
� https://github.com/orgs/utn-frba-ssl/
� PrimerosPasosenGitHub
1. Leerguía"Git101”
2. CrearUsuario
3. CrearRepositorio.
GityGitHubh_ps://github.com/orgs/utn-frba-ssl
Prof. Esp. Ing. José María Sola 31
• https://josemariasola.files.wordpress.com/2015/04/git-101.pdf • https://guides.github.com/activities/hello-world/
HomepagedelCurso
Prof. Esp. Ing. José María Sola 32
josemariasola.wordpress.comHomepage
GitHubPapersy
Resolucionesdecadaequipo
YahooGroupsUTNFRBASSLForoparaconsultasyanuncios
GoogleCalendarCaledariocondetalledeactividades
ClasesPresenciales
PlataformadelCurso
Prof. Esp. Ing. José María Sola 33
LenguajesyHerramientasdeDesarrollo
¿QuéesunCompilador?� Programaquehaceprogramas,unmetaprograma
� Traductor� FuncióndeLenguajeaLenguaje� Proceso,enetapas� BajadeNivel
Prof. Esp. Ing. José María Sola 35
Historia ConjuntosdeinfinitosprogramasválidosdeC++yC
� 1970's� C� CWithClasses
� 1980's� ComienzastandardC
� C++� 1990's
� StandardC90� StandardC++98
� 2000's� StandardC99� StandardC++03
� 2010's� StandardC11� StandardC++11,14,17
C++
C
SobrelosLenguajesCyC++
(representa probabilidad)
Prof. Esp. Ing. José María Sola 36
/* Hello World * JMS * 20150402 */ #include <stdio.h> int main(void){ printf("Hello, World!\n"); }
� Comentarioencabezado
� Qué
� Títulodescriptivo
� Quién
� NúmerodeEquipoeintegrantes
� Cuándo� Seactualizóporúltimavez
“Hello,World!”
• 1.1 [K&R1988] • https://en.wikipedia.org/wiki/"Hello,_World!"_program
Procesobásicoparadesarrollarprogramas1. Escribirelprogramaconuneditordetexto(e.g.,vi,
Notepad,TextPad,Sublime,TextMate,Notepad++,
Notepad2).Esconvenciónparalosarchivosfuentede
Claextensiónsea.c(e.g.,hello.c)
2. Compilarelarchivofuenteparaproducirelprograma
objeto(e.g.,cchello.c)
3. Vincular(link)elprogramaconlasbibliotecaspara
crearelprogramaejecutable;generalmenteocurre
jnutoconelpuntoanterior.
4. Ejecutarelprograma(e.g.,hello.exeó./a.out)
Prof. Esp. Ing. José María Sola 38
EjemplodesdelíneadecomandoMacOSXC111. Desdelalíneadecomando
1. >vihello.c crearelfuente
2. >cc-std=c11-Wall-pedantic-errorshello.c crearelejecutable enrealidad:Preprocesador�Compilador�Linker
3. >./a.out ejecutarHello,World! salida
2. Sihayunerrorenelpaso2ó3,volveral1yrepetir2y3
Prof. Esp. Ing. José María Sola 39
EjemplodesdelíneadecomandoCompiladorMicrosoj1. Desdelalíneadecomando
1. >notepadhello.c crearelfuente
2. >clhello.c crearelejecutable enrealidad:Preprocesador�Compilador�Linker
3. >hello.exe ejecutarHello,World! salida
2. Sihayunerrorenelpaso2ó3,volveral1yrepetir2y3
Prof. Esp. Ing. José María Sola 40
EjemplodesdelíneadecomandoCompiladorBorland1. Desdelalíneadecomando
1. >notepadhello.c crearelfuente2. >bcc32hello.c crearelejecutable
enrealidad:Preprocesador�Compilador�Linker3. >hello.exe ejecutar
Hello,World! salida
2. Sihayunerrorenelpaso2ó3,volveral1yrepetir2y3
Prof. Esp. Ing. José María Sola 41
� ConIDE(IntegratedDevelopmentEnviroment,EntornoIntegradode
Desarrollo)
� Ejemplos
� AppleXcode
� MicrosoftVisualC++
ExpressEdition
� EclipseJuno.
� SinIDE
� Editor� Compilador
CompiladordeC/C++
ConIDE·Editor
·Depurador
·Gestorde
Proyectosy
deconfigu-
raciones
·Ayuda
·ymás…
SinIDERequiere
editor
HerramientasdeDesarrollo:SobreelCompiladoryelIDE
Prof. Esp. Ing. José María Sola 42
EjemploconIDEMicrosojVisualStudioExpress2013forWindowsDesktop
Prof. Esp. Ing. José María Sola 43
EjemploconIDEAppleXcode
Prof. Esp. Ing. José María Sola 44
� ConIDEyLíneadeComandos
� MicrosoftVisualStudioExpress2015forWindowsDesktop� http://www.visualstudio.com/
downloads/download-visual-studio-vs#d-express-windows-desktop
� AppleXcode� https://developer.apple.com/
xcode/
� Dev-C++� http://orwelldevcpp.blogspot.com
� EclipseIDEforC/C++Developers� http://www.eclipse.org/
downloads/packages/eclipse-ide-cc-developers/lunasr2
� Code::Blocks� http://www.codeblocks.org/
downloads/
� SinIDE,soloLíneadeComandos
� GNUCCompiler(ahoraGNUCompilerCollection)� http://gcc.gnu.org/install/binaries.html
� Bcc32� https://www.dropbox.com/sh/
5n120owrpr17ne2/_VqNDR-wIZ
� FreeC++Compilerhttp://www.embarcadero.com/products/cbuilder/free-compiler
� BorlandC++Compilerversion5.5FreeDownloadhttp://edn.embarcadero.com/article/20633
� UsingtheBorland5.5Compilerandcommand-linetoolshttp://edn.embarcadero.com/article/20997
� BorlandC++5.5FreeCommand-lineToolsSupplementaryInformationhttp://edn.embarcadero.com/article/21205
LinksaCompiladoresC/C++
Prof. Esp. Ing. José María Sola 45
PrimerTrabajoPrácAco:TP#0–HolaMundo� SecuenciasdeTarea
� 1.InscribirsealGrupoYahoo� 2.SeleccionareinstalarcompiladorC11
� 3.ProbarcompiladorconelprogramaHelloWorldTodocódigofuentedebecomenzarconelcomentario/* Qué * Quién * Cuándo */ ReemplazarQuiénporelnombrecompletodelautoroautores,Cuándoconlafechaúltimamodificación,yQuéconunabrevedescripcióndelprograma.
� 4.Ejecutarelprograma,ycapturarsusalidaenunarchivodetexto
� 5.Registrarseypublicarhello.cysalida.txtenGitHub
� 6.EnviaralgrupoYahoousuarioyrepositorioGitHub
� Restricciones� Lafechalímitedeentregaeseldíadelasegundaclssealas13:00hs
� LaevaluaciónsehaceconlopublicadoenGitHub.
Prof. Esp. Ing. José María Sola 46
Archivos� RecepciónautomáticaalinscribirsealGrupoYahoo
� “Empezando.pdf”
� “ReglasdeUsodelYahooGroupUTNFRBASSL.pdf”
� Enjosemariasola.wordpress.com
� "SSL2016K2051Clase#1.pdf"
� "Git101.pdf"
Prof. Esp. Ing. José María Sola 47
Tareasparalapróximaclase1. SolicitarinscripciónalGrupoYahoo
2. CrearusuarioGitHub
3. Leer1.1de[K&R1988]
4. RealizarTP#0"Hello,World!”
• TPobligatorioparaquienesnotienenconocimientode
programaciónenCoC++.
Prof. Esp. Ing. José María Sola 48
Términosdelaclase#Definircadatérminoconlabibliogra[a� Programación
� Programa
� LenguajedeProgramación
� Comportamiento
� Software
� Ingeniería
� Sistema
� Información
� Dato
� EstructuradeDatos
� IngenieríaenSistemasdeInformación
� SistemadeInformación
� Proyecto
� Problema(Necesidad)
� Solución
� Desarrollo
� Análisis
� Diseño
� Implementación
� Organización
� Abstracción
� OrientaciónaObjetos
� Lenguaje
� LenguajeNatural
� LenguajeFormal
� Sintaxis
� Semántica
� Léxico
� Pragmática
� SCV(SistemadeControldeVersiones)
� Git
� GitHub
� Repositorio
� Compilador
� Proceso
� Funcióndelcompilador
� Lenguajemáquina(bajoniveldeabstracción)
� LenguajedeAltoNiveldeAbstracción
� C
� C++
� HelloWorld(Kernighan)
� IDE(IntegratedDevelopmentEnviroment,EntornoIntedradodeDesarrollo).
01
Prof. Esp. Ing. José María Sola 49