Ética Profissional na Computação

Não sendo a profissão regulamentada, não existem órgãos fiscalizadores ou estruturas sindicais que zelam pelo bom desempenho do profissional.

Foram criadas associações ACM (Association for Computer Machinery), que possuem inclusive códigos de ética, entretanto a punição pela não-obediência às diretivas geralmente limita-se ao banimento da associação.

No Brasil existe a SBC (Sociedade Brasileira de Computação), que exerce influência na comunidade da área de informática, uma vez que a maioria dos professores universitários da área são seus associados.
Associação dos Usuários de Informática e Telecomunicações – SUCESU (sucesu@sucesupr.org.br )

Instituto para Ética da Computação criou um pequeno código de conduta que ficou conhecido como “Os Dez Mandamentos para Ética na Informática”

  • Você não deverá usar o computador para produzir danos em outra pessoa;
  • Você não deve interferir no trabalho de computação de outra pessoa;
  • Você não deve interferir nos arquivos de outra pessoa;
  • Você não deve usar o computador para roubar;
  • Você não deve usar o computador para dar falso testemunho;
  • Você não deverá usar software pirateado;
  • Você não deverá usar recursos de computadores de outras pessoas;
  • Você não deverá se apropriar do trabalho intelectual de outra pessoa;
  • Você deverá refletir sobre as consequências sociais do que escreve;
  • Você deverá usar o computador de maneira que mostre consideração e respeito ao interlocutor.

Discussão sobre PIRATARIA de software:

  • O que é?
  • O grupo é a favor ou contra? Por quê?
  • Conhecem a legislação a respeito? Qual é a pena para este crime?
  • De que forma pode ser evitada? Existem outras alternativas?
  • Como o uso de software livre pode contribuir para que esta não seja uma prática usual?
  • Quais as modalidades de software gratuitos existentes?

Ética, Moral e Direito

É extremamente importante saber diferenciar a Ética da Moral e do Direito. Estas três áreas de conhecimento se distinguem, porém têm grandes vínculos e até mesmo sobreposições.

Tanto a Moral quanto o Direito baseiam-se em regras que visam estabelecer uma certa previsibilidade para as ações humanas. Ambas, porém, se diferenciam.

A Moral estabelece regras que são assumidas pela pessoa, como uma forma de garantir o seu bem-viver. 

A Moral independe das fronteiras geográficas e garante uma identidade entre pessoas que sequer se conhecem, mas utilizam este mesmo referencial moral comum.

O Direito busca estabelecer o regramento de uma sociedade delimitada pelas fronteiras do Estado. As leis têm uma base territorial, elas valem apenas para aquela área geográfica onde uma determinada população ou seus delegados vivem. 

Direito: É o conjunto de normas de conduta coativa impostas pelo Estado, se traduz em princípios de conduta social, tendentes a realizar Justiça, assegurando a sua existência e a coexistência pacífica dos indivíduos em sociedade.

Pode-se notar a diferença básica entre Direito e Moral: a coercibilidade.

A Moral é incoercível e o Direito é coercível.

Isso mostra a plena compatibilidade que existe entre o Direito e a força.

o Direito é a ordenação coercível da conduta humana.

Ou seja, a coação no Direito não é efetiva, mas potencial, representando como que uma segunda linha de garantia da execução da norma, quando se revelam insuficientes os motivos que, comumente, leva os interessados a cumpri-la.

Teoria do Mínimo Ético

Consiste em dizer que o Direito representa apenas o mínimo de moral declarado obrigatório para que a sociedade possa sobreviver.

Ou seja, como nem todos podem ou querem realizar de maneira espontânea as obrigações morais, é indispensável armar de força certos preceitos éticos para que a sociedade não transgrida esses dispositivos indispensáveis para à paz social.

Miguel Reale questiona essa Teoria, dizendo que o campo da moral não se confunde com o campo do jurídico.

Não se pode dizer que tudo que se passa no mundo jurídico seja ditado por motivos morais.

Pois se deve observar que existe fora da Moral o imoral (contra a Moral), mas existe aquilo que é apenas amoral (indiferente a Moral).

EX.: Art. 297. do CPC que determina o prazo de 15 dias para que o réu, citado pela ação, se manifeste.
Essa regra não tem influência na vida moral.

Então, nem tudo que é jurídico é moral.

E também nem tudo que é lícito juridicamente é moralmente correto.

Cumprimento das Regras Sociais

As regras sociais podem ser divididas em:
DE ORDEM MORAL: que devem ser cumpridas de maneira espontânea. O ato moral implica a adesão do espírito ao conteúdo da regra.
Ex.: respeito o meu pai, pratico o ato com plena convicção da sua validade.

Existe a coincidência entre a minha consciência e o conteúdo da regra moral.

DE ORDEM JURÍDICA: são cumpridas pelos homens em determinadas ocasiões, por que a tal são coagidos.
Não é necessário a adequação da maneira de se pensar ao que a regra jurídica prescreve.

Essas duas ordens não são vistas de forma estanque, um preceito pode ser de ordem jurídica e ao mesmo tempo de ordem moral.

Ética

A Ética é o estudo geral do que é bom ou mau.
Um dos objetivos da Ética é a busca de justificativas para as regras propostas pela Moral e pelo Direito.
Ela é diferente de ambos – Moral e Direito – pois não estabelece regras. Esta reflexão sobre a ação humana é que a caracteriza.

Ética: Estudo dos juízos de apreciação referentes à conduta humana suscetível de qualificação do ponto de vista do bem e do mal, seja relativamente a determinada sociedade, seja de modo absoluto.

Moral: Conjunto de regras de conduta consideradas como válidas, quer de modo absoluto para qualquer tempo ou lugar, quer para grupo ou pessoa determinada.

Vantagens do software livre

Os projetos de software livre tem revelado que compartilhar o código fonte de um software pode melhorar a sua robustez e qualidade de forma rápida. Uma vez que o código compartilhado seja de interesse da sociedade existe a possibilidade de contribuição de milhares de desenvolvedores, espalhados pelas grandes universidades, centros de pesquisa e organizações privadas. O crivo de vários usuários e programadores ajuda na identificação e na correção de erros. Além disto, com um grupo maior de usuários e desenvolvedores, o software pode ter contribuições de melhoria de acordo com as necessidades de cada local. Isto ajuda a obter softwares muito mais completos, com muito mais funcionalidades

“codificar programas de computador é a arte de inserir bugs em um código. Portanto, quanto maior o código mais bugs ele deverá ter.”

– Donald Knuth, em tom de brincadeira
Donald Ervin Knuth é um cientista computacional de renome e professor emérito da Universidade de Stanford. É o autor do livro The Art of Computer Programming, uma das principais referências da ciência da computação.

O que é o JavaFX e como ele é diferente do Swing e do AWT?

Se você é iniciante em Java e está aprendendo através de cursos on-line na Udemy ou em livros, deve ter ouvido falar sobre o Swing e o AWT. Não há dúvida de que essas são ferramentas incríveis e muitos desenvolvedores e empresas de software estão usando para criar aplicativos. Estou aqui para dizer para não aprender essas tecnologias.


Swing, AWT, JavaFX fazem parte do JDK e são usados ​​para criar a Interface Gráfica do Usuário (GUI), com o JavaFX sendo um dos participantes mais recentes desta lista.

O Abstract Window Toolkit, ou mais conhecido como AWT, é o mais antigo desses três. É mais como uma tecnologia de criação de GUI do tipo “faça você mesmo”, que não possui pacotes / bibliotecas embutidos para criar muitos recursos importantes de uma interface, como criar uma tabela para a qual você precisaria de vários rótulos ou itens de campo, além de painel de rolagem codificado manualmente para cada linha e coluna de uma tabela. Swing enquanto faz a coisa exata para você. É leve (embora haja alguns componentes que podem ser denominados pesados) e atropela o próprio AWT. Como no exemplo acima, pode-se usar o JTable, que é uma biblioteca no Swing que faz exatamente o que eu havia mencionado de uma maneira muito melhor e sofisticada.

Existem centenas de aplicativos e APIs de código aberto realmente maravilhosos, criados usando o Swing, disponíveis no GitHub. Ele claramente gozou de seu domínio ao longo de todos esses anos, até 2012. Em 2012, a Oracle decidiu adicionar o JavaFX ao seu JDK e foi então que começou a ganhar popularidade.


Um resumo sobre JavaFX

O JavaFX é, de acordo com mim, uma API moderna e de última geração para criar aplicativos GUI. Para não ficar confuso com o nome, o JavaFX é escrito principalmente em C ++ e a próxima linguagem principal usada é Java; seu nome sugere apenas que a API é para aplicativos Java e não para C ++.

O que se pode fazer no JavaFX que não é possível no Swing?

O JavaFX tem suporte para customização usando CSS (sim, o mesmo CSS usado para embelezar páginas da web) e XML. Por um momento, apenas foque no CSS. CSS, ou seja, as Cascading Style Sheets podem ser usadas para modificar a aparência do aplicativo. Um exemplo muito ingênuo pode ser alterar a cor do botão ao passar o mouse sobre ele e ter outra cor quando o mouse não aponta o botão. Os documentos da Oracle sobre a presença de CSS no JavaFX dizem: “CSS (Cascading Style Sheets) separa aparência e estilo da implementação, para que os desenvolvedores possam se concentrar na codificação. Os designers gráficos podem personalizar facilmente a aparência e o estilo do aplicativo por meio do CSS. Se você possui experiência em design da web ou deseja separar a interface do usuário (IU) e a lógica de back-end,

Com o JavaFX, também é possível criar aplicativos 3D bonitos, quase impossíveis no Swing, e fazer o mesmo com o AWT torna a idéia de estabelecer uma colônia em Marte muito mais simples. Sim, admito que usando outra API, Java3D, é possível criar aplicativos 3D em AWT, mas trabalhar com isso é realmente difícil em comparação com o JavaFX.


Como começar com o JavaFX?

Os documentos Oracle fornecem uma excelente vantagem em JavaFX. À medida que se avança na trilha de aprendizado dessa ferramenta formidável, ele / ela pode começar a desenvolver pequenos projetos e verificar com o StackOverflow sempre que travar. O próximo passo seria visualizar e aprender com algumas APIs e aplicativos bem criados, criados no JavaFX no GitHub. Existe um repositório no GitHub que possui uma lista com curadoria de todos os aplicativos, estruturas, livros, tutoriais e muito mais do JavaFX em um único local. Continue e explore-o assim que terminar de ler este artigo.

Qual JDK usar para isso?

O JDK 8 seria de longe a melhor escolha. O motivo é que o JDK 8 é suportado até 2022 e a Oracle anunciou recentemente que o JavaFX não seria mais enviado junto com os JDKs a partir do JDK 11. O JavaFX está indo de código aberto sob o nome OpenJFX e o JavaFX versão 11 (estável) está próximo canto que seria lançado separadamente como um pacote JAR.

Uma dica rápida: sempre que fizer uma pergunta relacionada ao JavaFX no StackOverflow, mencione a versão, pois o JavaFX mudou muito rapidamente no passado.

Fonte: What is JavaFX and how is it different from Swing and AWT? Diponível em: https://medium.com/@japkeerat21/what-is-javafx-and-how-is-it-different-from-swing-and-awt-54de995e4869 Acesso em: 16 de fevereiro de 2020.

Por que estudar Java?

Se você tem o mínimo de conhecimento em linguagem de programação você sabe que o comando básico de qualquer uma delas é a exibição (print) de um texto na tela. Ou vai me dizer que nunca fez um “Hello World” na primeira aula de uma linguagem nova?

Porém, no Java esse comando é um pouco diferente das demais linguagens que você aprende, como podemos observar abaixo:

C: printf();

Python: print()

Java: System.out.print()

Tá, mas o que isso quer dizer?

Significa que quando você programa em Java um texto pode ser exibido em variados tipos de sistemas, seja em um relógio ou em um monitor de computador ou até mesmo em um celular (você com certeza lembra dos jogos nos celulares antigos que sempre inicializavam com a xícara de café do Java).

Portando, aprendendo Java você não só estará a um passo do aprendizado de desenvolvimento web, devido ao paradigma de programação Orientado A Objetos que é bastante utilizada nela, mas também terá um leque de possibilidades de onde implementar o seu software.

Análise Orientada a Objetos, Design Orientado a Objetos e Programação Orientada a Objetos – Qual a Diferença?

A Análise Orientada a Objetos (OOA) é o processo de examinar um problema, sistema ou tarefa (que alguém deseja transformar em uma aplicação) e identificar quais serão os objetos e como serão as interações entre eles. Ou seja, o objetivo da análise é ter um conjunto de requisitos.

No desenvolvimento de software, os estágios inicial da análise incluem entrevistar clientes, estudar seus processos e eliminar possibilidades. Mas principalmente a identificação de objetos e ações daquele. Ex: Revisão de histórico; procurar, comparar, encomendar e comprar produtos.

A partir da identificação desses requisitos, na etapa de Design Orientado a Objetos eles serão convertidos para especificações de implementação. Especificações de implementação pode ser visto como um conjunto de classes e interfaces que poderiam ser implementadas em qualquer linguagem de programação POO.

O designer deve nomear objetos, definir comportamentos e especificar formalmente quais objetos podem ativar comportamentos específicos em outros objetos.

POO é o processo de converter o OOD definido em um sistema funcional.

Fontes: https://github.com/filipedwan/poo_python_aulas_2019_2/blob/master/Cap%2001%20-%20Design%20em%20POO/aula_01.pdf

Phillips, Dusty. Python 3 Object-oriented Programming – Unleash the power of Python 3 objects. “Packt Publishing”, 2015. Second Edition.

Introduce Yourself (Example Post)

This is an example post, originally published as part of Blogging University. Enroll in one of our ten programs, and start your blog right.

You’re going to publish a post today. Don’t worry about how your blog looks. Don’t worry if you haven’t given it a name yet, or you’re feeling overwhelmed. Just click the “New Post” button, and tell us why you’re here.

Why do this?

  • Because it gives new readers context. What are you about? Why should they read your blog?
  • Because it will help you focus you own ideas about your blog and what you’d like to do with it.

The post can be short or long, a personal intro to your life or a bloggy mission statement, a manifesto for the future or a simple outline of your the types of things you hope to publish.

To help you get started, here are a few questions:

  • Why are you blogging publicly, rather than keeping a personal journal?
  • What topics do you think you’ll write about?
  • Who would you love to connect with via your blog?
  • If you blog successfully throughout the next year, what would you hope to have accomplished?

You’re not locked into any of this; one of the wonderful things about blogs is how they constantly evolve as we learn, grow, and interact with one another — but it’s good to know where and why you started, and articulating your goals may just give you a few other post ideas.

Can’t think how to get started? Just write the first thing that pops into your head. Anne Lamott, author of a book on writing we love, says that you need to give yourself permission to write a “crappy first draft”. Anne makes a great point — just start writing, and worry about editing it later.

When you’re ready to publish, give your post three to five tags that describe your blog’s focus — writing, photography, fiction, parenting, food, cars, movies, sports, whatever. These tags will help others who care about your topics find you in the Reader. Make sure one of the tags is “zerotohero,” so other new bloggers can find you, too.