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:

Para você fazer o estágio, deve se matricular na disciplina de Estágio (matriz G5).

Os alunos da grade antiga (não G5) não precisam se matricular.

Não percam os prazos para entregar os documentos.

Orientacoes estagio 2019.2

Segue o vídeo com as orientações:

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.

Obs.: Para os alunos da grade antiga, a carga horária é de no mínimo 100 horas (para ambos os cursos).

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

Oficina de Programação Python

A próxima Oficina de Programação Python acontecerá no dia 25/06/2019, ministrado por mim, na UniMetrocamp Wyden, fazendo parte de seus cursos de férias. Todos podem se inscrever, mesmo não sendo aluno da faculdade.

Segue abaixo, o material utilizado na oficina:

Oficina de Python

Abaixo, o material com as resoluções dos exercícios:

Oficina de Python com respostas

Aula 13 – Lógica de Programação

Está no ar em meu canal de youtube a aula 13 do curso de Lógica de Programação. A aula é sobre Matriz. Se você ainda não assistiu às aulas desse curso, entre no canal, se inscreva e assista às aulas gratuitamente.

Curso de Lógica de Programação

Está acontecendo um curso de Lógica de Programação no meu canal de youtube. Entre lá, se inscreva e assista às aulas.

http://youtube.com/profperini

Apresentação do curso de Lógica de Programação

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

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!