Coder Social home page Coder Social logo

schnorr / mlp Goto Github PK

View Code? Open in Web Editor NEW
19.0 19.0 11.0 11.2 MB

Disciplina de Modelos de Linguagens de Programação - INF/UFRGS

TeX 41.09% Prolog 6.84% Ada 6.40% C 23.47% Pascal 1.31% Objective-C 4.23% Java 3.53% C++ 7.05% Assembly 2.12% Makefile 3.98%

mlp's People

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

mlp's Issues

sugestão jupyter notebook

a uma tecnologia chamada jupyter notebook é usada para analise de dados utilizando-se de varias linguagens e para fins educativos.Recomendo para MLP seria de bom uso.É open source.

Controlar tamanho da fonte dentro de listings

Estou tendo problemas para acertar o tamanho da fonte para apresentar o código-fonte no relatório. Ela fica demasiadamente grande e parte do código se perde, ficando "fora da folha". As alternativas que encontrei em buscas na internet não resolveram (em verdade pouco alteraram a saída). Creio que apenas reduzir o tamanho dos espaços dentro do ambiente já resolveria o problema, mas não consigo fazer isso também.

Ausência de notas de aula (slides são insuficientes para estudos)

Notas de aula: Alguns CATP's não são tão fáceis de conseguir material para que nos auxilie na sua resolução. Exemplo: CATPS 4, 8 e 9. Fora alguns exercícios de outros CATPs. Os slides são um resumo do que o senhor falou em aula, mas sozinhos não cobrem todo o conteúdo abordado em aula de forma satisfatória. Ou seja, é complicado estudar apenas pelos slides. Se tivéssemos notas de aula na disciplina, ia ajudar muito para um entendimento mais aprofundado sobre cada tópico.

CATP 9 - Exercício 9

A seguinte struct:

struct chave {
char name[9];
struct {
char c;
char k;
} element_yielded;
int x;
};

possui 16 bytes,

1º palavra de 8 bytes = 8 primeiros caracteres de name

A segunda palavra é:
2º palavra de 8 bytes = nono char + c + k + x + 1byte jogado fora
ou
2º palavra de 8 bytes = nono char + c + k + 1byte jogado fora + x

Há esse alinhamento interno dentro da palavra de 8 bytes? A resposta diz que é a segunda opção, porque não poderia ser a primeira opção?

Obrigado.

Ausência de ponteiros bibliográficos de cada aula

Bibliografia: Sim, nós temos um conjunto de bibliografia na página da disciplina. Mas em cada aula, poderia ser dito qual a sessão de cada livro que poderia ser lida para se aprofundar melhor sobre determinada parte do conteúdo. Alguns professores do instituto fazem isso para facilitar a procura; e para nós, alunos, termos noção de onde eles se baseiam para preparar suas aulas e avaliações.

Não é possível fazer o make

Ao entrar no diretório de conteúdos e fazer o make para gerar o pdf ocorrem diferentes erros(até agora sempre para na pasta exceções)

Trecho dos erros que obtive:

emacs -batch implementacao.org --funcall org-babel-tangle
Symbol's function definition is void: org-babel-tangle
make[1]: * [implementacao.pdf] Error 255
make: * [all] Error 2

``Wrote /home/aluno/Downloads/mlp-master/conteudo/aulas/excecoes/implementacao.tex
Processing LaTeX file ./implementacao.tex...
(Shell command failed with error)
Searching for program: is a directory,
../../Makefile.base:2: recipe for target 'implementacao.pdf' failed
make[1]: *** [implementacao.pdf] Error 255
make[1]: Leaving directory '/home/aluno/Downloads/mlp-master/conteudo/aulas/excecoes'
Makefile:2: recipe for target 'all' failed
make: *** [all] Error 2

Ausência de listas de exercícios (CATPs não são suficientes)

Falta de exercícios: CATP's são um ótimo exercício, mas querendo ou não eles já contam como uma avaliação. Poderíamos ter uma lista de exercícios que nos mostrassem exemplos de resolução, principalmente daqueles que é difícil de encontrar material.

Tail Call Optimization (apresentar no contexto de subprogramas, recursão)

Sugestão de ex-aluna da disciplina.

Em resumo, estou tendo mais contato com a linguagem Scala e ouvi, pela primeira vez, sobre tail call optimization. Fiquei bem surpresa, pois achei a ideia muito interessante e não me recordo de ter tido contato com isso em nenhum momento no curso de CIC. Achei que se encaixa bastante no escopo da disciplina de MLP e, como, por enquanto, não sou tua aluna e gostei muito da tua abordagem na disciplina - de uma forma mais prática e com tecnologias atualizadas, pensei que talvez essa técnica pudesse ser mostrada nas aulas em que vemos recursão. Obviamente, é só uma sugestão inocente.

Mais sobre tail call na Wikipedia para evitar exceções de stack overflow.

CATP #10

Professor, acredito que a questão 3 esteja com erros no meio da expressão a ser avaliada, tem uns "" perdidos no meio.

Outra coisa, na questão 2, a transformação tem que ter exatamente a mesma ordem de operações ou só o mesmo resultado? Por exemplo, posso mudar a ordem que as multiplicações vão ocorrer e coisas assim

Fornecer um relatório de submissões dos CATPs

O emprego de formulários no Google Forms não permite que o aluno mantenha um rastreamento (e uma cópia) do que já foi entregue em cada CATP. A entrega é portanto realizada no escuro, sabendo que as respostas não serão alteradas e sem lembranças posteriores do que foi realmente entregue. O uso de um arquivo ORG no GitHub, ainda que acessível diretamente, não permite a criação automática de um calendário com os prazos. O moodle, como ferramenta EAD alternativa, fornece todas essas funcionalidades.

CATP 18

O tempo de 5 segundos para calcular o fatorial recursivo é muito alto. Como o fatorial é O(n), achar um x tal que fatorial(x) leve 5 segundos pra executar seria um x que causaria stack overflown na recursão em qualquer linguagem(desconsiderando tail call optimization).
Não poderíamos assumir um tempo menor pro pior caso?

Abraços,
Lucas

Referências bibtex

Muitos grupos tem dúvidas em como formatar referências em formato bibtex. Esta issue tenta fornecer algumas direções para auxiliá-los a absorver este mecanismo de gerenciamento de referências perfeitamente integrado com o desenvolvimento de documentos com latex.

Deve-se criar um arquivo auxiliar com um nome que se terminar frequentemente por .bib, por exemplo referencias.bib. Este arquivo, então em formato bibtex, deve seguir esta formatação com informações adicionais sobre o formato na wikipedia em inglês e português. Cada entrada bibtex no arquivo tem uma chave, que é utilizada no texto com o comando \cite{chave} e assemelhado.

Supondo que o arquivo documento.tex contém o texto do documento e comandos \cite{chave}, para compilar (um PDF, por exemplo), basta:

pdflatex documento.tex
bibtex documento
pdflatex documento.tex
pdflatex documento.tex

Com isso haverá a criação de um arquivo documento.pdf. É importante verificar a saída do segundo comando pdflatex após o comando bibtex para confirmar que não há nenhuma referência ou citação quebrada. Para que a lista das referências possa aparecer no documento final, é importante que o arquivo documento.tex tenha (no local apropriado), o seguinte código:

\bibliographystyle{plain}
\bibliography{referencias}

Assumindo que as entradas bibtex estão em um arquivo referencias.bib.

Trabalho Final: Delegates

Olá,
O último requisito da versão orientada a objetos é definir e utilizar delegates. Entretanto, existe bastante definições e tipos diferentes de delegates na internet. Gostaria de saber se o seguinte código de exemplo é suficiente para satisfazer o critério do trabalho.

class View {
    
  void show() {
    print("View.show()");  
  }
    
}

class Screen {

  private View view; // delegation link
  
  public Screen(View view) {
    this.view = view;
  }

  void show() {
    view.show();
  }
  
}

View view = new View();
Screen screen = new Screen(view); // establish delegation between two objects
screen.show(); //View.show()

CATP #7

Na especificação do CATP #7 não é informada a ordem em que os parâmetros das regras deve estar. A correção será feita manualmente ou poderias informar a ordem correta?

CATP #17

Estou com dificuldade em identificar e corrigir os erros do imsobuggy. O valgrind está apresentando erros como:

==54554== Use of uninitialised value of size 8
==54554==    at 0x10060D24E: objc_initializeClassPair_internal(objc_class*, char const*, objc_class*, objc_class*) (in /usr/lib/libobjc.A.dylib)
==54554==    by 0x1005AE6C5: _libxpc_initializer (in /usr/lib/system/libxpc.dylib)
==54554==    by 0x1000FE9C9: libSystem_initializer (in /usr/lib/libSystem.B.dylib)
==54554==    by 0x10001BCC7: ImageLoaderMachO::doModInitFunctions(ImageLoader::LinkContext const&) (in /usr/lib/dyld)
==54554==    by 0x10001BEC5: ImageLoaderMachO::doInitialization(ImageLoader::LinkContext const&) (in /usr/lib/dyld)
==54554==    by 0x1000170D9: ImageLoader::recursiveInitialization(ImageLoader::LinkContext const&, unsigned int, char const*, ImageLoader::InitializerTimingList&, ImageLoader::UninitedUpwards&) (in /usr/lib/dyld)
==54554==    by 0x10001706C: ImageLoader::recursiveInitialization(ImageLoader::LinkContext const&, unsigned int, char const*, ImageLoader::InitializerTimingList&, ImageLoader::UninitedUpwards&) (in /usr/lib/dyld)
==54554==    by 0x100016253: ImageLoader::processInitializers(ImageLoader::LinkContext const&, unsigned int, ImageLoader::InitializerTimingList&, ImageLoader::UninitedUpwards&) (in /usr/lib/dyld)
==54554==    by 0x1000162E7: ImageLoader::runInitializers(ImageLoader::LinkContext const&, ImageLoader::InitializerTimingList&) (in /usr/lib/dyld)
==54554==    by 0x10000572D: dyld::initializeMainExecutable() (in /usr/lib/dyld)
==54554==    by 0x10000A78E: dyld::_main(macho_header const*, unsigned long, int, char const**, char const**, char const**, unsigned long*) (in /usr/lib/dyld)
==54554==    by 0x1000044F5: dyldbootstrap::start(macho_header const*, int, char const**, long, macho_header const*, unsigned long*) (in /usr/lib/dyld)

Parecem ser erros de alguma biblioteca. Porém, como faço para corrigir esses erros? Tentei verificar se não é o próprio programa que causa esses erros, mas não cheguei a nenhuma conclusão.

Imagens fora de lugar no relatório

Dúvida de aluno. Estou com um problema no relatório: como o latex se preocupa com a questão estética do relatório gerado, algumas imagens que deveriam vir após algum texto estão sendo colocadas em outras seções para ficarem melhores encaixadas. Não estou conseguindo "forçar" a imagem a ficar onde quero, que é após o texto que referencia a imagem. Alguma solução?

Dúvida capt2

Olá!
Fiquei com uma dúvida na especificação do catp2.
Está escrito nos exercícios que o programa deve retornar uma lista, mas, os exemplos de saída estão no formato " [1] 1 2 3 ", que foi dito que não é realmente uma lista. Queria saber se é nesse formato mesmo ou no formato que a função list(1,2,3) retorna:
[[1]]
[1] 1
[[2]]
[1] 2
[[3]]
[1] 3
Obrigada!
Laura

CATP #8

Não é possível dar "ENTER" ( ou \n ) no input dos exercícios 2 - 6 no formulário, assim as respostas ficam confusas e difíceis de ler. Seria possível alterar o tipo do input para permitir quebras de linha?

Questionario 9 - Questao 9

Oi, professor e colegas! Não entendi porque a estrutura Chave ocupa 16 bytes e não 24.
Para mim seria:

Nome | Nome | Nome | Nome | Nome | Nome | Nome | Nome |
Nome | lixo | c. | lixo | k | lixo | lixo | lixo |
x | x | x | x | lixo | lixo | lixo | lixo |

Tamanho da fonte em listings

Estou tendo problemas para acertar o tamanho da fonte para apresentar o código-fonte no relatório. Ela fica demasiadamente grande e parte do código se perde, ficando "fora da folha". As alternativas que encontrei em buscas na internet não resolveram (em verdade pouco alteraram a saída). Creio que apenas reduzir o tamanho dos espaços dentro do ambiente já resolveria o problema, mas não consigo fazer isso também.

Nomes, vinculação, escopo e closures em JavaScript

O código abaixo (HTML com JavaScript) abaixo ilustra o comportamento de escopo na linguagem JavaScript na procura por variáveis. Para testar, coloque o conteúdo em um arquivo .html e abra em um navegador (por exemplo, no firefox, mas pode testar em diferentes navegadores para ver se a implementação da linguagem difere). Identifique se o escopo é dinâmico ou estático baseado nas respostas.

<!DOCTYPE html>
<html>
  <body>
    <button onclick="main()">Clique para ativar a função</button>
    <h4>Resultado do print 01 -></h4>
    <p id="print01">...</p>
    <h4>Resultado do print 02 -></h4>
    <p id="print02">...</p> 
    <h4>Resultado do print 03 -></h4>
    <p id="print03">...</p> 
    <h4>Resultado do print 04 -></h4>
    <p id="print04">...</p> 

    <script type="text/javascript">
i = 0;
var x = 1;
function inc (n) {
    x = x + n;
}

function print () {
	switch(i){
		case 0: document.getElementById("print01").innerHTML = x; 
			i++;
			break;
		case 01:document.getElementById("print02").innerHTML = x; 
			i++;
			break;
		case 02:document.getElementById("print03").innerHTML = x; 
			i++;
			break;
		case 03:document.getElementById("print04").innerHTML = x; 
			i++;
			break;
	}
}

function primeiro () {
    inc (7);
    print ();
}

function segundo () {
    let x = 9;
    inc (3);
    print ();
}

function main(){
    inc (-1);
    primeiro ();
    print ();
    segundo ();
    print ();
}
</script>
</body>
</html>

Mais detalhes sobre vinculação em JavaScript podem ser encontrados na disciplina MATA56 da UFBA.

Máquina Virtual

Uma máquina virtual (com Debian/Linux Testing) identificada por MLPBox.ova foi criada para a implementação dos trabalhos práticos em R e Prolog, assim como o trabalho final da disciplina, caso tenham interesse. Ela tem um tamanho de 2.2GBytes e está no formato ova, para uso com Virtual Box. O par login/senha para logar como usuário normal é aluno/aluno, enquanto que a senha de root é MLPBox. As ferramentas necessárias rstudio (com pacotes tidyverse, feather) já encontram-se instaladas.

Ela estará disponível para download até o dia 17/09.

CATP11

1)Implementa em C++ um tipo de dados Fila que trabalhe com qualquer tipo.
Use templates.
Com tal definição, implemente uma pilha de pilha de pilha de inteiros.

É uma FILA ou uma PILHA?

é um erro de enunciado ou realmente é uma classe FILA que internamente é uma Pilha?

Lista de exercicios como CATPS

Fiz todos CATPS e estudei por eles alem dos matérias e não vi muitos resultados,seria bom o ultimo antes de uma prova ser de questões para estudo, de marcar que sejam corrigidas de forma automática para poderem ser de grande quantidade e serem mais fácil de implementar,também pode ter uma lista de questões para estudos para a recuperação.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.