Busca

Road trippin' w ma 2 fav allies

Tag

ensino

RV e Ensino

Pra liberar espaço no meu dropbox comecei a vasculhar meu arquivos e apagar algumas coisas antigas. De repente, me deparo com dois vídeos de um projeto que havia feito no 3º período do meu curso, enquanto cursava a disciplina de Computação Gráfica e pesquisava no LabTEVE (temas relacionados a Realidade Virtual). #nostalgia

Trata-se do LabSEF: Laboratório para Simulação de Experimentos Físicos. (dava pra ser mais criativo com esse nome :P)

Enfim… sempre gostei de física, daí aproveitei a disciplina pra fazer uma navegação em um mundo virtual 3D de modo que o estudante pudesse simular alguns experimentos. Ah.. também dava pra navegar no ambiente com estereoscopia (aka visão 3D).

Paper: Um Laboratório Virtual Tridimensional e Interativo para Suporte ao Ensino de Física

 

Anúncios

Paper Accepted – WEAC 2012

Full paper publicado no WEAC sobre o desenvolvimento de um simulador gráfico de instruções do processador didático proposto por Tanembaum [1]. Trabalho da disciplina Arquitetura de Computadores, ministrada pelo prof. Hamilton.

Anais do WSCAD-WEAC 2012 em  http://www.dpi.ufv.br/projetos/weac2012/anais_weac2012.pdf

[1] A. S. Tanenbaum, “Organização Estruturada de Computadores”, Editora Prentice-Hall. 2006.

WEAC – Workshop sobre Educação em Arquitetura de Computadores

Workshop sobre Educação em Arquitetura de Computadores (WEAC 2012) será realizado em conjunto com os eventos do WSCAD-SSC em Petrópolis, entre os dias 17 e 19 de outubro de 2012. A principal meta deste workshop é prover um ambiente (fórum) para professores, pesquisadores e estudantes trocarem, compartilharem e discutirem suas experiências, novas ideias e resultados de pesquisas em todos os aspectos e tópicos relacionados com a educação (aprendizado e ensino) em Arquitetura de Computadores. Os artigos podem abordar estudos de caso, relatos de experiência, propostas de novas idéias, tópicos para discussão, ensaios para reflexão, ou apresentações de ferramentas. O programa do workshop será composto de apresentações de artigos, palestras e painéis de discussão.

C++ simple details

Para utilizar o “cout”:

#include <iostream>// one of two
using namespace std; // two of two, yay!
int main(void){

cout << "A";

return 0;

}


Para utlilizar o “malloc”:
#include <cstdlib>

Para criar uma array 3D com 1’s:
int n = 5; // Tamanho da matriz
int *** matrix = (int***) malloc(n*sizeof(int**));
for (int i=0; i < n; i++){

matrix[i] = (int**)malloc(n*sizeof(int*));

for (int j=0; j < n; j++){

matrix[i][j] = (int*) malloc(n*sizeof(int));

for (int k=0; k < n; k++){

matrix[i][j][k] = 1;

}

}

}


Em java é bem mais fácil né… =P
Essa p%$# de C++ tem que ser bem mais rápida pra compensar..
(kkkkkkkkkkkkk)

Um pouco de Shell Script

Nessa sexta resolvi aprender um pouco de Shell script para automatizar algumas atividades do laboratório…

Achei que seria um pouco difícil e boring de aprender, mas por incrível que pareça, nenhum dos 2, completamente fácil e na verdade interessante. O shell script abre um mundo de novas possibilidades. É uma linguagem interpretada pelo bash (normalmente chamada de shell, o terminal do linux), e como as maiorias das linguagens de script/programação, possui as principais características básicas necessárias à programação: declaração de variáveis, funções, parametrização, e é claro, estruturas conficionais (if-else, case) e iterativas (for, while).

O script sh que eu fiz tem o objetivo de receber 2 vídeos como argumento, gerar a quantidade de cópias dele fornecida pelo nº de processos (também um argumento), e executar um programa C++ que recebe os vídeos como argumento e realiza um processamento dos mesmos medindo seu desempenho. O grande motivo de eu ter gerado esse sh, é pq eu quero facilitar e tornar mais rápido os testes de desempenho dos mesmos, podendo variar facilmente os vídeos, e a quantidade de processos paralelos.

Abaixo, o código na forma de imagem (mais compreensível).

Shell script
Código do Shell Script

Explicando os pontos principais:

  • #!/bin/bash
A primeira linha obrigatoriamente começa com um “#!” (que não é comentário por causa do “!”), informando qual interpretador ele deverá usar, juntamente com seu caminho. Existem outros interpretadores, porém esse é o mais utilizado. A lista de interpretadores instalados no sistema pode ser identi ficada através do comando “cat /etc/shells”.
  • NUMPROCESSOS=$1
Declaração de variável recebendo primeiro argumento do sh. Nome da variável deve ser “colada” ao = e seu respectivo valor. $0 == nome do script, $1 == primeiro argumento, $2 == segundo argumento, …, $# == nº de argumentos.
  • if [ -f “$VIDEOPRINCIPAL” ] && [ -f “$VIDEOSECUNDARIO” ] #verifica existencia dos arquivos de video
O “if” deve possuir um teste que vem entre colchetes []. O “-f” verifica existência de um arquivo. O $VIDEOPRINCIPAL me dá o valor da variável. E o # indica comentário.
  • echo ‘Arquivos encontrados’;
O “echo” imprime na console.
  • for NUM in $(seq 1 $NUMPROCESSOS) #recopio os vídeos N vezes
Realizo um “for” com uma sequencia de  1 até o valor de NUMPROCESSOS, fornecido pelo argumento.
  • cp $VIDEOPRINCIPAL ${VIDEOPRINCIPAL%%.ts}-${NUM}.ts
O “cp” é um comando do próprio linux, que me permite copiar o arquivo. Em ${VIDEOPRINCIPAL%%.ts}-${NUM}.ts através de um regex eu retiro o .ts da string, e adiciono o número da iteração ao fim (Ex.: video-3.ts).
  • dist/Debug/GNU-Linux-x86/./gtaaas \”${VIDEOPRINCIPAL%%.ts}-${NUM}.ts\” \”${VIDEOSECUNDARIO%%.ts}-${NUM}.ts\” \”4\” &
Está dentro do outro “for”, e serve para executar o programa C++ (com o &, já que vou executar vários paralelamente) com os vídeos recém-criados sendo passados como argumentos.

Tá aqui os 3 tutoriais que usei, bem simples, para iniciantes mesmo.

Paper Accepted – CSBC (WEI) 2011

Em um dos posts anteriores já havia comentado sobre esse projeto em que eu, Erick, Berg, Kívio, Igor, Glauco e o prof. Hamilton trabalhamos.
Já estamos trabalhando para disponibilizá-lo na Web, para que ele possa ser utilizado por everybody.
=P

Title: Ambiente de Simulação Gráfica 3D para Ensino da Arquitetura de Processadores

Resumo:
Em arquitetura de computadores, um dos desafios é conseguir que os alunos compreendam o funcionamento de um processador corretamente. Para auxiliar esta tarefa são utilizadas aplicações que simulam essas arquiteturas. A partir dessas barreiras do ensino, se propôs desenvolver uma aplicação que simula visualmente as instruções de uma arquitetura didática e implementável. Tais instruções podem ser visualizadas, tanto com quanto sem pipeline, o que facilita a compreensão desse conceito, e do funcionamento de um processador enquanto realiza uma instrução.

Abstract:
In Computer Architecture, one of the challenges is getting the students to understand the workings of a processor correctly. To assist in this task, applications are used to simulate these architectures. From these barriers of education, is proposed the development of an application that visually simulates the instructions of an implementable and didactic architecture. Such instructions can be visualized, both with and without pipeline, which facilitates the comprehension of this concept, and of the operation of a processor while executing an instruction.

Desenvolvimento de um simulador 3D para a cadeira de Arquitetura

Hoje foi apresentado (Erick) nosso trabalho sobre o simulador 3D para o ensino da arquitetura de processadores…

Decidi escrever um pouco porque achei a experiência bastante interessante.
O prof. Hamilton achou de fato um meio com que nós aprendêssemos de forma eficaz o que ele estava ensinando. Nos pediu para que fizéssemos uma aplicação gráfica para a simulação do funcionamento do processador. E isto realmente nos forçou a aprender o funcionamento dos processadores, sendo que de maneira mais prazerosa (pelo menos pra mim).

Primeiro foi preciso escolher que tecnologias utilizar, levando em conta facilidade de desenvolvimento e poder da linguagem. Daí sugeri utilizarmos o X3D, pois tem uma fácil integração com java que nos permite adicionar interatividade a cenários 3D. Então, fiquei encarregado de dar uma mini-aula, mostrando como se construía modelos 3D com a linguagem, e como se adicionava interação com a mesma. (Slide da apresentação abaixo.)

Desse ponto, dividi a modelagem dos registradores & cia entre alguns colegas, e fiquei encarregado de montar a animação de uma instrução para que servisse de modelo para os outros poderem fazer outras instruções. Neste meio tempo, alguns erros foram cometidos quanto ao funcionamento da animação, acredito que fizemos uma 2 animações erradas. Inicialmente achávamos que sabíamos o que era o pipeline do processador, mas só depois que mostramos uma animação ao professor, ele nos apontou onde estávamos errando.

Enfim, conseguimos gerar uma versão desktop (figuras abaixo), feita em java com algumas instruções prontas, sem e com pipeline. Nosso próximo passo, é fazer uma integração na Web da aplicação, via applets. E por último, fazer um upgrade para que o usuário possa escolher uma lista de intruções a ser processadas.

Este slideshow necessita de JavaScript.

Blog no WordPress.com.

Acima ↑