Can you get the loop? #Codewars

No final do ano passado meu namorado me mandou esse site super legal para treinar Algoritmos (sempre bom): Code Wars. Porque eu curti? É mais amigável, a comunidade é mais ativa e você cria um clã com seus amigos. Ainda que você seja iniciante, ele te sugere problemas mais difíceis para você ir treinando, além de mostrar as soluções de outros participantes para você analisar e aprender boas práticas depois de submeter sua solução. E já que falamos de clãs, quem quiser entrar no meu, aí vai o link: entre no meu clã! =D

Semestre passado, vimos algumas Estruturas de Dados e dentre elas, listas encadeadas. Daí resolvi resolver um Kata para revisar nas férias e postar aqui para discutir com vocês.

O problema

Pode ser acessado aqui e a seguir a descrição:

You are given a node that is the beginning of a linked list. This list always contains a tail and a loop.
Your objective is to determine the length of the loop.
For example in the following picture the tail’s size is 3 and the loop size is 11.

Portanto, a solução requer descobrir a posição do tail (que será o nó cujo conteúdo se repete) para retornar o tamanho do loop. O que eu fiz foi criar um dicionário e armazenar os conteúdos dos nós até encontrar um que se repete – o tail. A partir daí, rodei outro while para retornar o tamanho do loop. O código em Python pode ser visto a seguir:


def loop_size(node):
    my_dict = {} 
    p = node // node é o head que foi passado como argumento
    my_dict[node] = p //inicializando dicionário com o conteúdo de node
    
    while p.next not in my_dict: 
        p = p.next
     
    my_dict[p] = p
    tail = p // ao sair do loop eu acho o tail, pois é ele que repete
    
    t = tail
    size = 1 
    while t.next != tail: 
        t = t.next
        size +=1
        
    return size

Sei que é possível resolver esse problema sem utilizar dois whiles, mas por enquanto fica essa solução e depois eu posto novamente o código refatorado, pois ainda preciso estudar mais sobre dicionários. Curtiram? =P

“Mais rápido e melhor”: como alcançar seus objetivos

Em Mais rápido e melhor, Charles Duhigg faz um exploração inovadora da ciência da produtividade e por que, no mundo de hoje, como você pensa é muito mais importante do que o que você pensa. Com base nas últimas descobertas da neurociência, psicologia e economia comportamental Duhigg explica que as pessoas, empresas e organizações mais produtivas não apenas agem diferente, elas veem o mundo de modos profundamente diferentes. Elas sabem que produtividade tem a ver com fazer escolhas. A maneira como tomamos decisões; as grandes ambições que colocamos em primeiro lugar e as metas fáceis que ignoramos; a cultura que estabelecemos para estimular a inovação; o modo como interagimos com as informações que temos diante de nós: é isso que separa os simplesmente ocupados dos genuinamente produtivos.

Sempre achei interessante aquelas pesquisas da Psicologia e Neurociência sobre comportamento humano e acredito que esse conhecimento seja algo essencial para saber lidar com as pessoas de forma eficiente e produtiva nos dias de hoje. Você já se perguntou porque algumas conseguem alcançar seus objetivos e outras não? O que pessoas bem-sucedidas têm em comum e o que você pode aprender com elas? Eu sim e sempre quis saber mais sobre a vida delas (aka Beyoncé).

Tudo isso me fez começar a ler esse livro. Nesse post vou falar sobre alguns pontos que achei mais interessantes.

1 – Mapas mentais

Não há como negar: auto-motivação, foco e produtividade estão ligados. Para ter foco é preciso ter automotivação, para se automotivar é preciso ter controle das suas ações, para ter controle das suas ações é necessário ser produtivo. Uma forma de juntar tudo isso é praticar mapas mentais no dia a dia:

Pessoas que sabem administrar a própria atenção e que têm o hábito de construir modelos mentais robustos tendem a ganhar mais dinheiro e tirar notas melhores. Além do mais, experimentos demonstram que qualquer um pode aprender a desenvolver o costume de construir modelos mentais. Quando criamos o hábito de contar para nós mesmos histórias sobre o que acontece à nossa volta, aprendemos a aguçar a nossa atenção. Esses momentos de narração podem ser simples, como, a caminho do trabalho, tentar imaginar uma reunião iminente — fazer esforço para imaginar como ela começará, quais questões você levantará se o chefe pedir algum comentário, que objeções seus colegas talvez façam —, ou podem ser complexos, como uma enfermeira que diz a si mesma que aspecto um bebê deve ter enquanto atravessa uma UTI neonatal. Se você quer aprimorar sua sensibilidade para os detalhes no trabalho, cultive o hábito de imaginar, com o maior grau de especificidade possível, o que espera ver e fazer quando chegar à sua mesa […] Se você precisa melhorar a concentração e aprender a evitar distrações, tire um instante para imaginar, com o máximo possível de detalhes, o que está prestes a fazer. É mais fácil saber o que vem adiante quando temos um roteiro bem formulado dentro da cabeça.

Achei essa parte super interessante, pois é uma prática facilmente aplicável! Vou implementar esse ano e creio que ajudará a diminuir a ansiedade. Esse capítulo ainda fala sobre o mito de sermos multitarefas (nunca fomos xD).

2 – Metas SMART

Como ainda estamos no início do ano (embora algumas pesquisas apontem que quase 80% das pessoas já esquece das metas feitas no fim do ano a partir do dia 15 de Janeiro), você deve lembrar quais metas você prometeu a si mesma(o) que faria esse ano, certo? Acontece que, se você apenas pensou ou só colocou no papel sem detalhar as próximas ações para uma delas, sinto informar que as chances de você alcançá-las são bem mínimas e vai ficar só sendo uma promessa mesmo.

Uma meta para ser alcançada precisa ser uma meta SMART (traduzidas ficam):

Específico
Mensurável
Realista
Atingível
Cronograma

Porquê elas funcionam?

[…] o motivo é que processos de determinação de metas como a metodologia SMART obrigam as pessoas a converter aspirações vagas em planos concretos. O processo de fazer com que um objetivo seja específico e demonstrar que ele é atingível inclui compreender quais são os passos necessários — ou mudar ligeiramente a meta, se os propósitos iniciais se mostram pouco realistas. Formular um cronograma e um modo de estimar o sucesso impõe ao processo uma disciplina que nenhuma boa intenção supera. […] para que essa meta seja mais do que apenas uma aspiração, precisamos de um quadro mental disciplinado que nos mostre como transformar um propósito remoto em uma série de objetivos realistas de curto prazo.

É preciso ter cuidado para não cair na tentação de criar metas pequenas apenas para ter a sensação de estar no controle (sabe aquela sensação boa de riscar uma tarefa da agenda? é disso que to falando)! Você precisa ter ambição, mas aliada a um sistema que te faça detalhar os próximos passos nos próximos dias, na próxima semana, no próximo mês… Tudo isso faz com que suas metas sejam coerentes com seus objetivos de curto, médio e longo prazo. Isso é o que David Allen chama de Horizontes no seu método de produtividade Getting Things Done.

3 – Metodologias Ágeis

A cultura de dedicação da NUMMI simplesmente me deixou sem fôlego. A Toyota transformou uma das piores empresas de automóveis dos EUA em uma empresa bem sucedida, com seus funcionários produtivos e felizes por trabalhar lá. Como conseguiram isso? É resultado do que a cultura de dedicação consiste:

[…] esta é uma das lições mais importantes que lugares como a NUMMI e as filosofias enxutas e ágeis transmitem: os funcionários trabalham melhor e de forma mais inteligente quando acreditam que têm mais autoridade para tomar decisões e quando creem que seus colegas estão dedicados ao sucesso deles. Uma sensação de controle pode impulsionar a motivação, mas, para esse sentimento produzir ideias e inovações, as pessoas precisam saber que suas sugestões não serão ignoradas, que seus erros não serão motivo de retaliação.

Interessante, não?! Já falei um pouco sobre isso neste post aqui. Foi legal de ler sobre esse assunto num livro que não tem aparentemente nada a ver com software (:

4 – Concluindo

Esses foram só alguns casos que quis falar aqui, para deixar vocês com vontade de ler =D
Duhig fala de várias empresas e pesquisas super interessantes e no final do livro, ainda faz um ‘roteiro’ de como aplicar os conhecimentos que ele estudava no nosso dia a dia e como isso o ajudou a terminar o livro. Até a próxima!

Manual de sobrevivência 2016.2

É com muita alegria que vos falo neste post, pois minha meta desse ano em relação à faculdade era passar em todas e consegui!!

ai que alegria e sufoco!

Foi muito puxado, pensei em desistir de uma matéria, maaaaas tem que perseverar e nunca desistir! Essa foi uma lição muito importante que aprendi esse ano e que repasso a quem tiver lendo esse post =D

Bom, aí vão os links que me ajudaram para sobreviver a este semestre, separados por disciplina (olha como sou legal xD):

Algoritmos II

Pois bem, esse semestre a matéria mais legal foi a de Algoritmos, onde estudamos recursão, algoritmos de ordenação, busca binária, análise de algoritmos e algumas estruturas de dados. Links super úteis:

Algorithms, Part I

Curso gratuito online, se joga!

Sorting Algorithms

Playlist muito didática para quem curte aprender por vídeos.

Data Structures

Idem.

Visualising data structures and algorithms through animation

Esse site é muito legal e foi meu amigo Márcio quem me mandou. Bem colorido e didático.

Dica que vale passar sem sufoco: às vezes você acha que entendeu, mas é só praticando que terá certeza e verá os pontos que não compreendeu, portanto, implemente os algoritmos antes das provas!

Cálculo I

Segunda matéria mais legal!! Cálculo é muito legal e vou deixar também alguns links de vídeos e sites que me ajudaram a compreender melhor os conteúdos: limites, derivadas e introdução ao cálculo integral.

LCM Aquino

Segunda vez que esse canal me ajuda, gosto das explicações dele, pois sempre mostra as provas dos teoremas, além de muitos exemplos.

Toda a Matemática

Esse canal também é muito legal e o professor sempre posta vídeos curiosos do mundo da Matemática.

Wolfram

Site para calcular tudo que você imaginar. Tem plano com desconto para estudante, onde você tem acesso à solução e pode verificar suas respostas (:

Organização e Arquitetura de Computadores

Consegui passar de boa, então você também consegue xD Aí vão os links:

Introdução a Arquitetura de Computadores

Livro muito bom e necessário para a matéria. Tem poucos conteúdos online que explicam tão bem quanto este livro e que seguem a mesma ementa do Senac (:

Memória Principal

Vídeo que me salvou na primeira prova =D

Projeto Integrador II – Jogo educacional 2D

Graças a meu professor, pude desenvolver o mesmo jogo do meu projeto de Iniciação Científica em Python. O link tá no meu github e vocês podem conferir o meu =D
Nesse PI não posso ajudar muito aqui, a não ser incentivar a criar um jogo que você goste muito da ideia (:

Álgebra Linear

Playlist salvadora

Khan Academy

É isso, espero que isso seja útil e até mais!

Meu 2016 em livros

Olá, pessoal! Quanto tempo, né? Agora que estou oficialmente de férias, vou escrever mais por aqui para compensar a parada, pois conheci e aprendi coisas novas bem legais esse ano e queria compartilhar com vocês 😀

No início do ano, eu tinha estabelecido uma meta de ler 30 livros esse ano, porém mal sabia eu o quão corrido seria esse segundo semestre, por isso baixei a meta para 20. Resultado? Já li 20 e estou terminando mais 3, então, não foi tão longe do que pensei no início do ano.

Quero agora indicar os livros que mais gostei, claro. Esse ano decidi ler coisas mais diversificadas do que costumava ler e isso foi muito bom, pois me mostrou a importância de sair da zona de conforto. Acabei lendo mais sobre motivação, pensamento positivo e organização financeira. O restante vocês podem conferir na imagem:

Meu 2016 em livros

Os que mais gostei foram:

1 – How to Bake Pi – Eugenia Cheng

Ainda não terminei de ler, mas é muito legal! Já falei da Eugenia Cheng por aqui e comprovo que ela é realmente sensacional: Matemática é linda e infelizmente a escola nos faz odiá-la, mas compreendê-la hoje é fundamental. Cheng junta duas coisas que aparentemente não têm nada de comum: raciocínio lógico e culinária. Recomendo para quem queira dar uma segunda chance para a Matemática ou para quem curte cozinhar (:

2 – A Arte de pedir – Amanda Palmer

Esse livro foi indicação da minha querida amiga Amanda e adorei! Livro sensacional que mostra o quão frágil nossa vida é, mas o quão leve ela se torna quando temos pessoas especiais ao nosso lado, além de lutar pelo que acreditamos.

3 – Trabalhe 4h por semana – Tim Ferris

Se você não leu esse livro até agora, VÁ AGORA e me agradeça depois.

4 – Girlboss – Sophia Amoruso

Fazia tempo que queria ler e achei na promoção, então comprei. Livro muito inspirador, apenas! E nos faz refletir sobre o poder de ir em busca do que gostamos, independente do que vão pensar de nós.

5 – Adeus, aposentadoria – Gustavo Cerbasi

Na metade do ano pra cá, minha amiga Amanda (isso que é amiga, hein, aprendam!) me recomendou o canal da Nathália Arcuri, o Me poupe! um canal de informações e entretenimento financeiros. Minha vida mudou desde então e estou sempre indo atrás de aprender mais sobre investimentos, tesouro direto, metas, objetivos e por aí vai! Recomendo muito e tenho certeza de que, se colocar em prática pelo menos metade do que ela fala, seu 2017 vai ser bem melhor do que 2016! =D Ela indicou alguns livros e entre eles é o Adeus, aposentadoria, do Gustavo Cerbasi. Livro mais do que fundamental para o cenário econômico do nosso país.

A maioria desses livros estão disponíveis para baixar, por isso, não tem desculpa para não ler xD E você, o que leu de legal esse ano? É isso, espero que vocês curtam alguns e leiam os que indiquei. Com tudo que li esse ano com certeza em 2017 terá muito mais.
Até mais!

Compreendendo Recursão

Muito bem, semestre começou com tudo e estou aprendendo muita coisa nova! Uma delas que estou vendo agora é Recursão. Se você já ouvi falar de Algoritmos, provavelmente já deve ter ouvido falar de Recursão também. De acordo com o material da nossa aula

um processo recursivo é um processo que implementa uma relação de recorrência. Uma relação de recorrência é uma expressão matemática utilizada para expressar uma equação de recorrência.

Wait, what? Vamos por partes, pois esse é um conceito muito difícil de ser compreendido, mas vale a pena, prometo. O mais legal de se aprender recursão é criar algoritmos menores e mais bonitos (embora nem sempre seja o mais eficiente!). Resumindo, uma função recursiva vai chamar a si mesma e retornando os valores de cada chamada, até chegar no caso base.

Calma, não é mágica! Acredito que uma das maiores dificuldades seja compreender os passos para escrever uma função recursiva para que esta não caia num loop infinito. Por isso é preciso ter atenção às duas partes essenciais de uma chamada deste tipo e verificar com números inteiros o problema até que você entenda o que será o caso base e a chamada recursiva a partir do exemplo a seguir:

Considere um vetor de inteiros de tamanho n. Uma função recursiva que calcule o produto dos elementos estritamente positivos de um vetor de inteiros v [0..n-1].

 int produto (int v[], int n) {
     if(n == 1){
   	 return v[0];
     }
     if(v[n-1] > 0){
   	 return v[n-1] * produto(v, n-1);
    }
	return produto(v,n-1);
 }

O caso base – Essa é a parte que você sabe o resultado e deve se aproximar na próxima etapa. No exemplo abaixo, vemos que o caso base é a condição if (n == 1) return v[0];, pois quando o vetor chegar até o primeiro elemento, não há mais necessidade de se calcular o produto, certo?

A chamada recursiva – Esta deve ser quebrada em pedaços menores até atingir o caso base. No nosso exemplo, fazemos duas chamadas distintas. Caso o elemento da posição v[n-1] a ser testada seja positiva, então retornamos return v[n-1] * produto(v, n-1); , caso contrário, chamamos a função para continuar a descrescer o valor de n até atingir o valor de 1, nosso caso base.

O que a função faz é o seguinte. Vamos supor que o nosso vetor v[4] = {1, 2, 3, 4} e o tamanho do vetor seja n = 4.

produto(v, 4)

v[3] * produto(v, 3)
v[3] * v[2] * produto(v, 2)
v[3] * v[2] * v[1] * produto(v, 1)
v[3] * v[2] * v[1] * v[0]
>> 4 * 3 * 2 * 1 = 24

Esse exemplo foi retirado desse material e está disponívelneste link. Veja também outras formas de usar a recursividade para resolver o mesmo problema (:

Vá fazendo com calma cada passo para não se perder (o que é muito fácil) e compreender como o computador entende essas chamadas (vale printar todas as entradas para ver o valor de retorno a cada chamada). Dá um trabalho e sua cabeça buga por um momento (ou dias xD), mas seu código fica mais bonito e te deixa com uma sensação maravilhosa de finalmente aprender Recursão 🙂

Como aprender a programar

Olá, pessoas queridas! Este post é uma compilação que resolvi fazer com mais links  e dicas para ajudar a galera que quer aprender a programar. Vale lembrar que, assim como tudo que aprendemos na vida, não se trata de mágica, mas de um processo, então, anime-se para começar a ver as coisas de outro jeito! Abaixo algumas dicas e links para vocês 🙂

1 – Programar se aprende programando

Sei que parece loucura, mas é como aprender outa língua: você tem que praticar para aprender. Neste sentido, sinta-se feliz porque existem muitos sites legais com este propósito!! Acredito que o mais importante é não se preocupar em entender TUDO, ir com calma e paciência.

Embora sejam muitas opções de links e de cursos e parece que você saber disso tudo em 1 dia, não se desespere. Veja cada um e escolha o que melhor você sentir afinidade. Alguns sites que eu usei e recomendo são:

Code.org – um jeito divertido de aprender Algoritmos! Recomendo fortemente, pois é muito importante dominar Lógica de Programação e além disso, é uma proposta bem legal (tem até tutorial com tema de Star Wars!).

Codecademy – tutoriais com várias opções bem legais.

Code School – Gosto muito deles e as aulas são em vídeo. Alguns são pagos, mas dá para fazer uns gratuitos.

Udacity – Também possuem aulas em vídeo e acho mais dinâmico que o CodeCademy, por exemplo.

Made with Code – um projeto muito legal para atrais meninas para programar 🙂

2 – Tenha um projeto que você queira fazer

Sabe aquele app que você sempre quis fazer? Ou um sistema que vai ajudar alguém da sua família? Uma das melhores e mais eficientes formas de se aprender a programar é ter um projeto pessoal, assim você vai se sentir mais motivad@ e confiante. Nessas horas, ajuda muito também pegar um código de qualidade por aí e modificar algumas coisas.

Por que aprender a programar? Ora, tudo que gostamos é feito de código!

3 – Tenha um(a) mentor(a)

Sério, isso é MUITO importante. Já falei isso aqui várias vezes e acho que nunca é suficiente: procure alguém que já tenha experiência para ajudar com suas dúvidas (não é para ficar perguntando tudo, hein). Sabe quando você tentou e mesmo assim não entendeu, ou quer entender mais sobre algo? Não tenha medo de perguntar.

4 – Divirta-se!

Isso é o mais importante e necessário ter em mente. Com isso, sinta-se bem vind@ ao mundo mágico da Programação!

 

Você não precisa ser um gênio para cursar Exatas

Faz algum tempo que queria discutir esse assunto e recentemente me deparei com a matéria abaixo e me senti mais motivada para escrever. Durante muito tempo evitei entrar para a área de “Exatas” porque durante minha vida, encontrei pessoas extremamente arrogantes nessa área e acreditava ser um pré-requisito para entrar nesse mundo mágico de gênios. De forma alguma queria ficar no meio dessas pessoas.

Ainda bem que conheci pessoas maravilhosas que me mostraram haver uma luz no fim do túnel e hoje entendo o que acontece de fato. Não vou entrar na discussão sobre Humanas x Exatas porque não é o foco e acredito que isso não leva a lugar algum. No entanto, queria abordar mais o que significa ser cientista e como propiciar uma formação de profissionais voltada à resolução de problemas, não havendo espaço para ego nem show de talentos.

Hoje tenho vários amigos de Computação que fazem Pós-Graduação e me sinto motivada para seguir esse caminho também. No entanto, fico um pouco triste quando discutimos o lado não tão bonito dessa etapa acadêmica. A matéria da Carta Capital Precisamos falar sobre a vaidade na vida acadêmica resume bem esse problema nas universidades:

“A formação de um acadêmico passa por uma verdadeira batalha interna em que ele precisa ser um gênio. As consequências dessa postura podem ser trágicas, desdobrando-se em dois possíveis cenários igualmente predadores: a destruição do colega e a destruição de si próprio. […] Hoje, como professora, tenho preocupações mais sérias como estes alunos que acreditam que os colegas são brilhantes. Muitos deles desenvolvem depressão, acreditam em sua inferioridade, abandonam o curso e não é raro a tentativa de suicídio como resultado de um ego anulado e destruído em um ambiente de pressão, que deveria ser construtivo e não destrutivo. […] É preciso barrar imediatamente este sistema. A função da universidade não é anular egos, mas construí-los. ”

Além disso, o fato de que cada vez mais entram pessoas que já sabem programar nos cursos de Computação faz com que o nível de exigência aumente e apenas os experientes ou os gênios concluem os cursos. O problema é que quem entrou para aprender (o quê, aprender na universidade? que mundo você vive?) fica achando que não deve estar ali e bom, qual o significado mesmo de “universidade”?

Um outro problema que advém disso é a constante arrogância de quem já sabe. Seu coleguinha é gênio? Seu outr@ coleguinha sempre sabe de tudo? Toque aqui! Acontece que Exatas não é um caminho linear. Foi isso que mais adorei nessa matéria aqui Mathematicians are chronically lost and confused (and that’s how it’s supposed to be). Eles falam sobre o processo de aprender Matemática e a lindeza de ser humilde, além de ser absolutamente normal e humano não saber de tudo.

Não esqueça de nunca se desesperar xD

Esse post se trata mais de escrever sobre algo que me incomoda e de motivação para futuros cientistas. Se tem algo que aprendi nessa vida foi: não devo me comparar à ninguém. Meu caminho é único e sei das minhas qualidades e das minhas limitações. Mas, para não ficar só na discussão, aqui vai um post motivacional de pessoas fodonas da programação¹ (são essas pessoas que você deve seguir como inspiração). E lembre-se: os verdadeiros cientistas não têm muita certeza sobre muita coisa (:

¹ http://www.infoworld.com/article/3085150/application-development/dont-just-code-career-advice-from-the-programming-masters.html

 

Fita de Möbius e Escher

Este ano na Semana Unificada de Apresentações do Senac tivemos uma atividade bem legal com a profa. Danielle dos Santos Mingatos (Dani para os conhecidos xD). Foi uma atividade de integração entre os cursos de Ciência da Computação e Engenharia de Computação.

A Dani falou do Escher (já tem post aqui sobre a oficina do ano passado) e fizemos algo beeeem legal: a fita de Möbius! August Ferdinand Möbius foi um matemático alemão do século XIX e ficou bem conhecido com a fita que levou seu nome. Mas não se engane, não é qualquer fita não: trata-se de uma superfície bidimensional não orientada com um lado passando a ser tridimensional no espaço euclidiano quando uma das pontas é torcida (ufa!).

Escher captou bem esse conceito e criou várias obras com essa temática, inclusive se chamam Fita de Möbius. Fica aí a dica de pesquisa para você se divertir nas férias =D

No canal do Numberphile tem dois vídeos muuuito legais com o Tadashi brincando com isso! À medida que você for vendo, tenho certeza de que você terá essa reação:

Adoro este canal, pois eles sempre fazem coisas interessantes e explicam numa linguagem possível de ser compreendida por qualquer um. Como o Tadashi fala, Matemática quando apresentada com uma postura divertida e envolvente É MUITO LEGAL, já o contrário, bom, relembre suas aulas de Matemática :/ (eu foi só trauma, espero que com você não xD).

Escher e seus loops infinitos

Já falei também da professora Eugenia Cheng e ela também postou um vídeo sobre Möbius, mas com…. bagels!

É isso, espero que curtam os vídeos! Tentem fazer em casa também, tenho certeza que vai ser divertido:)

 

Manual de sobrevivência do 1º semestre

Como eu transferi minha matrícula do tecnólogo para Computação, acabei aproveitando 4 disciplinas, por isso estava inscrita em Geometria Analítica, Introdução à Computação e Projeto Integrador I. Neste post vou falar um pouco de materiais e links para você se divertir (porque nem só de estudo vivemos!).

Geometria Analítica

Uma das matérias que mais me desesperei. Jurava que não ia passar, mas nada que sentar bunda e estudar pra valer não resolva. Eu não tive aulas de Geometria na escola, portanto, foi algo bem novo pra mim e tive muita dificuldade em entender os conceitos, ainda mais com essa abordagem super abstrata. Isso me deu até umas ideias para o Projeto Integrador do semestre q vem :), que será um jogo educacional usando a biblioteca Allegro, em C.

Quem me ajudou muito foram as aulas desse professor baiano que você pode ver no canal de GA. Ele segue a abordagem vetorial que a minha professora segue também. Esse material aqui aqui também ajudou muito! Quanto ao aprendizado, desculpa relembrar amiguinh@s, mas não existe segredo! É praticar muito e tentar sempre compreender o que acontece, tirando dúvidas e fazer exercícios extras, se possível.

Algoritmos e Programação I

O livro Elementos de Programação em C é gratuito para estudantes Senac e foi passado como leitura obrigatória. Para mim, C é algo bem diferente e desafiador, pois eu tive contato apenas com linguagens de alto nível (Ruby e Python <3). Também curti muito esse canal sobre Introdução à Programação em C e Ponteiros. Fizemos muitos exercícios do URI e esse foi o diferencial: é programando que se aprende a programar.

Pré-Cálculo

Eu estudei muito pelo canal do Grings e Khan Academy. Encontrei também este material aqui em inglês. Sem mistério também, tem que estudar e fazer as listas! (:

Introdução à Computação

Quando eu tiver muito dinheiro, vou doar para esse cara aqui, Titio Trevas. Também existem vários PDF’s disponíveis que apresentam mais a teoria. Pensa numa aula em que eu saía em entender nada do que o professor falava! Mas comecei a assistir os vídeos e fazer os exercícios que passei de boa. Não se desespere! É normal seu cérebro não entender tudo, ainda mais para quem não está acostumado a pensar como um computador. 

Projeto Integrador I

Esse eu comecei a ficar realmente preocupada. A proposta era fazer uma figura usando a biblioteca tikZ, em Latex. Foi bem difícil no começo, mas with a little help from my friends (aka Gabriel), deu tudo certo. O que me ajudou bastante foi começar a ligar os pontos usando um plano cartesiano. Eu fiz o relatório e vocês podem baixá-lo clicando aqui para saber mais. O resultado foi essa coisa fofa que vocês veem aí e minha inspiração foi essa animação da Chibird:

nhom nhom :3

PARTE 2

Pixar in a Box <333

pixar_in_A_box

O Khan Academy fez uma parceria muito legal com a Pixar: Pixar in a box! Eles mostram toda a Matemática e a prepração por trás ds animações. Estou fazendo e pretendo finalizar nas férias, para me divertir um pouco. Viu que fofo o monstrinho? 😀

How to Bake a Pi

Descobri essa professora de Matemática fenomenal e me apaixonei. Ela mostra como a Matemática está no nosso dia a dia e nem percebemos e o quanto perdemos por não ver isso. Ela tem um canal no Youtube e um livro que está na minha lista de compras! Eu adoro ver pessoas assim que tentam atrair as pessoas para Matemática, em vez de julgar quem não curte (ainda mais considerando o péssimo ensino que temos, né).

A complexidade sensível: um paralelo entre videogames e arte

Esse curso gratuito no Coursera é uma parceria com a Unicamp e discute jogos sob uma abordagem mais cultural. Achei bem legal, fica aí a dica para quem sempre algo a mais além do fato de jogar 🙂

Concluindo…

Este semestre foi bem intenso e algo que aprendi que fez toda a diferença foi entender a distribuir meu tempo de estudos de acordo com minhas necessidades. Isso é algo só você saberá, então não há fórmula mágica. Lembre-se de sempre respeitar seu ritmo de estudos e de pedir ajuda sempre que precisar (vou falar mais sobre isso em próximos posts, prometo). Isso não é fraqueza, é humano e pedindo ajuda você chega mais longe.

É isso, espero que curtam!

 

Um pouco da história das mulheres na computação

Programming requires patience and the ability to handle detail. Women are ‘naturals’ at computer programming – Grace Hopper

Desde mesmo antes de mudar para TI, eu queria compreender mais sobre como a área de Computação, antes tão receptiva para as mulheres, hoje se tornou uma área masculina, estereotipada e violenta (veja isso e isso).

Na matéria de Introdução à Computação, estamos desenvolvendo uma pesquisa relacionada à evolução da Computação e decidi estudar mais sobre a participação das mulheres no desenvolvimento dessa ciência. Assim que o trabalho estiver pronto, posto aqui (também faremos um vídeo e acho que vocês vão curtir).

Nathan Ensmenger (2010) fala que historiadores da computação só começaram a reconhecer a contribuição crucial das mulheres para a área no começo dos anos 90. Isso justifica o pouco material publicado sobre o assunto. Estou aprendendo coisas muito legais e daqui a pouco compartilho com vocês.

Para terminar, essa foto de uma matéria da Cosmopolitan, de 1967. que espero servir de inspiração para vocês <3

Computer Girls