390 likes | 454 Views
Tópicos Especiais em Linguagem de Programação III. Programação Visual Orientada a Eventos com aplicações gráficas e em Inteligência Artificial Apresentação da Disciplina. Apresentação da disciplina Histórico das linguagens de programação Programação Visual Orientada a Eventos
E N D
Tópicos Especiais em Linguagem de Programação III Programação Visual Orientada a Eventos com aplicações gráficas e em Inteligência Artificial Apresentação da Disciplina
Apresentação da disciplina Histórico das linguagens de programação Programação Visual Orientada a Eventos Visual Basic – Linguagem Prática com VB C++ Builder Prática com C++ Builder Delphi e Object Pascal Prática com Delphi Busca, Redes Semânticas Lógica Fuzzy, Redes Neurais, Agentes Aplicações gráficas – OpenGL VBA VBA com Excel VBA com Word e PowerPoint Prática em Laboratório Calendário Formalização da Ementa Ementa
Motivação para a Disciplina • Linguagens de Programação são difíceis • Linguagens de Programação permanecem pequeno tempo “em moda” • O número de Linguagens de Programação existentes é gigantesco e vai continuar a crescer • Freqüentemente a carreira nos obriga a parar de programar por algum intervalo de tempo (às vezes para sempre) • Parando de programar nossa habilidade de programação encolhe (às vezes desaparece) • Existem enormes quantidades de programas disponíveis, porém em diversas Linguagens de Programação e não compatíveis uns com outros
Motivação para a Disciplina (cont.) • Profissionais de Ciências Exatas precisam programas computadores • Protótipos são fundamentais
Constatação • Diretores, Gerentes, Chefes e Professores tendem a perder a capacidade de programar e tornam-se dependentes de terceiros para se comunicar usando computadores
Tipos de programadores • Programadores tradicionais que sabem tudo ou quase tudo de determinada Linguagem de Programação • Programadores de microcomputadores que não sabem programar Sistemas mas sabem tudo, ou quase tudo, de uso de aplicativos, instalações, telas, opções, etc. • Programadores incompetentes • Programadores que conseguem resolver problemas pessoais e empresariais
Tipos de programas • Sistemas com longa vida útil sendo desenvolvidos durante largos períodos de tempo • Sistemas de Tratamento da Informação • Sistemas de Cálculo • Outros • Sistemas de apoio à decisão com pequena vida útil, sendo úteis para um momento específico e, portanto, tendo de ser desenvolvidos em curtíssimo período de tempo
Sistemas de Tratamento da Informação • Geralmente são entendidos por todos, não havendo complexidade na definição do problema ou solução • As dificuldades são: • Captura das especificações • Interação com o usuário • Gerenciamento da Informação
Sistemas de Cálculo • Geralmente não apresentam complexidade na interação com o usuário ou no gerenciamento da informação • As dificuldades são: • Captura das natureza do problema a resolver • Obtenção do conhecimento técnico para a solução (geralmente englobando conhecimentos matemáticos, físicos, químicos, estatísticos, de cálculo numérico, etc.) • Implementação de uma solução a custos computacionais razoáveis
Sistemas de apoio à decisão • Sistemas de Apoio à Decisão (“Decision Support Systems – DSS”) são uma classe específica de sistemas de informação computadorizada que apóia atividades de tomada de decisão em negócios e organização. Com eles os tomadores de decisão obtém informação útil dos dados brutos, documentos, conhecimento pessoal e/ou modelos de negócios para identificar e resolver problemas e tomar decisões.
Sistemas de apoio à decisão (cont.) As informações típicas que uma aplicação de apoio à decisão pode obter e apresentar são: • Acesso ao patrimônio de informações da organização, incluindo fontes de dados herdadas de antigas aplicações, fontes de dados relacionais, cubos, data warehouses e data marts. • Medidas de desempenho (vendas, produção, re-trabalho) entre um período de tempo e o próximo. • Projeções de resultados financeiros baseadas em projeções de produção e/ou vendas. • Conseqüências de diferentes alternativas de decisão, a partir da experiência em ambientes o contextos tais como o em tela.
Protótipos • Protótipos são ferramentas para a criação ou simulação de programas. Estas ferramentas freqüentemente permitem a “colagem” de programas existentes, mesmo que em diversas linguagens de programação. • Protótipos de programas são necessários para: • Verificar a viabilidade de uma proposta ou de um Sistema pois conhecimentos recentemente adquiridos são de difícil validação sem testes • Comunicação com os usuários • Comunicação com a equipe de desenvolvimento de Sistemas • Comunicação empresarial • Mostrar desenvoltura, iniciativa e competência
Necessidade Programação e Prototipação • O desenvolvimento de Sistemas, para a maioria dos profissionais é atividade para curto prazo em sua vida profissional (5 a 15 anos) • A necessidade de programação é atividade para toda a vida profissional • A necessidade programação quase sempre recai na necessidade de geração de protótipos • Em geral profissionais constroem de 3 a 20 Sistemas em sua vida profissional mas tem de fazer (ou mandar fazer) um protótipo a cada 20 dias, ou seja, a cada ano da vida profissional se faz (ou se deveria fazer) mais protótipos do que os Sistemas feitos em toda a vida profissional
Desenvolvimento de Sistemas de Informações • Os protótipos servem para validar a captura das especificações de requisitos e a interação com o usuário • Especialistas projetam: • Arquitetura do Sistema • Modelagem • Bancos de Dados • Comunicação de Dados • Interface • O Sistema segue o ciclo de vida normal
Desenvolvimento de Sistemas de Cálculo • Especialistas fornecem um algoritmo para a solução do problema • Os protótipos servem para verificar a possibilidade de se conseguir chegar a um resultado desejado • Especialistas projetam: • Arquitetura do Sistema • Modelagem • Bancos de Dados • Comunicação de Dados • Interface • O Sistema segue o ciclo de vida normal
Desenvolvimento de Sistemas de Apoio à Decisão • Os protótipos já são o resultado desejado
Proposta do Curso • Você pode não perder a capacidade de programar • Você pode programar bem sem ser um exímio programador • Conseguindo programar protótipos e utilizar linguagens de “scripting” sua carreira pode ter um diferencial de qualidade
Como fazer • Linguagens Visuais ampliam extraordinariamente o poder de comunicação dos protótipos • Linguagens Orientadas a Eventos simplificam tremendamente a programação de protótipos • Linguagens Visuais Orientadas a Eventos serão a nossa ferramenta predileta
Pontos importantes • O mais importante é o seu conhecimento básico de computadores, Sistemas e algoritmos • A linguagem de programação é bem menos importante • Você pode enfrentar qualquer linguagem de programação porque • Existe um grande número de exemplos de código disponíveis na Internet • A Programação Orientada a Eventos dispõe de • Completamento de código • Ajuda “on-line” • Depurador “on-line”
O que será estudado • Revisão das Linguagens de Programação como um todo • A Linguagem Visual Basic por ser estranha aos Cursos acadêmicos, além de ser a Linguagem de automação da Microsoft e, como tal, ser muito difundida • O uso dos produtos VB, Delphi e C++ Builder
O que não será estudado • A linguagem Object Pascal • A linguagem C++
Garantia de sucesso • Para comprovar a validade da proposta do Curso serão desenvolvidas aplicações consideradas extremamente difíceis: • Redes Neurais e outras aplicações de Inteligência Artificial • Computação Gráfica Gerativa
Em resumo • A programação de Sistemas é tarefa complexa e nada muda daquilo que tem sido ensinado no Curso de Ciência da Computação • Ocorre que, mesmo em “software houses”, a maior parte do tempo se está programando protótipos e isto é que se pretende estudar neste Curso.
Como será o desenvolvimento do Curso • Serão apresentados ambientes de programação • Será apresentado um enorme número de exemplos de aplicações funcionando em todas as Linguagens e ambientes de Programação • Serão cobrados seis exemplos de pequeno grau de complexidade • Serão cobrados dois exemplos de moderado grau de complexidade • Não haverá provas (apenas VS para reprovar os que não fizerem os trabalhos)
Trabalhos • Os trabalhos serão individuais • Se algum grupo de alunos desejar se unir para enfrentar um trabalho de elevado grau de complexidade pode-se estudar esta opção
Duas vias • O Curso deve preparar alunos para trabalhar com Programação Visual e geração de protótipos e terão seu desenvolvimento aqui descrito, pela chamada via normal. • Alunos que já dominarem as linguagens e ambientes que serão ministradas poderão ser aprovados por via rápida. Isto significa que poderão entregas trabalhos especiais a qualquer tempo. Após a entrega dos trabalhos estarão aprovados e dispensados de presença.
Escolha de trabalhos • Os trabalhos deverão ser escolhidos com o Professor para evitar superposição. Cópia de trabalhos é permitido mas todos copiarem o mesmo trabalho não o é. • A sugestão de macros está exibida a seguir. Cada sugestão de Word pode ser aceita até por três alunos. Cada sugestão PowerPoint pode ser aceita até por cinco alunos.
Sugestão de aplicações de Inteligência Artificial a apresentar
Trabalhos da via rápida • Alunos que já dominarem as linguagens que serão ministradas poderão ser aprovados por via rápida. Isto significa que poderão entregas trabalhos especiais a qualquer tempo. Após a entrega dos trabalhos estarão aprovados e dispensados de presença. Os trabalhos de via rápida serão agrupados em dois pacotes. • Pacote 1 • Pacote 2
Pacote 1 da via rápida • Teste e descrição do conteúdo de todos os trabalhos apresentados pelos alunos do período passado. Execução de todos os programas e preenchimento do Banco de Dados de programas executados. O resultado do trabalho será apresentado em um programa, escrito em qualquer linguagem, permitindo a recuperação de informações por linguagem, aluno, período e tipo de aplicação. • São previstas as seguintes entidades e atributos: • Programa com Linguagem, título, tipo, descrição, recursos usados, como usar, comentários do professor e grau; • Aluno com nome, período e grau. • O atributo tipo pode assumir os valores VB, BCB, Delphi, Macro Excel, Macro Word, Macro PowerPoint, Agentes, Redes Neurais, Fuzzy, Busca, OpenGL, Outros. • O valor do trabalho, como um todo, é 10,0 não se aceitando parte do trabalho. Este pacote poderá ser escolhido, no máximo, por três alunos sendo que cada qual deverá apresentar um trabalho independente (e distinto) dos demais.
Pacote 2 da via rápida • Uma mesma aplicação em OpenGL com uso de animação, textura e tutorial passo a passo feito diversas linguagens (VB, Visual C++, Delphi, C++ Builder) mais três Macros (uma em Excel, uma em Word, uma em PowerPoint). O valor do trabalho, como um todo, é 10,0 não se aceitando parte do trabalho. Este pacote poderá ser escolhido, no máximo, por cinco alunos sendo que cada qual deverá apresentar um trabalho independente (e distinto) dos demais.
Conclusão • Pretende-se que esta disciplina seja uma diversão criativa para quem gosta de programar computadores • Bem-vindos ao Curso • Grato pela confiança