CodeInsights é uma ferramenta de análise de snapshots de código fonte. Deste processo de análise resulta um conjunto de informação que pode ser utilizada pelos docentes das disciplinas a detetar problemas de acompanhamento, ajustar o ritmo das aulas, etc.
De modo a obter resultados significativos é necessária a colaboração do maior número possível de alunos. Tal colaboração não implica modificar o comportamento, nem acarreta nenhum esforço adiconal, bastará apenas resolver os exercícios propostos pelos docentes, identificar bem o código escrito e executar o código fonte desenvolvido.
Aos alunos é apenas pedido que escolham uma das seguintes abordagens:
CodeInsights é um plugin para as aplicações da plataforma IntelliJ IDEA (PyCharm, por exemplo) cuja principal finalidade é enviar snapshots do código fonte que estiver aberto no seu IDE para um servidor central para posterior análise.
O plug-in pode ser descarregado aqui. De momento o plug-in apenas está disponível para sistemas com Microsoft Windows.
Após descarregar o plugin, abra o PyCharm e aceda File > Settings > PlugIns. Deverá surgir um diálogo semelhante a este:

Aqui chegado, deverá escolher a opção Install plugin from disk e indicar a localização do ficheiro .JAR que anteriormente descarregou e pressionar OK. Em seguida, o PyCharm terá que ser reiniciado para carregar o novo plugin.
Utilizar o CodeInsights não poderia ser mais simples! Basta escrever o seu código fonte normalmente e "correr" o seu código com a opção Run with CodeInsights (Ctrl + Shift + F10) da primeira vez que pretender executar o seu código, ou em alternativa clicar na primeira seta. Nas restantes vezes deverá recorrer à opção Re-Run with CodeInsights (Ctrl + Shift + F11) ou clicar na segunda seta.

De modo a ser possível identificar o aluno que está a submeter o código, assim como o exercício que está a ser resolvido, deverá ter sempre o cuidado de adicionar duas linhas no topo dos seus ficheiros, tal como apresentado no seguinte exemplo:
__studentid__ = '1523233'
__assignmentid__ = '3.11'
# Breve descrição do exercício
print('hello!')
Em __studentid__ deverá ser indicado o número do aluno e em __assignmentid__ deverá ser indicado o id do exercício segundo a regra número da ficha.número do exercício. Neste exemplo, temos o exercício 11 da ficha nº3.
De modo a ganhar tempo e para garantir que não se esquece de fazer a correta identificação do código, poderá proceder à alteração do template utilizado sempre que cria um novo ficheiro
Para tal, aceda a File > Settings > Editor > File and Code Templates > Phyton Script e altere o template a seu gosto!

A partir deste momento, sempre que criar um novo ficheiro .py, este irá já surgir preenchido com alguma informação
Não se esqueça de inserir corretamente o seu número de aluno e de alterar o id do exercício para exercício! :)
Ao utilizar o CodeInsights poderão ser apresentadas ao utilizador algumas mensagens (de erro, aviso e informação).
De modo a não interferir com a atividade de programação dos alunos , estas mensagens são apresentadas no canto inferior do PyCharm.

Caso pretenda utilizar o PyCharm, mas não deseje utilizar o plug-in, poderá recorrer ao terminal e executar os seus programas via terminal.
Para tal, deverá copiar os ficheiros que encontra neste ficheiro (Sistemas Windows) para a directoria onde se encontra o seu código e postereriormente executar os seus programas através do comando py. Exemplo: py ex111.py.

Caso opte por esta solução, deverá obrigatoriamente garantir que o caminho do ficheiro python.exe que pode encontrar no ficheiro py.bat está correcto, ou seja, deverá garantir que o nome da directoria está certo e caso não esteja, proceda à necessárias modificações.

De modo a ser possível identificar o aluno que está a submeter o código, assim como o exercício que está a ser resolvido, deverá ter sempre o cuidado de adicionar duas linhas no topo dos seus ficheiros, tal como apresentado no seguinte exemplo:
__studentid__ = '1523233'
__assignmentid__ = '3.11'
# Breve descrição do exercício
print('hello!')
Em __studentid__ deverá ser indicado o número do aluno e em __assignmentid__ deverá ser indicado o id do exercício segundo a regra número da ficha.número do exercício. Neste exemplo, temos o exercício 11 da ficha nº3.
De modo a ganhar tempo e para garantir que não se esquece de fazer a correta identificação do código, poderá proceder à alteração do template utilizado sempre que cria um novo ficheiro
Para tal, aceda a File > Settings > Editor > File and Code Templates > Phyton Script e altere o template a seu gosto!

Este método funciona igualmente se utilizar um outro qualquer editor de código e executar os seus programas de uma tradicional linha de comandos.
Finalmente, poderá optar por utilizar a ferramenta alternativa CodeInsights - WebSnaphot. Para tal, basta comentar o seu código fonte tal como descrito anteriormente, fazer copy-paste deste e submetê-lo!
De modo a ser possível identificar o aluno que está a submeter o código, assim como o exercício que está a ser resolvido, deverá ter sempre o cuidado de adicionar duas linhas no topo dos seus ficheiros, tal como apresentado no seguinte exemplo:
__studentid__ = '1523233'
__assignmentid__ = '3.11'
# Breve descrição do exercício
print('hello!')
Em __studentid__ deverá ser indicado o número do aluno e em __assignmentid__ deverá ser indicado o id do exercício segundo a regra número da ficha.número do exercício. Neste exemplo, temos o exercício 11 da ficha nº3.