Blog

A Importância da Educação Formal em um Mundo de Informação Superficial

Vivemos em uma era onde o conhecimento nunca esteve tão acessível. Com a internet, é possível aprender praticamente qualquer coisa de forma gratuita. Iniciativas como o OpenCourseWare do MIT (Massachusetts Institute of Technology) oferecem cursos de engenharia, matemática, física, economia e diversas outras áreas, permitindo que qualquer pessoa com uma conexão à internet acesse materiais das melhores universidades do mundo. No entanto, paradoxalmente, a nova geração tem dedicado mais tempo ao consumo de conteúdo superficial nas redes sociais, especialmente no TikTok, onde os “influencers” viralizam com danças, desafios e informações muitas vezes sem base científica.

A educação formal continua sendo essencial, não apenas pelo diploma, mas pelo desenvolvimento de habilidades críticas, analíticas e metodológicas. Estudar em uma instituição de ensino superior significa ter acesso a professores renomados, pesquisas inovadoras, networking com outros estudantes talentosos e oportunidades que vão muito além do conteúdo teórico. Alunos do MIT, por exemplo, não apenas aprendem sobre teoria da informação ou inteligência artificial, mas também têm acesso a laboratórios de ponta, projetos revolucionários e colaboração com indústrias tecnológicas de elite.

Muitos dos mais brilhantes cientistas e empreendedores passaram pelo MIT, como Richard Feynman, um dos mais renomados físicos do século XX, Claude Shannon, o pai da teoria da informação, e Robert Noyce, cofundador da Intel. Essas mentes moldaram o mundo moderno, criando tecnologias que usamos diariamente. A questão é: quantos criadores de conteúdo do TikTok estarão na história por seu impacto na ciência e tecnologia?

O TikTok e outras redes sociais podem ser entretenimento, mas não substituem uma formação acadêmica rigorosa. Enquanto o MIT ensina conceitos matemáticos avançados, física quântica e engenharia de software com base em décadas de pesquisas e experimentos, muitas das informações que viralizam no TikTok são superficiais, distorcidas e, frequentemente, incorretas. A formação acadêmica ensina a questionar fontes, validar hipóteses e entender a profundidade dos problemas. Já os conteúdos de redes sociais, muitas vezes, apenas reforçam opiniões sem fundamento.

O MIT, considerado a melhor faculdade de tecnologia do mundo, demonstra a importância da educação estruturada e da pesquisa. Se todos têm acesso ao mesmo conhecimento online, por que as empresas ainda preferem contratar quem tem um diploma? A resposta é simples: um curso superior ensina a pensar de maneira estruturada, a resolver problemas complexos e a trabalhar em equipe, habilidades que não podem ser adquiridas assistindo a vídeos curtos de 30 segundos.

Em um mundo repleto de informações superficiais, valorizar a educação formal é essencial para quem deseja fazer a diferença. O acesso ao conhecimento está disponível, mas apenas aqueles que escolhem se aprofundar nele serão capazes de criar o futuro. Cabe à nova geração decidir: seguir os passos dos grandes cientistas ou se perder em distrações efêmeras?

O que é Inteligência Artificial?

O surgimento do ChatGPT e a sua disponibilização ao público levanta diversos questionamentos sobre Inteligência Artificial nos dias de hoje. Mas será que sabemos responder a seguinte pergunta: O que é Inteligência Artificial? Tentarei fazer isso de forma simplista e resumida nas próximas linhas.

Inteligência Artificial (IA) é um campo da ciência da computação que se concentra no desenvolvimento de sistemas e algoritmos capazes de realizar tarefas que normalmente exigem inteligência humana. A IA busca criar máquinas que possam aprender, raciocinar, perceber e tomar decisões de forma autônoma, usando técnicas como aprendizado de máquina, processamento de linguagem natural e visão computacional. Em resumo, a IA se refere à capacidade dos computadores de imitar e executar funções cognitivas associadas à inteligência humana.
 
O termo “Inteligência Artificialfoi cunhado por John McCarthy em 1956. John McCarthy foi um renomado cientista da computação e matemático americano que fez contribuições significativas para o campo da inteligência artificial. Ele organizou a Conferência de Dartmouth em 1956, onde o termo “Inteligência Artificialfoi utilizado pela primeira vez para descrever o estudo de como fazer os computadores realizarem tarefas que requerem inteligência humana. McCarthy também é conhecido por desenvolver a linguagem de programação LISP, que foi amplamente utilizada na pesquisa de IA.
 
Dessa forma, conforme a pesquisa sobre Inteligência Artificial se desenvolvia, surgiram necessidades para abordar desafios específicos e complexos. O problema original foi quebrado em partes, levando à criação de subáreas da IA, cada uma tentando resolver um problema que simulasse uma área da inteligência humana. Neste artigo, exploraremos as seis principais subáreas da Ciência da Computação que compõem a Inteligência Artificial: Aprendizado de Máquina, Processamento de Linguagem Natural, Visão Computacional, Raciocínio Automatizado, Robótica e Sistemas Especialistas.
 
  1. Aprendizado de Máquina (AM): O Aprendizado de Máquina é uma subárea da Inteligência Artificial que se concentra no desenvolvimento de algoritmos e técnicas que permitem que os sistemas aprendam e melhorem sua performance com base em dados. Com o uso de modelos estatísticos e algoritmos, os sistemas de AM podem reconhecer padrões, tomar decisões e prever resultados com base nas informações fornecidas.

  2. Processamento de Linguagem Natural: O Processamento de Linguagem Natural (PLN) tem como objetivo permitir que os computadores compreendam, interpretem e gerem linguagem humana de forma natural. Essa subárea envolve técnicas como análise sintática, reconhecimento de entidades, tradução automática e geração de respostas automáticas, possibilitando a interação entre humanos e máquinas por meio da linguagem.

  3. Visão Computacional: A Visão Computacional está relacionada à capacidade dos sistemas de compreender e interpretar informações visuais, semelhantes à forma como os seres humanos percebem o mundo através dos olhos. Ela envolve técnicas como reconhecimento de objetos, detecção de movimento, segmentação de imagens e reconhecimento facial, possibilitando que as máquinas analisem e compreendam o conteúdo visual.

  4. Raciocínio Automatizado: O Raciocínio Automatizado visa desenvolver sistemas capazes de raciocinar, inferir e tomar decisões lógicas com base em informações fornecidas. Essa subárea envolve o uso de lógica formal, algoritmos de busca, redes neurais simbólicas e técnicas de representação do conhecimento. Todas essas técnicas são utilizadas para realizar tarefas como solução de problemas complexos, automação do planejamento e tomada de decisões inteligentes.

  5. Robótica: A Robótica combina os princípios da Inteligência Artificial com a engenharia de sistemas robóticos. Ela busca criar robôs capazes de perceber o ambiente, interagir com ele e realizar tarefas de forma autônoma. A IA desempenha um papel fundamental na programação e controle dos robôs, permitindo-lhes adaptar-se a diferentes situações, aprender com a experiência e tomar decisões tempestivamente.

  6. Sistemas Especialistas: Os Sistemas Especialistas são programas de computador que utilizam conhecimento especializado para resolver problemas complexos em domínios específicos. Esses sistemas são projetados para resolver problemas complexos e fornecer aconselhamento especializado em áreas como medicina, engenharia, finanças, entre outros. Os sistemas especialistas são construídos a partir de uma base de conhecimento, que contém informações e regras específicas do domínio em questão. Experts humanos compartilham seu aprendizado e experiência com o sistema, que organiza de forma estruturada e o representa de maneira lógica para permitir que o sistema faça inferências e tome decisões.

Vale destacar que essas subáreas muitas vezes se sobrepõem e interagem entre si, e o progresso em uma pode influenciar o desenvolvimento de outras. A evolução contínua da inteligência artificial tem levado ao surgimento de novas subáreas e a uma colaboração cada vez maior entre elas. Essa evolução agora nos é apresentada na forma do ChatGpt que realiza coisas incríveis e nos leva a seguinte pergunta: Um sistema de IA consegue pensar?
 
Não, um sistema de IA não consegue pensar da mesma forma que os seres humanos. A inteligência artificial é capaz de realizar tarefas complexas e tomar decisões com base em algoritmos e modelos matemáticos, mas não possui consciência, emoções ou a capacidade de reflexão e autoconsciência como os seres humanos. Os cientistas projetam a IA para processar grandes quantidades de dados, identificar padrões. Além disso, pode fazer previsões ou decidir com base nessas informações, mas essa tomada de decisão é baseada em regras e algoritmos programados, não em um pensamento consciente.
 

No próximo artigo tentarei responder como funciona o ChatGPT.

Inteligência Artificial para melhorar a relação com clientes

Acabei de ler uma notícia sobre as aplicações da empresa Nuveto, provedora de soluções para contact center na Nuvem, com tecnologias de IA. Eles utilizam Machine Learning para descobrir padrões de comportamento e fatores que resultem em pontos de interesse da companhia nas interações entre clientes e empresa.

Achei interessante a aplicação dos chatbots deles que pode auxiliar mesmo quando o ChatBot não retém o cliente e ele precisa falar com um atendente. Um exemplo são as aplicações capazes de escutar em tempo real o que está sendo dito (ou escrito em uma sessão de Chat) e, com base em toda a experiência adquirida por meio das interações anteriores com outros clientes, emite alertas ao operador indicando sugestões de abordagem, mudanças de linguagem, ofertas de desconto etc. “Este coach virtual baseado em IA é uma ferramenta essencial e primordial, pois os resultados das interações servirão de treinamento para que seja cada vez mais assertiva em suas sugestões”, comenta Leite.

A notícia original pode ser vista em https://inforchannel.com.br/inteligencia-artificial-ajuda-a-fortalecer-relacao-com-os-clientes/.

Como instalar o PIP no Linux

A primeira a coisa a se fazer é verificar a versão do python instalada com o seguinte comando:

python2 --version
ou
python3 --version

Após descobrir a versão utilizamos os comandos abaixo (a escolha deve ser feita de acordo com a sua versão do python):

sudo apt install python-pip
ou
sudo apt install python3-pip

Após a instalação o pip já esta pronto para uso.

Disciplina no Estudo

Muitos concurseiros tentam estudar todo o conteúdo da prova após o lançamento do edital. Essa estratégia está fadada ao fracasso devido a escassez de tempo. Para que se consiga cobrir todo o Edital é fundamental que os estudos sejam iniciados antes do edital. Esta afirmação pode parecer ilógica, pois podemos acabar estudando muitos anos até a abertura do concurso, ou pior, o edital pode ser lançado com disciplinas diferentes do que estamos estudando. Esse é o preço a pagar.

A principal qualidade do concurseiro é a disciplina de estar sempre estudando. Esta regularidade é que cria os aprovados e não métodos mirabolantes que “desvendam o segredo dos concursos”. Não há segredo e nem caminhos fáceis. A melhor analogia que já vi para isto foi feita pelo Professor Granjeiro comparando estudar concursos com uma maratona. Só consegue correr uma maratona quem está em constante treinamento, mesmo os atletas de elite se ficarem sem treinar não conseguem recuperar a forma em um curto espaço de tempo.

Para os que procuram fórmulas mágicas informo que o processo é simples: separar o material, estudar todos os dias, manter o foco, fazer provas de concursos. Seguindo estes passos a aprovação é garantida. Então porque muitos desistem? A questão é que nunca sabemos quanto tempo vai levar até a aprovação. E aí, está disposto a pagar o preço?

Reconhecimento de Voz com Python

Ao ver o Tony Stark (Homem de Ferro) nos filmes da Marvel, sempre dava vontade de ter um assistente virtual como o Jarvis. A Siri, Cortana e Alexa ainda não possuem o mesmo nível de interação. Pesquisando na Internet encontrei o projeto https://kripytonianojarvis.com/site/ que eu achei bem interessante.

Mas acho que ainda não é o que eu quero, então decidi (tentar) criar uma assistente virtual. Sei que não será fácil e esse projeto será uma espécie de hobby.

A primeira parte é a comunicação por voz com o computador, assim preciso que a máquina entenda a minha fala. Nesse post vou mostrar código em python para capturar a fala do microfone e transformar em texto, gravando em um arquivo.

Vamos ao Código.

Instalação das Bibliotecas

pip install SpeechRecognition
pip install pyaudio

Se você estiver no Windows será necessário utilizar:

pip install pipwin
pipwin install pyaudio

Apesar do código não chamar explicitamente o Pyaudio ele é necessário para podermos acessar o microfone. Portanto, é imprescindível que ele esteja instalado corretamente.

Código completo

import speech_recognition as sr


def EscreveArquivo(mensagem):
    try:
        with open("transcricao_audio.txt", "a") as file:
            file.write(str(mensagem) + "\n")
            file.close()
    except:
        print("Erro na Escrita da " + mensagem)


r = sr.Recognizer()
mensagem = ""

while(mensagem != "desligar"):
    with sr.Microphone() as source:
        r.adjust_for_ambient_noise(source)
        print("Diga Algo:")
        audio = r.listen(source)
        print("Hello")


    try:
        mensagem = r.recognize_google(audio, language='pt-BR')
        print("Você falou: " + mensagem)
    except sr.UnknownValueError:
        print("Google Speech Recognition não pode entender o que você falou!")
    except sr.RequestError as e:
        print("Não foram obtidos resultados do  Google Speech Recognition service; {0}".format(e))

    EscreveArquivo(mensagem)

Escrita em Arquivo

import speech_recognition as sr


def EscreveArquivo(mensagem):
    try:
        with open("transcricao_audio.txt", "a") as file:
            file.write(str(mensagem) + "\n")
            file.close()
    except:
        print("Erro na Escrita da " + mensagem)

Essa primeira parte do código tem a importação de biblioteca e a função para escrever o texto transcrito. Isso será importante para no futuro enviarmos a mensagem de texto com comandos para o computador e outros equipamentos. Já pensou ligar a cafeteira com comando de voz. Muito Show!

Reconhecimento de Voz

r = sr.Recognizer()
mensagem = ""

while(mensagem != "desligar"):
    with sr.Microphone() as source:
        r.adjust_for_ambient_noise(source)
        print("Diga Algo:")
        audio = r.listen(source)
        print("Hello")


    try:
        mensagem = r.recognize_google(audio, language='pt-BR')
        print("Você falou: " + mensagem)
    except sr.UnknownValueError:
        print("Google Speech Recognition não pode entender o que você falou!")
    except sr.RequestError as e:
        print("Não foram obtidos resultados do  Google Speech Recognition service; {0}".format(e))

O Reconhecimento de voz é realizado pelo Google Speech Recognition e no nosso exemplo está ajustado para entender o português. Há dois tratamentos de erro. O primeiro erro refere-se ao fato da máquina não entender o que foi dito, já o segundo está relacionado a conexão com a rede do Google. Para tudo funcionar corretamente é necessário ter conexão com a Internet.

O Google Speech Recognition é uma rede neural de treinamento para o reconhecimento de fala. Ela é bem robusta pois na maioria das vezes irá reconhecer a fala sem uma etapa de calibração do timbre de voz.

Interessante notar que o programa funciona até receber, por voz, o comando “desligar”.

Conclusão

Foi escrito um código simples que captura o que foi falado e exibe em formato de texto na tela. Além disso, tudo o que foi falado fica gravado em um arquivo de texto e o programa é encerrado ao falarmos “desligar”.

Para trabalhos futuros iremos acrescentar comandos para que o computador execute tarefas através do comando de voz.

Como Estudar Para Concursos Públicos

Imagem de Free-Photos por Pixabay

O jeito que cada um estuda é peculiar e inerente a cada pessoa, sendo personalíssimo, assim não existe um método perfeito de estudo. Mesmo que você repita os métodos de um concurseiro que conseguiu a primeira colocação em todos os concursos que participou, não há garantias de sucesso.

No início é interessante você pesquisar  métodos diferentes, abrangendo  várias pessoas e escolher aquele que melhor se adapta a você. Com certeza nessa fase da vida, você já deve ter vários métodos de estudo e precisa saber porquê estudar para concurso público é diferente de estudar para uma prova de faculdade, por exemplo. Aqui uso as palavras de Alexandre Meirelles : “Você precisa reter o conhecimento durante um longo período de tempo, por isso, você tem que interagir com o material de estudo.” 

Dessa forma eu vou dar algumas dicas e relatar a forma como eu estudo.

DICAS: 

  1. Não tentar decorar tudo
    • É humanamente impossível decorar todas as informações que você precisará ler, selecione com cuidado o estritamente necessário para decorar.
  2. Procurar ter um entendimento geral da disciplina
    • Como não é possível decorar tudo, você tem que ter uma idéia de como a disciplina funciona para, em muitos casos, responder as questões baseado em um raciocinio analítico. Então, mesmo que você não saiba a resposta exata, conseguirá descobrir a resposta mais provável e com o tempo isso fará uma enorme diferença.
  3. Estudar através das perguntas: 
    • O quê é isso?
    • Para que serve?
    • Quem usa? 
    • Como se usa?
    • Observações Interessantes.
    • Exceções.
    • Essa é a base para a construção de qualquer conhecimento. Tendo essa estrutura como base a assimilação e o entendimento de qualquer assunto ficará mais fácil. Preste muita atenção nas exceções, pois é o que cai com mais frequência em provas.
  4. Manter o estudo constante e realizar provas sempre como “teste”
    • O que funciona aqui é a filosofia do “Treine duro, jogue fácil!”. Você deve fazer simulados da vida real, ou seja, provas de concursos que você não deseja assumir, mas que tenham disciplinas e conteúdos relacionados com o que você estuda.
    • Como você não está preocupado com a aprovação, não precisará ficar nervoso e nem preocupado se estudou tudo ou não. Apenas vá lá e faça o melhor.
    • Isso vai ajudar a você manter a tranquilidade nos dias de prova, resolvendo o maior número de questões corretamente. Não ficar ansioso para fazer uma prova é talvez o bem mais valioso de um concurseiro!
    • Avalie o que você fez de errado e o que fez certo, sempre procurando melhorar para a próxima. Dessa maneira você não fica frustrado com as reprovações e continua sempre estudando até chegar o dia da sua aprovação!
  5. Resolva questões de prova desde o início
    • Não espere terminar toda a matéria para resolver questões, pois você pode estar perdendo um tempo precioso. As questões auxiliam a determinar o rumo do estudo, aprofundar mais determinado assunto ou a procurar novas fontes de informações.

Essa é a minha forma de estudar, espero ser útil para vocês.
Boa Sorte nas provas!

ITIL 4

ITIL (Information Technology Infrastructure Library) é o framework para gerenciamento de serviços de TI (ITSM) mais adotado mundialmente. Define uma abordagem holística ao gerenciamento de serviços, focando no gerenciamento de serviços de ponta a ponta, da demanda ao valor. Fornece orientação para o fornecimento de serviços de TI de qualidade, fazendo uso de práticas (processos, funções e outras habilidades requeridas). 
ITIL 4 fornece às organizações a orientação necessária para enfrentar os novos desafios da gerência de serviço e de utilizar o potencial da tecnologia moderna. Ele é projetado para garantir um sistema flexível, coordenado e integrado para a governança efetiva e gestão de serviços habilitados para TI. Os benefícios a serem alcançados são:

  • Melhoria dos serviços em TI
  • Custos Reduzidos
  • Maior Satisfação do Cliente
  • Melhoria da Produtividade
  • Melhor Utilização dos conhecimentos e experiência
  • Melhor Prestação de serviços de terceiros
  • Alinhamento com as necessidades do negócio

ITIL 4 fornece o guia para tratar os novos desafios através de uma estrutura flexível, coordenada e integrada para governança e gerenciamento efetivo de serviços baseados em TI. “Na ITIL tudo pode, nada deve.” A ITIL adota as melhores práticas que são flexíveis a ponto de você adotar e adaptar aos seus processos.

Gerenciamento de Serviço de TI (ITSM)

É um conjunto de capacidades organizacionais especializadas que permitem entregar valor aos clientes na forma de serviço. O desenvolvimento dessas capacidades organizacionais exige o conhecimento e compreensão de :

  • Natureza do Valor
  • Natureza e escopo das partes interessadas(stakeholders)
  • Como a criação de valor pode acontecer por meio dos serviços

Valor e Criação em Conjunto

Valor (value) pode ser definido como os benefícios, a utilidade e a importância percebidos de algo que é produzido ou fornecido.

O valor deve ser uma criação conjunta (co-creation), fruto da colaboração entre provedores, consumidores, e outras organizações relevantes nas relações de serviço.

Produtos e Serviços

  • Produto: Uma configuração dos recursos de uma organização projetados para oferecer valor para um consumidor.
  • Serviço: Um meio de permitir a criação conjunta de valor (co-creation), facilitando os resultados que os clientes desejam alcançar, sem que o cliente tenha que gerenciar custos e riscos específicos.
  • Recursos: pessoas, informações, tecnologia, processos, parceiros, fornecedores.
  • Cada produto tem valor para os consumidores e podem ser adaptados para atender às necessidades de cada grupo de cliente em particular.
  • Produtos podem ser complexos, e nem sempre deixam visíveis todos os seus componentes e suporte para sua entrega, de forma completa.
  • Os serviços estão baseados em um ou mais produtos.

Tipos de Serviço

  • Principal: Atendem as necessidades principais dos clientes e representam algum valor. Preparam a base para geração de satisfação e utilização continua.
  • Apoio: Serviços Necessários para suportar a entrega do serviço principal.
  • Itensificador:Sviços adicionais que estimulam os clientes verificarem o valor que a TI está entregando à organização.

Referências:

     [1] https://pt.wikipedia.org/wiki/Information_Technology_Infrastructure_Library

Análise de Requisitos

Pressman [1] nos informa que o processo de engenharia de requisitos é realizado por meio da execução de sete funções distintas: concepção, levantamento, elaboração, negociação, especificação, validação e gestão. A ação da modelagem de requisitos resulta em um ou mais dos seguintes tipos de modelos: 

  • Modelos baseados em cenários de requisitos do ponto de vista de vários “atores” do sistema.
  • Modelos de dados que representam o domínio de informações para o problema.
  • Modelos orientados a classes: que representam classes orientadas a objetos (atributos e operações) e a maneira por meio da qual as classes colaboram para atender aos requisitos do sistema.
  • Modelos orientados a fluxos que representam os elementos funcionais do sistema e como eles transformam os dados à medida que percorrem o sistema.
  • Modelos comportamentais que representam como o software se comporta em consequência de “eventos” externos.

Os requisitos de software podem ser classificados da seguinte forma [2]:

  • Requisitos Funcionais: são declarações de serviços que o sistema deve fornecer, de como o sistema deve reagir a entradas específicas e de como o sistema deve se comportar em determinadas situações. Em alguns casos, os requisitos funcionais também podem explicitar o que o sistema não deve fazer.
  • Requisitos Não Funcionais: são restrições aos serviços ou funções oferecidas pelo sistema. Incluem restrições de timing, restrições no processo de desenvolvimento e restrições impostas pelas normas. Ao contrário das características individuais ou serviços do sistema, os requisitos não funcionais, muitas vezes, aplicam-se ao sistema como um todo.

Os requisitos não funcionais podem ser provenientes das características requeridas para o software (requisitos de produto), da organização que desenvolve o software (requisitos organizacionais) ou de fontes externas [2].

QFD (Quality function Deployment) é uma técnica de gestão da qualidade que traduz as necessidades do cliente para requisitos técnicos do software. O QFD “concentra-se em maximizar a satisfação do cliente por meio da processo de engenharia de software” [1]. O QFD identifica três tipos de requisitos: Requisitos Normais, Requisitos Esperados, Requisitos Fascinantes.

Referências:

[1] Pressman, Roger. Engenharia de Software 6ª edição (2006).
[2] Sommerville, Ian. Engenharia de Software 9ª edição (2012).