Minicursos

» Minicurso 1 - Desenvolvimento de aplicações ricas para Web com Adobe Flex 4.0.

Título: Desenvolvimento de aplicações ricas para Web com Adobe Flex 4.0.

Carga Horária: 8 horas

Pré-requisitos: Conhecimentos de orientação a Objetos, XML e alguma linguagem de programação.

Ministrante: Willame Pereira

Currículo Resumido: Formado em Análise e Desenvolvimento de Sistemas pelo IFPI, possui experiência em desenvolvimento de sistemas Web e já ministrou um curso de 60 horas de Adobe Flex 4, do básico ao avançado, em uma empresa de treinamentos do Porto Digital em Recife-PE. Atualmente é bolsista CNPq e cursa o Mestrado Acadêmico em Ciência da Computação do Centro de Informática (CIn) da UFPE. Dentre atividades do mestrado, fez parte da equipe de desenvolvimento da Firescrum (www.firescrum.com), uma ferramenta Open Source para gestão de projetos Scrum desenvolvida em Flex 3 com Java.

Sobre o Adobe Flex 4.0 O framework de desenvolvimento de RIA’s (Rich Internet Applications, ou, aplicações ricas para a internet) na plataforma Flash, o Flex 4, contém uma série de funcionalidades que facilitam e agilizam o desenvolvimento e que fornecem maior riqueza de interação para o usuário final. Com essa tecnologia é também possível criar aplicações integradas com linguagens bastante utilizadas no mercado, como Java, PHP, Asp .Net, Ruby, etc.

Objetivo Permitir aos desenvolvedores não só conhecer as principais funcionalidades do Flex 4, mas também reconhecer as vantagens de se utilizar esse poderoso framework, entendendo porque ele se destaca na criação de RIA’s e aprendendo a criar uma aplicação Web integrada com a linguagem Java.

Público alvo Empresas, profissionais ou estudantes que desejam conhecer o Flex 4 e suas funcionalidades de desenvolvimento de aplicações ricas para a web.

» Minicurso 2 - Automatização de Sistemas GNU/Linux com Python.

Título: Automatização de Sistemas GNU/Linux com Python.

Carga Horária: 8 horas

Pré-requisitos: Conhecimentos básicos de programação e sistemas Linux

Ministrante: Marcus Vinícius de Sousa Lemos

Currículo Resumido: Mestre em Informática Aplicada pela Universidade de Fortaleza (Unifor). Atualmente, é Auditor Fiscal de Controle Externo do Tribunal de Contas do Estado do Piauí e professor da Universidade Estadual do Piauí (Uespi) e da Faculdade de Tecnologia de Teresina (CET) .Suas principais áreas de interesse são: Redes de Sensores Sem Fio, Robótica e Inteligência Artificial

Conteúdo Programático: Python é uma linguagem de propósito geral, frequentemente aplicada em funções de scripts. O termo "script", dentro do contexto de sistemas operacionais, significa pequenos programas, geralmente executados a partir de linhas de comando do console que são capazes de executar tarefas relacionadas à administração deste sistema operacional, como processamento de arquivos de configuração e inicialização de outros programas. Em outras palavras, um script é uma excelente ferramenta para o administrador de sistemas, pois permite que o mesmo seja capaz de automatizar a execução de tarefas burocráticas e repetitivas com um pequeno programa. Além disso, por ser uma linguagem com uma sintaxe simples, Python pode ser muito bem utilizada para resolver, de forma muito rápida, diversos problemas do cotidiano.

Assim, este mini-curso tem como objetivo prover o aluno de conhecimentos e habilidades necessários para automatização de tarefas essenciais de Administração de Sistemas GNU/Linux, utilizando a linguagem Python. Dentre outros, o alunos será capaz de gerenciar contas de usuários, gerenciar recursos locais, melhorar a segurança do sistema além de desenvolver scripts capazes de interagir com aplicações cliente servidor e com o mundo físico à sua volta.

» Minicurso 3 - Desenvolvendo Aplicações para o Android.

Título: Desenvolvendo Aplicações para o Android.

Carga Horária: 8 horas. Sendo 4:30h teórico e 3:30h prático.

Ministrante: Cândido Sales Gomes

Currículo Resumido: Graduando no Instituto Federal de Educação, Ciência e Tecnologia do Piauí. Integrante do LIMS-IFPI (Laboratory of Innovation on Multimedia Systems). Já pesquisou sobre TV Digital e ministrou mini-cursos sobre Aplicações Interativas para TV Digital em NCLua no IFPI, CEUT e UFPI. Desenvolvedor de sistemas para web em PHP (Zend) e Java (Vraptor 3). Web design em CSS3, HTML, JQuery e AJAX.

Ministrante: Lucas Aquiles

Currículo Resumido: Graduando em Analise e Desenvolvimento de Sistemas pelo Instituto Federal de Educação, Ciência e Tecnologia do Piauí – IFPI. Entusiasta Java (JSF2, Seam) , Groovy (Grails) e tecnologias Web.

Conteúdo Programático: O  minicurso irá tratar sobre desenvolvimento de aplicações para dispositivos móveis no Sistema Operacional Android, onde vamos apresentar os conceitos básicos sobre a plataforma, a preparação do ambiente de desenvolvimento, instalação e configuração no Windows e Linux, bem como a apresentação de  exemplos práticos dos componentes que serão utilizados. É um minicurso prático e  está dividido em duas partes. A primeira será uma apresentação teórica sobre o computação móvel, o Sistema  Operacional Android e dos recursos que são necessários. A segunda parte será a implementação do conteúdo teórico abordado durante a primeira parte. Para a contextualização da implementação será desenvolvida uma aplicação de uma biblioteca mobile, onde os usuários podem alugar e reservar livros utilizando um serviço RestFul. No final do minicurso será disponibilizado os materiais utilizados, bem como os arquivos  implementados durante o curso.

» Minicurso 4 - LATEX para iniciantes.

Título: LATEX para iniciantes.

Carga Horária: 8 horas

Pré-requisitos: Não há pré-requisitos, qualquer aluno de qualquer curso pode participar.

Ministrante: Romuere Rodrigues Veloso e Silva

Currículo Resumido: Bacharelando em Ciência da Computação pela Universidade Federal do Piauí - UFPI com ingresso em 2008. Aluno de iniciação científica pela UFPI na área de Processamento Digital de Imagens.

Ministrante: Flávio Henrique Duarte de Araújo

Currículo Resumido: Bacharelando em Ciência da Computação pela Universidade Federal do Piauí - UFPI com ingresso em 2008. Aluno de iniciação científica pela UFPI na área de Processamento Digital de Imagens.

Ministrante: Rodrigo de Sousa Melo Veras

Currículo Resumido: Possui graduação em Bacharelado Em Ciência da Computação pela Universidade Federal do Piauí (2005) e mestrado em Ciência da Computação pela Universidade Federal do Ceará (2007). Atualmente é professor do Departamento de Informática e Estatística da Universidade Federal do Piauí. Doutorado em andamento em Engenharia de Teleinformática (Conceito CAPES 4) pela Universidade Federal do Ceará. Tem experiência na área de Computação, com ênfase em Processamento de Imagens, atuando principalmente nos seguintes temas: diagnóstico auxiliado por computador e reconhecimento de padrões.

Observações: Por ser um curso bastante curto (apenas 8hs) focaremos na parte prática do conteúdo, e principalmente na produção de artigos e apresentações. Ao final do curso o aluno será capaz de produzir seus próprios artigos e apresentações na linguagem LaTeX.

Conteúdo Programático: 1.0 Instalando o LaTeX:
Veremos passo a passo como se dá a instalação do LaTeX, quais os softwares devemos utilizar e quais são de uso livre.
2.0 Conceitos Básicos:
2.1 Introdução:
Iremos mostrar a história do LaTeX, desde sua criação até suas mais novas versões e os responsáveis pelo andamento desse projeto.
2.2 Primeiro Exemplo LaTex:
Veremos como os primeiros passos para que um texto LaTeX seja produzido. Todo texto é iniciado com um preâmbulo, nesse preâmbulo temos, no mínimo, um comando tal comando contem informações como tamanho das letras, tipo de papel e etc. e também um parâmetro classe que é obrigatório e define o estilo do texto digitado (artigo, livro, tese, apresentação).
2.3 Caracteres Especiais:
Alguns caracteres em LaTeX são especiais, assim como em algumas linguagens de programação, e necessitam de representações especiais. Por exemplo para que o símbolo % seja visto no texto é necessário digitar \%, isso ocorre com alguns caracteres.
2.4 Formatações:
Ainda em conceitos básicos será necessário mostrar vários tipos de formatações de texto, como por exemplo: comentários, espaços em branco, nova linha, novo parágrafo, tipos e tamanhos de letras, texto sublinhado, numeração de páginas, notas de rodapé e especo entre linhas.
2.5 Bibliografia
Em LaTeX a bibliografia é feita em um arquivo separado do arquivo principal com a extensão .bib, o modo como trabalhamos com bibliografia em LaTeX é bastante interessante, pois a mesma bibliografia pode ser usada, por exemplo, para vários artigos diferentes, na sessão Bibliografia do artigo que irá aparecer somente os autores citados durante o texto. Aprenderemos como criar e usar esses arquivos .bib.
3.0 Artigos
Nesse minicurso veremos como criar um artigo científico completo, seguindo as normas de formatação da SBC (Sociedade Brasileira de Computação) e da ABNT (Associação Brasileira de Normas Técnicas). Veremos como incluir gráficos, imagens, fazer referências bibliográficas entre outras funcionalidades.
4.0 Apresentações
Em LaTeX podemos, também, além de produzir textos dos mais diferentes formatos, produzir apresentações, que são bastante leves e possuem as mesmas funcionalidades de ferramentas como o Microsoft PowerPoint e o BrOffice Impress.
Para produzir apresentações utilizamos uma classe do LaTeX chamada Beamer e as apresentações, geralmente são interpretadas para o formato PDF, que torna a apresentação feita em LaTeX bastante portátil.

» Minicurso 5 - Aprendendo modelagem e animação básica no blender 2.49.b.

Título: Aprendendo modelagem e animação básica no blender 2.49.b.

Carga Horária: 8 horas

Ministrante: José Ranieri Sousa Pereira

Currículo Resumido: Graduando em Bacharelado em Ciência da Computação. UFPI, com previsão de conclusão em 2013.1.

Conteúdo Programático: Assim almejando a exposição desta ferramenta de uma forma introdutória e dando uma base para futuros estudos e aplicações, o curso tem como objetivo dar ao aluno uma base de como usar e aproveitar dos recursos que este programa disponibiliza, possibilitando possivelmente um aumento no número de profissionais que pesquisam sobre a tão interessante área de computação gráfica que é pouco trabalhada tanto no nordeste como consequentemente no Piauí.

No curso será mostrado como modelar em dois níveis: low poly e high poly, como gerar um modelo animado, como criar uma livraria de poses e uma animação básica, uma noção básica sobre o funcionamento do Game Engine do Blender e como gerar um executável de um jogo montado no Blender.

» Minicurso 6 - Trabalhando com o MATLAB.

Título: Trabalhando com o MATLAB.

Carga Horária: 8 horas

Pré-requisitos: O aluno deve conhecer lógica de programacao.

Ministrante: Romuere Rodrigues Veloso e Silva

Currículo Resumido: Bacharelando em Ciência da Computação pela Universidade Federal do Piauí - UFPI com ingresso em 2008. Aluno de iniciação científica pela UFPI na área de Processamento Digital de Imagens.

Ministrante: Flávio Henrique Duarte de Araújo

Currículo Resumido: Bacharelando em Ciência da Computação pela Universidade Federal do Piauí - UFPI com ingresso em 2008. Aluno de iniciação científica pela UFPI na área de Processamento Digital de Imagens.

Ministrante: Rodrigo de Sousa Melo Veras

Currículo Resumido: Possui graduação em Bacharelado Em Ciência da Computação pela Universidade Federal do Piauí (2005) e mestrado em Ciência da Computação pela Universidade Federal do Ceará (2007). Atualmente é professor do Departamento de Informática e Estatística da Universidade Federal do Piauí. Doutorado em andamento em Engenharia de Teleinformática (Conceito CAPES 4) pela Universidade Federal do Ceará. Tem experiência na área de Computação, com ênfase em Processamento de Imagens, atuando principalmente nos seguintes temas: diagnóstico auxiliado por computador e reconhecimento de padrões.

Conteúdo Programático:

No minicurso serão abordados vários temas, os principais são: Operações básicas Aqui serão trabalhadas as principais operações basicas do MATLAB, como: soma, subtração, multiplicação, divisão, operadores lógicos(maior que, menor que, sinais de igualdade, AND, OR, entre outros), operadores de decisão(if, else, switch), operadores de repetição(for, while) e operadores de controle(break, continue, return, try cath). Trabalhando com Vetores Um vetor é um conjunto de elementos dispostos linearmente na memória. No MATLAB, assim como em quase todas as outras linguagens de programação essa estrutura ´e a principal forma de armazenamento de dados. Aqui serão trabalhadas as principais operações com vetores, como: Inicialização, acesso aos elementos, entre outras. Trabalhando com Matrizes Uma matriz MxN nada mais ´e que um conjunto de M vetores de tamanho N, onde M representa a quantidades de linhas e N a quantidade de colunas da matriz. O MATLAB possui uma grande facilidade para trabalhar com matrizes. Aqui serão trabalhadas as principais operações com matrizes, como: Inicialização, acesso aos elementos, operações entre os elementos, entre outras. Trabalhando com Funções As funções são o principal atributo do MATLAB. O software possui uma grande quantidade de funções pré-definidas. Aqui serão trabalhadas as formas de uso, juntamente com a forma de procurar por essas funções. Trabalhando com Imagens O MATLAB possui muitas funções para trabalhar com imagens. Esse software é um dos mais conhecido para essa finalidade. Aqui serão trabalhadas funções básicas de manuseio de imagens, como: Funções de leitura e impressão de imagens, assim como extração de características da imagem. Interface Gráfica As interfaces gráficas são usadas para uma maior interação com o usuário. Normalmente elas servem para entrada e saída de dados. O MATLAB possui uma área destinada ao desenvolvimento de interface gráfica. Aqui serão trabalhadas modelos de desenvolvimento de interface, juntamente com funções de entrada e saída de dados através dessas interfaces.

» Minicurso 7 - Persistência de Objetos com o Framework Hibernate.

Título: Persistência de Objetos com o Framework Hibernate.

Carga Horária: 8 horas

Pré-requisito: Programação em Java

Ministrante: Prof. M.Sc. Carlos André Batista de Carvalho

Currículo Resumido: Possui graduação em Bacharelado em Ciência da Computação pela Universidade Federal do Piauí (2004) e mestrado em Sistemas e Computação pelo Instituto Militar de Engenharia (2006). Atualmente é professor assistente da Universidade Federal do Piauí, atuando nas áreas de Segurança e Criptografia e de Algoritmos e Programação.

Ministrante: Ewerton Vale Leal

Currículo Resumido: Aluno de graduação em Bacharelado em Ciência da Computação pela Universidade Federal do Piauí.

Conteúdo Programático:

1. Realizando Persistência em Java
1.1. Persistência em Arquivos
1.2. Persistência em Banco de Dados (JBDC)
2. Mapeamento objeto-relacional usando o Hibernate
3. Instalação e configuração do Hibernate
4. Criando e anotando classes (entidades)
4.1. Relacionamentos entre entidades
4.2. Herança de entidades
5. Realizando operações
5.1. Consultar
5.2. Inserir
5.3. Remover
5.4. Alterar
6. Atividades práticas
7. Considerações Finais

» Minicurso 8 - Processamento de Linguagem Natural: Desafios e Aplicações.

Título: Processamento de Linguagem Natural: Desafios e Aplicações.

Carga Horária: 8 horas

Ministrante: Francisco Assis Ricarte Neto

Ministrante: Rafael Anchiêta Torres

Currículo Resumido: Graduando do curso de Bacharelado em Ciência da Computação pela Universidade Federal do Piauí. Faz parte do projeto de pesquisa sobre Processamento de Linguagem Natural e Requisitos de Software.

Ministrante: Raimundo Santos Moura

Currículo Resumido: Possui graduação em Bacharelado em Ciências da Computação pela Universidade Federal do Piauí (1994), mestrado em Ciência da Computação pela Universidade Federal de Pernambuco (1996) e doutorado em Engenharia Elétrica e de Computação pela Universidade Federal do Rio Grande do Norte (2009). É professor adjunto da Universidade Federal do Piauí desde 1997. Tem experiência na área de Ciência da Computação, com ênfase em Linguagens de Programação/Compiladores, atuando principalmente no tema: análise e modelagem de sistemas industriais. Possui também especial interesse na área de Interação Humano Computador.

Conteúdo Programático: Neste minicurso iremos apresentar uma subarea da Inteligência Artificial chamada de Processamento de Linguagem Natural (PLN) também denominada Linguística Computacional ou, ainda, Processamento de Línguas Naturais. O PLN lida com problemas relacionados à automação da interpretação e da geração da língua humana em aplicações como Tradução Automática, Sumarização Automática de Textos, Ferramentas de Auxílio à Escrita, Perguntas e Respostas, Categorização Textual, Recuperação e Extração de Informação, entre muitas outras, além das tarefas relacionadas de criação e disponibilização de dicionários/léxicos e corpus eletrônicos, desenvolvimento de taxonomias e ontologias, investigações em linguística de corpus, desenvolvimento de esquemas de marcação e anotação de conhecimento linguístico-computacional, resolução anafórica, análise morfossintática automática, análise semântico-discursiva automática, entre outros.

No minicurso serão apresentadas duas das principais ferramentas, como o etiquetador morfossintático MXPOST, e o gerador de analisadores léxico e sintático: ANTLR. Os etiquetadores (taggers) são ferramentas utilizadas na etiquetagem automática de corpus. As etiquetas ou marcas chamadas em inglês de POST TAGS (Part-Of-Speech TAGS) são principalmente, classes gramaticais (morfossintáticas) das palavras do corpus. Para realizar a etiquetagem de um texto é necessária a definição de um conjunto finito de etiquetas (tags) e essas etiquetas devem ter um significado linguístico associado. Geralmente o significado dessa etiqueta refere-se à categoria morfossintática ou gramatical de uma determinada palavra, dentro de uma Língua e contexto. O processo de etiquetagem consiste em realizar a associação das palavras que aparecem em um dado texto a uma determinada etiqueta do conjunto finito de etiquetas. Essa associação é feita de acordo com o algoritmo do etiquetador utilizado. O ANTLR é um gerador de parser que automatiza a construção de reconhecedores DSL (Domain-Specific Languages), ou seja, linguagem de altíssimo nível usada para resolver tarefas especifica, tais como: troca de formato de dados, formato de arquivos de configuração, protocolos de redes, linguagens de processamento de textos e linguagens de controle de espaçamento. A ferramenta ANTLR gera uma gramática combinada que especifica tanto o parser quanto o as regras léxicas da linguagem. O formato dos token da linguagem desejada é definido através de uma gramática livre de contexto, na notação EBNF.

No minicurso serão discutidos os grandes desafios do PLN no Brasil, como a ausência de recursos básicos de qualidade para o português (por exemplo, corpus anotado ou não, um bom parser, wordnet). Além disso, serão apresentadas aplicações reais que utilizam Linguagem Natural, incluindo aplicações que estão sendo desenvolvidas no Laboratório de Engenharia de Software e Informática Industrial (EASII) da UFPI.

» Minicurso 9 - Robótica: teoria e prática usando Arduino.

Título: Robótica: teoria e prática usando Arduino.

Carga Horária: 8 horas

Ministrante: Francisco Roterdan Macedo de Oliveira

Currículo Resumido: Possui graduação em Licenciatura em Computação pela Universidade Estadual do Piauí, é especialista em Redes de Computadores pela Faculdade Santo Agostinho. Tem experiência e trabalha ativamente com Sistemas Operacionais Linux e Redes de Computadores, atualmente exerce o cargo de Analista de Suporte para o Conselho Nacional de Justiça, fazendo parte da equipe lotada no TJPI.

Ministrante: Francisco Marcelino Almeida de Araújo

Currículo Resumido: Possui graduação em Bacharelado em Engenharia Eletrônica pela Universidade Estadual do Piauí (2010) e atualmente é professor/pesquisador do IFPI no campus Parnaíba, mestrando em biotecnologia pela UFPI Campus Ministro Reis Veloso. Tem experiência na área de diagnóstico por exame (Imunologia, Bioquímica, Hormônios e Hematologia), tendo trabalhado nas empresas Diagnocel (ABBOTT) e REM. Trabalhou por 2 anos no Serviço Federal de Processamento de dados (SERPRO) atuando na área de redes.

Conteúdo Programático: Nos mesmos moldes do Software Livre, surgiu o conceito de Hardware Livre, onde o design do hardware e o código fonte do software são regidos por uma licença que permite o uso e alterações por toda a comunidade. Temos como maior exemplo de hardware livre o Arduino, que é um conjunto do hardware e de uma IDE que utiliza uma linguagem de alto nível e de fácil compreensão. No minicurso serão abordadas a teoria e a prática de robótica possibilitando o aluno ter uma noção de como implementar um robõ simples e conhecer novas possibilidades com a chamada computação física, mostrando os principais conceitos da eletrônica específica para robótica como: ponte H, PWM e diversos componentes eletrônicos frequentemente utilizados em robôs. Serão apresentadas também técnicas básicas e intermediárias de programação de robô com linguagem C/C++ no ambiente Arduino.

» Minicurso 10 - Desenvolvimento Dirigido por Testes de Aceitação.

Título: Desenvolvimento Dirigido por Testes de Aceitação.

Carga Horária: 4 horas

Ministrante: Pedro Alcântara dos Santos Neto

Currículo Resumido: Possui graduação em Bacharelado Em Ciencia da Computacao pela Universidade Federal do Piauí (1995), mestrado em Ciências da Computação pela Universidade Federal de Pernambuco (1999) e doutorado em Ciências da Computação pela Universidade Federal de Minas Gerais (2006). Atualmente é  professor da Universidade Federal do Piauí. Tem experiência na área de Engenharia de Software, atuando principalmente na automação de testes, desenvolvimento de software utilizando metodologias ágeis e engenharia de software experimental.

Ministrante: Antonio Gabriel Di Atlanta Valente

Currículo Resumido: Bacharelando em Ciência da Computação pela Universidade Federal do Piauí e bolsista PIBIC/CNPq orientado pelo Professor Pedro de Alcântara dos Santos Neto na área de teste de software.

Ministrante: Ítalo Linhares de Araújo

Currículo Resumido: Bacharelando em Ciência da Computação pela Universidade Federal do Piauí e bolsista PIBIC/CNPq orientado pelo Professor Pedro de Alcântara dos Santos Neto na área de teste de software.

Objetivo: Detalhar a técnica de desenvolvimento dirigido por testes de aceitação a partir da utilização da ferramenta de apoio Fitnesse, detalhando suas funcionalidades e mecanismos gerais no desenvolvimento de sistemas de informação para a Web.

Conteúdo Programático: Este minicurso deve ser estruturado utilizando-se a seguinte organização: i) Introdução: explanação dos principais conceitos de teste de software, ferramentas de automação e seus diferentes tipos e classificações; ii) Desenvolvimento Dirigido por Testes (TDD): apresentação dos conceitos relacionadas a essa técnica e exemplificação de um exemplo prático utilizando JUnit; iii) Desenvolvimento Dirigido por Testes de Aceitação com FitNesse: demonstração da ferramenta e da técnica a partir da utilização da FitNesse em exemplos práticos associado ao desenvolvimento de sistemas de informação para a Web; iv) Pesquisas envolvendo ATDD: exposição das principais pesquisas em execução relacionadas ao ATDD; v) Conclusões: finalização do curso, com uma avaliação da técnica e do seu uso em projetos experimentais.