Estágio Supervisionado – UniMetrocamp Wyden

Cursos: Ciência da Computação e Sistemas de Informação

Prof. José Carlos Perini

Atenção alunos dos cursos de Ciência da Computação e Sistemas de Informação da Faculdade DeVry Metrocamp.

Segue abaixo um documento com as orientações sobre o estágio curricular supervisionado.

Muito importante: Não percam os prazos para entregar os documentos.

Orientacoes estagio 2019.1

Atividades Complementares – UniMetrocamp Wyden

Cursos: Ciência da Computação e Sistemas de Informação

Os alunos dos cursos de Ciência da Computação e Sistemas de Informação devem cumprir as horas de atividades complementares, durante a sua graduação, conforme abaixo:

Ciência da Computação: 140 horas.

Sistemas de Informação: 120 horas.

O Prof. José Carlos Perini é o professor supervisor das atividades complementares dos cursos de CCO e BSI.

Os alunos devem entregar cópias dos certificados que comprovem as atividades juntamente com a ficha de registro preenchida para o professor Perini na faculdade.

Seguem abaixo links com os regulamentos dos dois cursos e a ficha de registro das atividades complementares:

CCO_Regulamento Atividades Complementares

BSI_Regulamento Atividades Complementares

Ficha de Registro Atividades Complementares

Fundamentos de Python

No dia 31/01/2019 teremos na Unimetrocamp Wyden a Oficina de Introdução a Programação de Drones.

Segue abaixo, apresentação mostrando os fundamentos da programação Python, que será utilizada na oficina.

Fundamentos de Python

Oficina de Programação Python

A próxima Oficina de Programação Python acontece no dia 28/01/2019, ministrado por mim, na UniMetrocamp Wyden, fazendo parte dos cursos de Férias.

Segue abaixo, o material utilizado na oficina:

Oficina de Python

Curso de Extensão: Técnicas de Programação utilizando Python

Está aberto para inscrições o novo curso de extensão de UniMetrocamp Wyden: Técnicas de Programação utilizando Python.

O curso aconteceu nos dias 15/09 e 22/09. e terá nova data em breve.

No curso Técnicas de Programação utilizando Python da UniMetrocamp | Wyden, você terá a oportunidade de iniciar seus conhecimentos sobre a linguagem de programação Python. Escolha a UniMetrocamp | Wyden para fazer cursos de extensão e faça a diferença.

Ao longo das aulas serão desenvolvidas competências como desenvolver programas de computador para solucionar problemas, escolher a melhor estrutura para desenvolver os programas, com exercícios práticos utilizando a linguagem Python.

Público-Alvo: Estudantes de TI e Engenharia de Computação, Técnicos em TI e pessoas que pretendem aprender uma linguagem de programação.

Conteúdo programático:

  • Itens fundamentais para a representação de programas
  • Algoritmo
  • Tipos de dados
  • Variáveis
  • Entrada e saída de dados
  • Expressões aritméticas e lógicas
  • Estruturas condicionais
  • Estruturas de repetição
  • Funções
  • Vetores e matrizes
  • Interface gráfica.

Coordenador e Professor Responsável: José Carlos Perini, Mestre em Ciência da Computação pela UNIMEP (2008), Especialista em Administração com ênfase em Marketing pela Universidade São Francisco (1995) e graduação em Análise e Desenvolvimento de Sistemas pela Universidade São Francisco (1992). Desde 01/2003 é professor no Centro Universitário UniMetrocamp Wyden.

Contatojose.perini@unimetrocamp.edu.br

O objetivo do curso é abordar as principais estruturas de programação utilizando a linguagem de programação Python com aulas totalmente práticas no laboratório de Informática da instituição.

Para se inscrever, entre no link abaixo:

https://www.wyden.com.br/unimetrocamp/cursos/extensao/informatica/tecnicas-de-programacao-utilizando-python

 

Estruturas de Dados em Java – Recursividade

Estruturas de Dados em Java – Recursividade

Vamos ver neste post, a definição de recursividade, com uma vídeo aula mostrando um exemplo com a linguagem Java.

A recursividade é uma técnica muito utilizada em programação. Ela consiste em uma função que chama a si própria para executar determinada tarefa.

Definição

A estrutura recursiva é uma técnica que consiste em aplicar uma função como parte da definição dessa mesma função.

A recursão é o princípio através do qual um programa ou (mais comumente) uma função chama a si mesma para executar uma tarefa.

A chave do seu funcionamento é a existência de uma condição que a  termine, ou  seja, a execução de uma tarefa não recursiva pela mesma função.

Elementos da recursão

Sempre precisamos identificar 2 elementos para definir um módulo recursivo:

  • O passo recursivo
  • A condição de parada

Exemplo:

return numero * fatorial(numero – 1);

Nesta função, a condição de parada é satisfeita quando numero=1.

As três regras da função recursiva

1.Saber quando parar.

2.Decidir como fazer a próxima ação.

3.Quebrar uma jornada recursiva em um passo mais uma jornada recursiva menor.

Vejam na vídeo aula abaixo um exemplo de recursividade: calculando o fatorial de um número.

Conclusão

A função recursiva é uma forma de programar que, quando o aluno está aprendendo programação, tem muita dificuldade em entender. A minha sugestão é que o aluno exercite bastante, faça todos os exercícios e exemplos, pois só assim começará a entender. Espero que tenham gostado.

Deixem seus comentários.

Abraços!

Comandos úteis do Eclipse

Comandos úteis do Eclipse

Disciplinas: Programação Orientada a Objetos e Estruturas de Dados Aplicadas

Para quem está começando a trabalhar com o IDE Eclipse para desenvolver programas em Java, existem alguns comandos ou teclas de atalho que facilitam o trabalho. Segue abaixo alguns desses comandos:

1.       Digite Ctrl + Shift + F

  • O eclipse irá organizar o código, identando da forma correta. 

2.       Digite syso e em seguida Ctrl + espaço

  • O eclipse irá transformar o syso em System.out.println(); 

3.       Digite JOpt e em seguida Ctrl + espaço

  • O eclipse irá transformar o JOpt em JOptionPane, e irá inserir o import javax.swing.JOptionPane; no início do arquivo.

4.       Após a palavra JOptionPane, digite somente o caracter ponto (“.”).

  • O eclipse irá abrir uma caixa com as opções disponíveis do JOptionPane.
  • Digite após o JOptionPane. os caracteres sho. O eclipse irá filtrar a janela de opções com os comandos showXXX, conforme figura abaixo:

 

5. Para aumentar ou trocar a fonte no editor do Eclipse:

Window / Preferences / Appearance / colors and fonts

Java / Properties file editor text font (Edit…)

Livros relacionados:

Dominando Eclipse. Edson Gonçalves.

Eclipse IDE: Dicas e Truques. Edson Gonçalves.

Eclipse 3.1: Programando com Visual Editor. Ivan José de Mecenas Silva.

 

 

 

Funcionamento básico do Eclipse

 

Funcionamento básico do Eclipse para Programação Java

Disciplinas: Programação Orientada a Objetos e Estruturas de Dados Aplicadas

O Eclipse é uma IDE (Integrated Development Environment ou Ambiente Integrado de Desenvolvimento) muito utilizada para desenvolver programas em Java. Segue uma video aula que mostra o funcionamento básico do Eclipse para desenvolver programas Java.

Lembrando que, dependendo da velocidade da conexão, pode ficar parando o video, se isso acontecer, clique em pause, espere alguns minutos e depois clique em play novamente.

 

 

Livros relacionados:

Dominando Eclipse. Edson Gonçalves.

Eclipse IDE: Dicas e Truques. Edson Gonçalves.

 

 

 

 

 

 

Video aula para configurar as variáveis de ambiente no Java

Video aula para configurar as variáveis de ambiente no Java

Disciplina: Algoritmos

Segue abaixo a vídeo aula para ajudar meus alunos a configurarem as variáveis de ambiente para compilar e executar programas em Java através do prompt de comandos.

 

Lembrando que, dependendo da velocidade da conexão, pode ficar parando o vídeo. Se isso acontecer, clique em pause, espere alguns minutos e depois clique em play novamente.

 

 

 

 

 

 

 

Comandos de saída em Java

Veja neste artigo as formas mais comuns de apresentação de dados na linguagem Java 

Disciplinas: Algoritmos, Programação Orientada a Objetos e Estruturas de Dados Aplicadas

Toda linguagem de programação tem várias maneiras de apresentação de resultados. A linguagem Java não é diferente. E quem está iniciando os estudos nessa linguagem sempre tem dúvidas de qual maneira é melhor de utilizar. Neste artigo vou apresentar algumas sugestões. Neste momento será abordado apenas um comando de ambiente de interface gráfica (GUI – Graphical User Interface), da classe JOptionPane. É claro que, se estivermos utilizando esse ambiente, existem várias outras maneiras de apresentação de dados.    

1.   Métodos da classe System

A exibição de dados pode ser feita através dos métodos println() e print() do objeto out, disponível estaticamente por meio da classe System, que se encontra no pacote java.lang (portanto não é preciso importar essa classe para utilizar em nossos programas).

Segue o exemplo abaixo:

 

public class SaidaDeDados1 {

public static void main (String[] args) {

// Exemplo de saída com print e println:

String nome = “Jose Carlos Perini”;

int idade = 25;

float altura = 1.65f;

System.out.println(“Meu nome: “+ nome);

System.out.print(“Minha idade: “);

System.out.println(idade);

System.out.println(“Minha altura: ” + altura);

}

}

 

Abaixo, a compilação e execução do programa via prompt de comandos:

saidadedados1

 

 

 

 

 

 

 

 

Figura 1: Compilação e execução do programa no prompt

Vemos no exemplo que a diferença entre os comandos print e println é que o primeiro imprime na tela e não faz a quebra de linha. Já o comando println faz a quebra de linha após a impressão da mensagem.

Esses comandos de exibição de tela exibem no prompt de comandos. Caso esteja sendo utilizada uma IDE como o Eclipse, a exibição se dará no console.

2.   Método da classe JOptionPane

Uma das maneiras mais práticas de exibição de mensagens, mesmo para quem está começando a aprender a linguagem, é o método showMessageDialog da classe JOptionPane, que se encontra no pacote javax.swing (portanto, para a utilização dessa classe, devemos utilizar o comando import no início do programa).

Segue abaixo o mesmo exemplo utilizando esse tipo de exibição.

import javax.swing.JOptionPane;

public class SaidaDeDados2 {

public static void main (String[] args) {

// Exemplo de saída com print e println:

String nome = “Jose Carlos Perini”;

int idade = 25;

float altura = 1.65f;

JOptionPane.showMessageDialog(null,”Meu nome: ” + nome + “\n”+

“Minha idade: ” + idade + “\n”+

“Minha altura: ” + altura );

}

}

Abaixo, a compilação e execução do programa via prompt de comandos do novo exemplo:

saidadedados2

 

 

 

 

 

 

 

 

 

Figura 2. Compilação e execução do exemplo 2

Vemos no novo exemplo que a exibição é feita através de uma caixa de diálogo. Vemos também que foi utilizado um caractere de escape ‘\n’ para fazer a quebra de linha. Na chamada do método showMessageDialog utilizamos dois parâmetros. O primeiro indica a posição que a caixa de diálogo aparecerá (null significa que ficará no centro da tela). Se estivermos numa interface gráfica, no lugar de null colocamos em qual frame queremos que a mensagem seja apresentada.

O segundo parâmetro é exatamente o que queremos apresentar.

Como no primeiro exemplo, na mensagem nós concatenamos a mensagem com os valores das variáveis nome, idade e altura.

Esse método apresenta mais alguns parâmetros para podermos configurar, como mostra abaixo:

JOptionPane.showMessageDialog(null,”Meu nome: ” + nome + “\n”+

“Minha idade: ” + idade + “\n”+

“Minha altura: ” + altura, “Dados a meu respeito”, 2);

 

Dessa maneira, apresentará assim:

saidadedados3

 

 

 

 

 

Figura 3. Parâmetros do método showMessageDialog

O número 2 altera o ícone para sinal de alerta. As opções que temos são:

 

Propriedade

Descrição

Número correspondente

ERROR_MESSAGE Mensagem de erro 0
INFORMATION_MESSAGE Informação 1
WARNING_MESSAGE Alerta 2
QUESTION_MESSAGE Pergunta 3
PLAIN_MESSAGE Mensagem plana (sem ícone) Não tem número correspondente. Nesse caso, no lugar do número devemos colocar:JOptionPane.PLAIN_MESSAGE

Conclusão 

Nesse artigo mostramos as duas formas mais comuns de apresentação de dados na linguagem Java. O próximo artigo tratará das entradas de dados.

Comandos de entrada em Java – parte 2 (classe Scanner)

Veja neste artigo outra forma muito comum de entrada de dados na linguagem Java – a classe Scanner

Disciplinas: Algoritmos, Programação Orientada a Objetos e Estruturas de Dados Aplicadas

Prosseguindo o assunto entrada de dados na linguagem Java, vamos apresentar outras maneiras de input de informação para um programa Java.

1.    A classe Scanner

Scanner é uma classe que utilizamos para fazer a leitura de dados digitados no modo Console. A classe tem vários métodos, que recebem a String digitada e convertem para o tipo correspondente à variável que guardará essa informação.

A classe Scanner se encontra no pacote java.util. Por isso, para ser utilizada, devemos importá-la utilizando uma diretiva import.

A classe Scanner deve ser instanciada da seguinte forma:

Scanner entrada = new Scanner(System.in);

 

Métodos da classe Scanner:

– String nextLine() – Lê a próxima linha da entrada.

– String next() – Lê a próxima palavra da entrada (delimitada por um espaço em branco).

– int nextInt(), double nextDouble() e float nextFloat() – Lê a próxima sequência de caracteres que representa um número inteiro ou número de ponto flutuante.

Segue o exemplo abaixo:

entrada2Codigo

 

 

 

 

 

 

 

 

 

 

 

 

 

Figura 1: o código exemplo

Segue abaixo, a compilação e execução do programa via prompt de comandos:

entrada2

 

 

 

 

 

 

 

 

 

Figura 2: Entrada de dados com a classe Scanner

Vemos no exemplo que os dados são inseridos no console e atribuído às variáveis através dos métodos da classe Scanner. Observamos também que ao digitar a altura, devemos digitar com a vírgula em vez de ponto, como é comum no sistema decimal americano.

Se estivermos utilizando uma IDE como o Eclipse, a entrada dos dados será através da console. Segue abaixo o exemplo:

entrada2Eclipse

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Figura 3: Utilizando a classe Scanner no Eclipse

 Conclusão

Nesse artigo mostramos como entrar com dados através da classe Scanner. É importante ressaltar que também essa forma é utilizada apenas em ambiente de desenvolvimento, para testar as funcionalidades do programa.

 

Formatando a saída de números decimais

Formatando a saída de números decimais em Java

Disciplinas: Algoritmos, Programação Orientada a Objetos e Estruturas de Dados Aplicadas

Nas minhas aulas os alunos me perguntam como tratar a saída de números decimais quando há muitas casas após a vírgula, ou até mesmo quando o resultado é uma dízima periódica. Há muitas maneiras de fazermos isso no Java, mas existem duas maneiras simples de resolvermos esse problema. Um deles é arredondando o número através do método Math.round().

A outra forma é criarmos uma máscara de formatação através de um objeto da classe DecimalFormat. Para explicar direito essas duas maneiras, eu criei uma video-aula. Segue abaixo:

Estruturas de Repetição em Java e C/C++

Veja neste artigo as estruturas de repetição que temos nas linguagens Java e C/C++

Disciplinas: Algoritmos, Programação Orientada a Objetos e Algoritmos e Programação de Computadores

O objetivo deste artigo é passar pelas estruturas de repetição nas linguagens Java e C/C++, uma vez que os comandos são iguais para as duas linguagens, só mudando os comandos de entrada e saída. Estruturas de repetição são blocos de comandos que são repetidos diversas vezes de acordo com determinadas condições.

  • Uma estrutura de repetição é um fluxo de controle utilizado para decidir quantas vezes determinado conjunto de comandos se repetirá dentro do programa.
  • Uma estrutura de repetição determina qual conjunto de comandos ou bloco será executado após uma condição ser avaliada.
  • Enquanto esta condição estiver retornando verdadeiro, o conjunto de comandos será executado, parando somente quando o resultado da avaliação da condição for falsa.

Nas linguagens Java e C/C++, temos as seguintes estruturas de repetição: for, while e do… while.

 

  1. For
  • Uma estrutura de repetição for pode ser utilizada quando o algoritmo precisa ter definido a quantidade de vezes que um conjunto de comandos deve ser executado.
  • Neste caso, a variável de controle, sua inicialização e finalização bem como sua atualização fazem parte do cabeçalho da estrutura de repetição for e o conjunto de comandos dentro da estrutura é executado a quantidade de vezes determinada no cabeçalho desta estrutura.
  • Note que nesta estrutura de repetição, pode ocorrer do conjunto de comandos não ser executado nenhuma vez.

Exemplo da estrutura for:

Vamos supor que queremos somar 10 números inteiros digitados pelo usuário, e mostrar o total da soma e a média dos números digitados.

 

ExemploFor

Figura 1. Exemplo de for

 

Vemos neste exemplo o cabeçalho da estrutura for na linha 6. O cabeçalho se divide em três partes. A primeira parte é a inicialização da variável de controle i. É essa variável que controlará a quantidade de vezes que o bloco de comandos será executado. Na segunda parte está a condição para que o bloco de comandos seja executado. O bloco será executado sempre que essa condição (i < 10) for verdadeira. Na terceira parte encontra-se o incremento da variável de controle (i++ ou seja, i = i+1).

Nas linhas 7 e 8 está o bloco de comandos que será executado tantas vezes quanto a condição for verdadeira.

No exemplo da figura 1 foram digitados os números de 1 a 10. Dentro da estrutura os números foram somados e guardados na variável soma. Após a estrutura de repetição foi calculada a média dos números digitados, e em seguida apresentados os resultados da soma e da média. Veja abaixo o mesmo exemplo na linguagem C/C++.

ExemploForC

Figura 2. Exemplo de for em C/C++

Segue abaixo o teste de mesa do exemplo.

TesteMesaFor1

Figura 3. Teste de Mesa

O objetivo do teste de mesa é testar o algoritmo para verificar se está correto. A ideia é seguir os passos do programa como se estivesse executando.

 

  1. While

 

A estrutura while tem a mesma finalidade da estrutura for, com algumas características diferentes. O while não tem um cabeçalho como na estrutura anterior. Portanto, a inicialização da variável de controle deve ser feita antes da estrutura. E também o seu incremento deve ser feito após a execução do bloco de comandos e antes de fechar a chave da estrutura. Segue abaixo, o mesmo exemplo utilizando o while.

ExemploWhile

Figura 4. Exemplo de while.

No mesmo exemplo utilizando a estrutura while, verificamos que na linha 6 está a inicialização da variável de controle i. E na linha 10 está o incremento da variável (i++).

Percebemos, então, que o que fazemos com o for podemos fazer também com o while. Mas ambos têm as suas características bem peculiares. Quando sabemos qual a melhor estrutura para utilizar? O for é a melhor estrutura quando sabemos a quantidade de vezes que os comandos serão executados. Por exemplo, se quero somar 10 números, eu sei que será executado 10 vezes, tendo a variável i iniciando do 0 e terminando quando i chegar a 10. Veja abaixo o mesmo exemplo em C/C++.

ExemploWhileCFigura 5. Exemplo de while em C/C++

Mas e se eu quiser que o usuário vá digitando vários números inteiros para somar, e só parar quando digitar 0? Neste caso o while é mais apropriado. Segue abaixo um exemplo.

ExemploWhile2

Figura 6. Exemplo de while 2

Neste exemplo, a variável de controle não é mais o i, mas o número que está sendo digitado. Enquanto não digitar 0 o laço não encerrará. Nem precisaria do i se eu não quisesse calcular a média. Percebe-se que o while já inicia verificando se o n é diferente de zero. Então há a necessidade de atribuir um valor a esse variável, desde que não seja zero. No exemplo acima foram digitados os números 10, 15, 7 e 0.

ExemploWhile2C

Figura 7. Exemplo de while 2 em C/C++

Do … While

A estrutura do…while também tem a finalidade de repetir os comandos dentro de sua estrutura. A diferença entre esta e as outras estruturas vistas é que o teste da condição é feito ao final dos comandos. Segue abaixo o mesmo exemplo com a estrutura do…while.

ExemploDoWhile

Figura 8. Exemplo de do…while

Neste caso não há a necessidade de inicializar a variável n. A diferença básica entre o do…while e os dois anteriores é que, pelo menos uma vez o bloco de comandos é executado, pois a condição é testada após a execução dos comandos. Veja abaixo o exemplo em C/C++.

ExemploDoWhileCFigura 9. Exemplo de do..while em C/C++

  1. Controle dos laços

 Apesar dos laços terem a sua condição de parada, que é quando a condição testada for falsa, podemos utilizar alguns comandos para interromper essa iteração. Segue abaixo:

  • break

O break quebra o laço antes que a condição seja satisfeita. Por exemplo, no exemplo acima eu poderia verificar se o n é igual a 0. Se acaso positivo, dou um comando break. Este comando simplesmente interrompe o laço naquele momento.

  • continue

O comando continue interrompe a iteração em que está e continua o laço. Por exemplo, no programa anterior, vamos supor que eu quero somar todos os números digitados menos o número 10. Eu posso verificar se n é igual a 10. Se for, dou o comando continue antes de somar.

 

Conclusão

 

Nesse artigo mostramos as estruturas de repetição e suas particularidades nas linguagens de programação Java e C/C++. O mais importante no aprendizado de qualquer linguagem de programação é exercitar bastante o que aprendemos. Programação se aprende com bastante exercício e bastante prática. Bons estudos!

Convenções de Código Java

Convenções de Código para Programação Java

Disciplinas: Algoritmos, Programação Orientada a Objetos e Estruturas de Dados Aplicadas

Muitos alunos, quando começam a aprender Java dizem que a linguagem é muito difícil, por ser case-sensitive, isto é, diferencia maiúsculas de minúsculas. Eu digo que, se a gente aprender e se acostumar com as convenções de código, isto é, as regras para desenvolver os programas, não terá mais esse problema, saberá o que deve ser maiúscula e o que deve ser minúscula. Segue abaixo essas regras.

Classes e interfaces: A primeira letra deve ser maiúscula e, se várias palavras forem escritas juntas para formar o nome, a primeira letra de cada palavra interna deve ser maiúscula (um formato chamado em inglês de “camelCase”). Para classes, os nomes devem normalmente ser substantivos. Exemplos: Cliente,  ContaCorrente Para interfaces, os nomes devem normalmente ser adjetivos. Exemplo: Runnable – Executável

Métodos: A primeira letra deve ser minúscula, e depois as primeiras letras das outras palavras devem ser maiúsculas.

Por exemplo: getNome, setNumero, calculoMedia 

Variáveis: Como nos métodos, começando com a letra minúscula. A Sun recomenda usar nomes curtos e significativos. Exemplos: mediaBim, nota, nome 

Constantes: As constantes Java são criadas marcando-se variáveis como static e final. Elas devem ser nomeadas usando-se letras maiúsculas com caracteres underscore como separadores. Exemplos: ALTURA_MINIMA, ALIQUOTA  O restante da codificação Java (palavras reservadas, declaração de tipos primitivos) deve ser tudo minúsculo. 

 

Fonte: SCJP Certificação Sun para Programador Java 6 – Kathy Sierra, Bert Bates – Alta Books

Prof. Perini – Programação Java

Prof. Perini – Programação Java

Email: jcperini@uol.com.br