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
1
Ementa
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
2
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
3
Motivação para a Disciplina (cont.)
Profissionais de Ciências Exatas
precisam programas computadores
Protótipos são fundamentais
4
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
5
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
6
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
7
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
8
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
9
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.
10
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, retrabalho) 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.
11
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
12
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
13
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
14
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
15
Desenvolvimento de Sistemas de Apoio à Decisão
Os protótipos já são o resultado
desejado
16
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
17
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
18
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”
19
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
20
O que não será estudado
A linguagem Object Pascal
A linguagem C++
21
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
22
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.
23
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)
24
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
25
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.
26
Trabalhos da via normal
Linguagem
VB
Delphi
BCB
VBA
VBA
VBA
Qualquer
Qualquer
Descrição
Uma aplicação qualquer
A mesma aplicação de VB
A mesma aplicação de VB
Macro Excel
Macro Word
Macro PowerPoint
Aplicação em OpenGL com uso de
animação, textura e tutorial passo a passo
Uma aplicação em Inteligência Artificial
(preferencialmente com Redes Neurais)
Valor
1,0
1,0
1,0
0,4
0,3
0,3
3,0
3,0
Datas de apresentação
15/06/04, 17/06/04 e
22/06/04
01/07/04
06/07/04, 08/07/04 e
13/07/04
29/07/04, 03/08/04 e
05/08/04
27
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.
28
Sugestão de macros a apresentar
Macros do Word
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
Exemplos do livro Writing Word Macros de Steven Roman
Appendix B
Appendic C
Chapter12
Chapter13
Chapter15
Chapter16
Chapter18
Chapter19
Chapter21
Do site http://www.cnr.berkeley.edu/~alyons/macros.html
Email utilities
LUIS Citation Wizard
Email Survey Processor
Do site http://www.author-it.com/docs/html/kb/html/3697.htm
AddCellFormatting
Do site http://www.chem.uky.edu/research/grossman/macro.html
Macros for Writing Papers, Proposals, or Books
Chemistry Macros
General Macros
Miscellaneous Keyboard Strokes
Macros a serem criadas
Criação de papel timbrado
Modificação dos tipos de cabeçalho (Título 1, Título 2, etc.)
Macros PowerPoint
Do site http://raw.cs.berkeley.edu/texpoint/
20 TextPoint
Do site www.unf.edu/~tcavanau/publications/necc/macros.pdf
21 Várias macros interativas
Do site http://www.funduc.com/pwrpt_sr.htm
22 Search and Replace
Do site http://oceansystems.com/dtective/upgrade.htm
23 Duas macros de imagens
Macros Excel
Livre escolha dos alunos
29
Sugestão de aplicações de
Inteligência Artificial a apresentar
Aplicações de Inteligência Artificial
Identificador Aplicação
Rede Neural PNN
51
Rede Neural ART
52
Rede Neural SOM
53
Rede Neural STN
54
Lógica Fuzzy
55
Agentes
56
Editor de Redes Semânticas
57
Outras
58
Número máximo de alunos
4
4
4
4
4
4
4
4
30
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
31
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.
32
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.
33
Calendário
Dia
06/04/04 terça feira
08/04/04 quinta feira
13/04/04 terça feira
15/04/04 quinta feira
20/04/04 terça feira
22/04/04 quinta feira
27/04/04 terça feira
29/04/04 quinta feira
04/05/04 terça feira
06/05/04 quinta feira
11/05/04 terça feira
13/05/04 quinta feira
18/05/04 terça feira
20/05/04 quinta feira
25/05/04 terça feira
27/05/04 quinta feira
01/06/04 terça feira
03/06/04 quinta feira
08/06/04 terça feira
Aula Assunto
1 Apresentação da disciplina
Semana santa
2 Aplicações gráficas – OpenGL
3 Aplicações gráficas – OpenGL
4 Aplicações gráficas – OpenGL
5 Redes Neurais
6 Redes Neurais
7 Redes Neurais
8 Outras aplicações de IA
9 Histórico das linguagens de programação
10 Programação Visual Orientada a Eventos
11 Visual Basic – Linguagem
12 Visual Basic - Linguagem
13 Visual Basic - Linguagem
14 Prática com VB
15 Prática com VB
16 Delphi e Object Pascal
17 C++ Builder
18 Prática com Delphi e C++ Builder
34
Calendário (cont.)
Dia
Aula Assunto
Corpus Christi
10/06/04 quinta feira
15/06/04 terça feira
19 Trabalhos de VB, Delphi e BCB
17/06/04 quinta feira
20 Trabalhos de VB, Delphi e BCB
22/06/04 terça feira
21 Trabalhos de VB, Delphi e BCB
24/06/04 quinta feira
22 VBA com Excel
29/06/04 terça feira
23 VBA com Word e PowerPoint
01/07/04 quinta feira
24 Trabalhos de VBA
06/07/04 terça feira
25 Trabalho de OpenGL
08/07/04 quinta feira
26 Trabalho de OpenGL
13/07/04 terça feira
27 Trabalho de OpenGL
15/07/04 quinta feira
28 Prática em Laboratório
20/07/04 terça feira
29 Prática em Laboratório
22/07/04 quinta feira
30 Prática em Laboratório
27/07/04 terça feira
31 Prática em Laboratório
29/07/04 quinta feira
32 Trabalho de Redes Neurais ou IA
03/08/04 terça feira
33 Trabalho de Redes Neurais ou IA
05/08/04 quinta feira
34 Trabalho de Redes Neurais ou IA
35
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
36
Formalização da Ementa
TCC04143 - Tópicos Especiais em Linguagens de Programação III
Período 2003.2 - 3as. e 5as. feiras - das 07 às 09 horas
Optativa: Programação Visual Orientada a Eventos com aplicações
gráficas e em Inteligência Artificial (4 créditos)
Professor: Inhaúma Neves Ferraz
Objetivo:
Dar uma visão geral sobre a Programação Visual Orientada a Eventos e
explorar a geração de protótipos.
Descrição:
Apresentar um panorama das Linguagens de Programação. Apresentar a
linguagem Basic e sua variantes. Caracterizar a Programação Visual Orientada a
Eventos. Gerar protótipos com Programação Visual com pouco conhecimento da
Linguagem de Tratamento de Eventos. Desenvolver aplicações de inteligência artificial
e aplicações gráficas em diferentes linguagens de programação.
37
Formalização da Ementa (cont.)
Ementa:
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
Aplicações gráficas – OpenGL
VBA
VBA com Excel
VBA com Word e PowerPoint
Aplicações de Inteligência Artificial : Redes Neurais, Lógica Fuzzy, Agentes
Prática em Laboratório
38
Bibliografia:
Petroutsos, Evangelos - Dominando o Visual Basic 6 - Makron Books do Brasil. - São Paulo - 1999.
Nunes, Eduardo - Visual Basic 6.0 - Guia do Usuário - Makron Books do Brasil - São Paulo - Brasil - 1999.
Microsoft Corporation – Visual Basic 6.0 – Guia do Programador - Makron Books do Brasil - São Paulo - Brasil 1999.
Lomax, Paul - Learning VBScript - O’Reilly & Associates Inc. - Sebastopol - USA - 1997.
História das linguagens de programação com interessante gráfico de evolução
http://www.levenez.com/lang/
Introdução à Computação Gráfica da UFRJ
http://orion.lcg.ufrj.br/cg/
Tutorial de OpenGL da PUCRS
http://www.inf.pucrs.br/~manssour/OpenGL/
OpenGL usando C++ Builder
http://www.ap.dyndns.dk/opengl.htm
Histórico das linguagens de programação (parte 1)
http://www.uow.edu.au/~hasan/buss930/prog/prlangs1.htm
Histórico das linguagens de programação (parte 2)
http://www.uow.edu.au/~hasan/buss930/prog/prlangs2.htm
Lógica Fuzzy
http://www.attar.com/pages/fuzzy.htm
Animações em Powerpoint
http://duramecho.com/ComputerInformation/HowToDoPowerpointAnimations.html
Excel com VBA
http://www.excel-vba.com/ae-contents.htm
Notas de aula de VBA para Excel
www.ncc.up.pt/~ricroc/aulas/0203/sap/pdf/vba_excel.pdf
Notas de aula de Delphi
http://geekbrasil.sites.uol.com.br/delphi.zip
Tutoriais de C++ Builder
http://www.kissysoftware.com/asp/functions.asp
http://www.araripina.com.br/bcb/
39
Download

Tópicos Especiais em Linguagem de Programação III