BR112020016783A2 - Estrutura de software para rastreamento de progresso em um ambiente de sala de aula - Google Patents

Estrutura de software para rastreamento de progresso em um ambiente de sala de aula Download PDF

Info

Publication number
BR112020016783A2
BR112020016783A2 BR112020016783-5A BR112020016783A BR112020016783A2 BR 112020016783 A2 BR112020016783 A2 BR 112020016783A2 BR 112020016783 A BR112020016783 A BR 112020016783A BR 112020016783 A2 BR112020016783 A2 BR 112020016783A2
Authority
BR
Brazil
Prior art keywords
progress
identifier
service
tracking information
progress tracking
Prior art date
Application number
BR112020016783-5A
Other languages
English (en)
Inventor
John S. Baumgarten
Jennifer U. SONG
Marin EUBANKS
Pavel V. DUDRENOV
Sugam JAIN
Leo Lee
Saman VAFAEE
Original Assignee
Apple Inc.
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Apple Inc. filed Critical Apple Inc.
Publication of BR112020016783A2 publication Critical patent/BR112020016783A2/pt

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q50/00Information and communication technology [ICT] specially adapted for implementation of business processes of specific business sectors, e.g. utilities or tourism
    • G06Q50/10Services
    • G06Q50/20Education
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09BEDUCATIONAL OR DEMONSTRATION APPLIANCES; APPLIANCES FOR TEACHING, OR COMMUNICATING WITH, THE BLIND, DEAF OR MUTE; MODELS; PLANETARIA; GLOBES; MAPS; DIAGRAMS
    • G09B5/00Electrically-operated educational appliances
    • G09B5/08Electrically-operated educational appliances providing for individual presentation of information to a plurality of student stations
    • G09B5/14Electrically-operated educational appliances providing for individual presentation of information to a plurality of student stations with provision for individual teacher-student communication
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3438Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment monitoring of user actions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09BEDUCATIONAL OR DEMONSTRATION APPLIANCES; APPLIANCES FOR TEACHING, OR COMMUNICATING WITH, THE BLIND, DEAF OR MUTE; MODELS; PLANETARIA; GLOBES; MAPS; DIAGRAMS
    • G09B5/00Electrically-operated educational appliances
    • G09B5/02Electrically-operated educational appliances with visual presentation of the material to be studied, e.g. using film strip
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09BEDUCATIONAL OR DEMONSTRATION APPLIANCES; APPLIANCES FOR TEACHING, OR COMMUNICATING WITH, THE BLIND, DEAF OR MUTE; MODELS; PLANETARIA; GLOBES; MAPS; DIAGRAMS
    • G09B5/00Electrically-operated educational appliances
    • G09B5/08Electrically-operated educational appliances providing for individual presentation of information to a plurality of student stations
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09BEDUCATIONAL OR DEMONSTRATION APPLIANCES; APPLIANCES FOR TEACHING, OR COMMUNICATING WITH, THE BLIND, DEAF OR MUTE; MODELS; PLANETARIA; GLOBES; MAPS; DIAGRAMS
    • G09B7/00Electrically-operated teaching apparatus or devices working with questions and answers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/535Tracking the activity of the user

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Business, Economics & Management (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Educational Technology (AREA)
  • Educational Administration (AREA)
  • Software Systems (AREA)
  • Computer Hardware Design (AREA)
  • Tourism & Hospitality (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Health & Medical Sciences (AREA)
  • Economics (AREA)
  • Human Resources & Organizations (AREA)
  • Marketing (AREA)
  • Primary Health Care (AREA)
  • Strategic Management (AREA)
  • General Business, Economics & Management (AREA)
  • General Health & Medical Sciences (AREA)
  • Quality & Reliability (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)
  • Electrically Operated Instructional Devices (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Stored Programmes (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

a presente invenção refere-se a uma arquitetura cliente-servidor que permite o rastreamento de progresso relacionado com tarefas geradas por um instrutor. um material pode incluir anexos que especificam espaços reservados para trabalhos a serem entregues e/ou atividades a serem executadas pelo aluno como parte da tarefa. algumas atividades podem ser executadas usando-se aplicativos de terceiros que implementam ao menos uma porção de uma estrutura de software que faz com que os aplicativos gerem informações de rastreamento de progresso fornecidas a um daemon executando em segundo plano de um dispositivo cliente. o daemon e/ou um aplicativo de cliente fazem interface com um ou mais serviços de rede para permitir que um instrutor utilize as informações de rastreamento de progresso. os serviços de rede podem incluir um serviço de materiais utilizado para gerar materiais atribuídos a um grupo de alunos. os serviços de rede podem incluir também um canal de progresso ("pipeline") que inclui vários serviços configurados para processar informações de rastreamento de progresso recebidas a partir de uma pluralidade de dispositivos clientes.

Description

Relatório Descritivo da Patente de Invenção para "ES- TRUTURA DE SOFTWARE PARA RASTREAMENTO DE PRO- GRESSO EM UM AMBIENTE DE SALA DE AULA".
CAMPO
[0001] As modalidades descritas neste documento se referem, de modo geral, a uma estrutura de software configurada para implemen- tar várias técnicas em um ambiente de sala de aula. Mais particular- mente, as modalidades apresentadas neste documento se referem ao rastreamento e à geração de relatórios de informações relacionadas ao progresso de conclusão de tarefas atribuídas on-line para uma pluralidade de alunos.
ANTECEDENTES
[0002] Desde a invenção de dispositivos audiovisuais (AV) como televisores, sistemas de projeção e gravadores/reprodutores de fita cassete, distritos escolares e instrutores têm incorporado em seus planos de aula materiais que utilizam esses dispositivos para fornecer informações aos alunos em novas e envolventes maneiras. Os instru- tores não mais estariam limitados simplesmente a livros didáticos, aulas e trabalhos escritos. Com o advento da era da informação, a Internet abriu novos horizontes na sala de aula. Os instrutores podem agora recorrer a uma fonte de informações quase ilimitada para criar planos de aula interativa que são envolventes e produtivos.
[0003] Entretanto, as ferramentas disponíveis aos instrutores para desenvolver esses planos de aula são limitadas. Por exemplo, um arti- go da Wikipédia® pode fornecer material de referência útil sobre um assunto específico. Entretanto, o instrutor pode não ter uma boa opção de compartilhar o artigo com seus alunos. O instrutor poderia fornecer o artigo impresso em papel, como apostilas, por exemplo, que era a maneira tradicional de distribuir materiais aos alunos. Entretanto, esse método é um desperdício e perde alguns dos elementos interativos
(por exemplo, animações, hiperlinks, etc.) do artigo, conforme apre- sentado on-line. Alternativamente, o instrutor pode enviar por e-mail para cada um de seus alunos um hiperlink de acesso ao artigo que pode, então, ser visualizado em um dispositivo de computação em ca- sa ou fornecido pela escola. Embora tais métodos permitam que os alunos vejam o artigo no contexto apropriado para interagir com os elementos interativos incorporados no artigo, não há nenhuma manei- ra de o instrutor rastrear se cada aluno clicou no hiperlink ou mesmo se cada aluno realmente leu todo o artigo.
SUMÁRIO
[0004] O presente trabalho descreve várias modalidades referen- tes a uma arquitetura cliente-servidor que possibilita o rastreamento de progresso relacionado com tarefas geradas por um instrutor. Um mate- rial pode incluir anexos que especificam espaços reservados para tra- balhos a serem entregues e/ou atividades a serem executadas pelo aluno como parte da tarefa atribuída. Algumas atividades podem ser executadas usando-se aplicativos de terceiros que implementam ao menos uma porção de uma estrutura de software que faz com que os aplicativos gerem informações de rastreamento de progresso forneci- das a um daemon executando em segundo plano de um dispositivo cliente. O daemon e/ou um aplicativo de cliente fazem interface com um ou mais serviços de rede para permitir que um instrutor utilize as informações de rastreamento de progresso. Os serviços de rede po- dem incluir um serviço de materiais utilizado para gerar materiais atri- buídos a um grupo de alunos. Os serviços de rede podem incluir tam- bém um canal de progresso ("pipeline") que inclui vários serviços con- figurados para processar informações de rastreamento de progresso recebidas a partir de uma pluralidade de dispositivos clientes.
[0005] Em algumas modalidades, um dispositivo cliente inclui um processador, uma memória e uma tela. A memória pode incluir um sistema operacional, um aplicativo de cliente, um daemon e um ou mais aplicativos de terceiros, sendo que tais aplicativos incluem ao menos um aplicativo de progresso que implementa ao menos uma porção de uma estrutura de software. A estrutura de software possibi- lita que o aplicativo de progresso gere informações de rastreamento de progresso relacionadas a um ou mais contextos que o aplicativo de progresso fornece ao aplicativo de cliente e/ou ao daemon. Um contexto, em geral, define uma estrutura de ao menos uma porção do aplicativo de progresso para que o aplicativo de cliente possa definir atividades que possam ser concluídas por um aluno no aplicativo de progresso.
[0006] Em algumas modalidades, o daemon é executado como um processo de segundo plano e é configurado para receber informações de rastreamento de progresso a partir de um ou mais aplicativos, filtrar as informações de rastreamento de progresso, armazenar as informações de rastreamento de progresso em uma base de dados remota, gerar me- tadados associados às informações de rastreamento de progresso e transmitir os metadados para ao menos um serviço. O daemon pode também implementar um mecanismo de sincronização que coordena versões de um recurso armazenado localmente no dispositivo cliente com versões armazenadas em uma base de dados remota. O mecanis- mo de sincronização possibilita que o recurso seja acessado em dois ou mais dispositivos clientes.
[0007] Em algumas modalidades, a estrutura de software faz com que o aplicativo de progresso gere chamadas de API transmitidas ao daemon que incluem informações de rastreamento de progresso. O daemon pode ser configurado para filtrar as informações de rastrea- mento de progresso com base em se o rastreamento de progresso está habilitado ou desabilitado para o um ou mais aplicativos de pro- gresso. Alternativamente, o daemon pode ser configurado para filtrar as informações de rastreamento de progresso com base em uma lista de contextos ativos.
[0008] Em algumas modalidades, a base de dados remota é um serviço de armazenamento baseado em rede dividido em uma plurali- dade de zonas que armazenam dados diferentes, cada zona limitada em escopo a qualquer combinação de ao menos um dentre um identi- ficador de organização, um identificador de turma, um identificador de usuário, um identificador de contexto ou um identificador de material. Os metadados correspondentes às informações de rastreamento de progresso são gerados pelo daemon e transmitidos para um canal de progresso. Os metadados incluem uma referência às informações de rastreamento de progresso na base de dados remota, bem como ao menos um dentre um identificador de turma, um identificador de mate- rial, um identificador de usuário ou um identificador de contexto.
[0009] Em algumas modalidades, o canal de progresso inclui vá- rios serviços estruturados em uma arquitetura de canal. O canal de progresso pode incluir um serviço de acesso de entrada ("on-ramp") configurado para: receber metadados correspondentes a informações de rastreamento de progresso; desreferenciar um identificador de usu- ário incluído nos metadados mediante substituição do identificador de usuário por um identificador de serviço de diretório ou um identificador interno; determinar se o rastreamento de progresso está habilitado ou desabilitado para um dentre o identificador de usuário, o identificador de serviço de diretório ou o identificador interno; e filtrar os metadados com base na determinação. O canal de progresso pode incluir um ser- viço de enriquecimento configurado para: enriquecer os metadados com ao menos um dentre um identificador de organização, um identifi- cador de serviço de diretório, um identificador de usuário ou um identi- ficador de material. O canal de progresso pode incluir um serviço agregador configurado para: recuperar um subconjunto de metadados correspondente a uma janela de rastreamento a partir de um sistema de arquivos distribuído que inclui ao menos um nó de registro; gerar uma estrutura de dados que inclui o subconjunto de metadados asso- ciado a um identificador de organização específico incluído no subcon- junto de metadados; armazenar a estrutura de dados em uma memó- ria; e enviar por push uma referência correspondente à estrutura de dados para dentro de uma fila. O canal de progresso pode incluir um serviço de processamento de saída ("off-ramp") configurado para: pro- cessar uma estrutura de dados para gerar metadados classificados com base em ao menos um dentre um identificador de turma, um iden- tificador de material, um identificador de contexto, o identificador de usuário, o identificador de serviço de diretório ou o identificador inter- no. O canal de progresso pode incluir um serviço de depósito configu- rado para: associar as informações de rastreamento de progresso a um identificador de progresso associado a um dentre o identificador de usuário ou o identificador de serviço de diretório; e armazenar as in- formações de rastreamento de progresso e o identificador de progres- so em um serviço de armazenamento baseado em rede.
[0010] A arquitetura servidor-cliente e/ou a estrutura de software podem, individualmente ou em conjunto, habilitar a interação entre ins- trutores e alunos com o uso de planos de aula interativos que incorpo- ram funcionalidade de um ou mais aplicativos de terceiros para melho- rar a experiência de aprendizado. Outros aspectos e vantagens da in- venção se tornarão evidentes a partir da descrição detalhada tomada em conjunto com os desenhos em anexo que ilustram, a título de exemplo, os princípios das modalidades descritas.
[0011] Este Sumário é fornecido meramente com o propósito de resumir algumas modalidades exemplificadoras de modo a fornecer um entendimento básico de alguns aspectos do assunto aqui des- crito. Consequentemente, será reconhecido que os recursos aqui descritos são apenas exemplos e não devem ser interpretados de modo a restringir, de qualquer modo, o escopo ou o espírito da pre- sente invenção. Outras características, aspectos, recursos e vanta- gens do assunto aqui descrito ficarão evidentes a partir da Descrição Detalhada, das Figuras e das Reivindicações a seguir.
BREVE DESCRIÇÃO DOS DESENHOS
[0012] A invenção será prontamente entendida tomando-se a se- guinte descrição detalhada juntamente com os desenhos em anexo, sendo que números de referência similares designam elementos estru- turais similares.
[0013] A Figura 1 ilustra um ambiente de rede projetado para operar dentro de um ambiente de sala de aula, de acordo com algu- mas modalidades.
[0014] A Figura 2 ilustra a arquitetura servidor-cliente implemen- tada para possibilitar rastreamento de progresso para dispositivos clientes no ambiente de sala de aula, de acordo com algumas moda- lidades.
[0015] A Figura 3 ilustra uma interface gráfica de usuário do aplicati- vo de cliente, de acordo com algumas modalidades.
[0016] A Figura 4 ilustra uma relação cliente-servidor entre o serviço de materiais e um aplicativo de cliente e/ou daemon, de acordo com al- gumas modalidades.
[0017] A Figura 5 ilustra um mecanismo de sincronização imple- mentado pelo daemon, de acordo com algumas modalidades.
[0018] As Figuras 6A a 6E ilustram uma interface gráfica de usuário do aplicativo de cliente, de acordo com algumas modalidades.
[0019] A Figura 7 ilustra uma relação cliente-servidor entre o serviço de materiais e vários aplicativos de clientes e/ou daemons associados a uma pluralidade de alunos em uma turma, de acordo com algumas mo- dalidades.
[0020] As Figuras 8A a 8C ilustram uma interface gráfica de usuá- rio implementada por um aplicativo de cliente em um dispositivo clien- te associado a um aluno, de acordo com algumas modalidades.
[0021] A Figura 9 ilustra uma relação cliente-servidor entre o serviço de entrega de trabalho e vários aplicativos de clientes e/ou daemons pa- ra uma pluralidade de alunos em uma turma, de acordo com algumas modalidades.
[0022] A Figura 10 ilustra uma relação cliente-servidor entre o canal de progresso e um aplicativo de cliente e/ou daemon, de acordo com al- gumas modalidades.
[0023] A Figura 11 ilustra a filtragem de informações de rastreamen- to de progresso pelo daemon, de acordo com algumas modalidades.
[0024] A Figura 12 ilustra o canal de progresso, de acordo com al- gumas modalidades.
[0025] A Figura 13 ilustra uma relação cliente-servidor entre o servi- ço de relatório e um aplicativo de cliente e/ou daemon, de acordo com algumas modalidades.
[0026] As Figuras 14A e 14B ilustram uma interface gráfica de usuá- rio do aplicativo de cliente, de acordo com algumas modalidades.
[0027] A Figura 15 ilustra um fluxograma de um método para rastre- ar a atividade de um aluno em um dispositivo cliente, de acordo com al- gumas modalidades.
[0028] A Figura 16 ilustra um fluxograma de um método para pro- cessar informações de rastreamento de progresso utilizando um ou mais serviços disponíveis em uma rede, de acordo com algumas modalidades.
[0029] A Figura 17 ilustra uma vista detalhada de um dispositivo de computação exemplificador que pode ser usado para implementar os vá- rios aparelhos e/ou métodos aqui descritos, de acordo com algumas mo- dalidades.
DESCRIÇÃO DETALHADA
[0030] Esta seção descreve aplicações representativas de métodos e aparelhos de acordo com o presente pedido. Tais exemplos são forne- cidos unicamente com o propósito de adicionar conteúdo e auxiliar na compreensão das modalidades descritas. Ficará, portanto, evidente para o versado na técnica que as modalidades descritas podem ser praticadas sem alguns ou todos esses detalhes específicos. Em outras instâncias, etapas de processos bem conhecidos não foram descritas com detalhes para evitar obscurecer desnecessariamente as modalidades descritas. Além disso, como outras aplicações são possíveis, os exemplos a seguir não devem ser tomados como limitadores.
[0031] Na descrição detalhada a seguir são feitas referências aos desenhos em anexo, os quais formam parte da descrição e nos quais são mostradas, a título de ilustração, modalidades específicas de acordo com as modalidades descritas. Embora essas modalidades sejam descritas em detalhes suficientes para possibilitar que o versa- do na técnica as coloque em prática, deve-se reconhecer que tais exemplos não são limitadores; de modo que outras modalidades pos- sam ser utilizadas e que alterações possam ser feitas sem que se desvie do espírito e escopo das modalidades descritas.
[0032] A sala de aula digital fornece aos alunos novas oportunidades de aprender em um ambiente rico de aplicativos interativos instalados em dispositivos de computação fornecidos aos alunos. Embora tais dispositi- vos possam permitir que os alunos interajam com informações on-line que podem ser acessadas com o uso de um navegador ou fornecidas por meio de aplicativos especializados, os benefícios para essas ativida- des são em geral perdidos devido à natureza difícil de rastrear as ativida- des. Consequentemente, novas técnicas para incorporar esses materiais em uma arquitetura de sala de aula unificada são desejáveis.
[0033] Um ambiente de sala de aula pode fornecer aos instruto- res e alunos vários dispositivos e aplicativos que permitem ao instru-
tor atribuir atividades aos alunos utilizando esses aplicativos que po- dem ser facilmente monitoradas pelo instrutor. Um instrutor cria mate- riais para atribuir aos alunos, materiais que incorporam atividades de- finidas pelos contextos fornecidos por um ou mais aplicativos de ter- ceiros que implementam uma estrutura de software. Os aplicativos de terceiros são configurados para rastrear o progresso dos alunos na conclusão das atividades associadas a esses contextos e fornecem informações de rastreamento de progresso a um processo de segun- do plano do dispositivo. O processo de segundo plano e/ou um apli- cativo de cliente podem fazer interface com um ou mais serviços de rede projetados para processar as informações de rastreamento de progresso. As informações de rastreamento de progresso processa- das podem ser consultadas para gerar dados de relatório a serem exibidos a um instrutor que mostram o progresso de cada aluno ao qual o material foi atribuído.
[0034] Essas e outras modalidades serão discutidas abaixo com re- ferência às Figuras 1 a 17; entretanto, os versados na técnica compreen- derão prontamente que a descrição detalhada aqui fornecida com refe- rência a essas figuras tem o único propósito de ser explicativa e não de- ve ser interpretada como limitadora.
[0035] A Figura 1 ilustra um ambiente de rede 100 projetado para operar dentro de um ambiente de sala de aula, de acordo com algumas modalidades. O ambiente de rede 100 inclui vários dispositivos de com- putação separados e distintos configurados para se comunicar através de uma rede 150. O ambiente de rede 100 inclui dispositivos servidores 110 e dispositivos clientes 120. Conforme mostrado na Figura 1, os dis- positivos clientes 120 podem incluir, porém sem limitação, computado- res portáteis 120-1 e 120-5, computadores tipo tablet 120-2, 120-3 e 120-4, e dispositivos móveis 120-6. Será reconhecido que o ambiente de rede 100 pode incluir outros tipos de dispositivos clientes 120 como computadores de mesa, dispositivos para serem usados junto ao corpo (por exemplo, relógios de pulso inteligentes), assistentes digitais pesso- ais e similares.
[0036] Os termos a seguir poderão ser utilizados em todo este do- cumento. Uma turma se refere a um grupo de indivíduos que se reú- nem regularmente para serem ensinados em um dado assunto ou ati- vidade. A turma pode incluir um ou mais instrutores e vários alunos inscritos na turma. Um ambiente de sala de aula se refere a um grupo de dispositivos relacionados utilizados por um grupo de usuários asso- ciados a uma turma. Uma escola se refere a um conjunto administrati- vo de várias turmas ensinadas por um grupo de instrutores. Um distrito escolar se refere a uma organização que gerencia uma ou mais esco- las.
[0037] Em algumas modalidades, um instrutor utiliza um ou mais dispositivos para disseminar materiais aos alunos em uma turma. Con- forme mostrado na Figura 1, o instrutor pode utilizar um computador portátil como o dispositivo cliente 120-1 ou um computador tipo tablet como o dispositivo cliente 120-2 para criar materiais para os alunos. Em algumas modalidades, o computador portátil e/ou o computador tipo tablet incluem aplicativos configurados para criar tarefas interati- vas para os alunos. As tarefas podem incluir links para materiais dis- poníveis na rede 150, como hiperlinks para sites da Web disponíveis a partir de um primeiro dispositivo servidor 110-1 ou documentos arma- zenados em um segundo dispositivo servidor 110-2. Os aplicativos po- dem também possibilitar que o instrutor distribua facilmente as tarefas atribuídas para os alunos. Os alunos podem utilizar os computadores tipo tablet como o dispositivo cliente 120-3 e 120-4, o computador por- tátil como o dispositivo cliente 120-5 e/ou o dispositivo móvel como o dispositivo cliente 120-6 para ter acesso às tarefas atribuídas e visuali- zar os materiais incluídos em cada tarefa atribuída.
[0038] Em algumas modalidades, um terceiro dispositivo servidor 110-3 hospeda um ou mais serviços utilizados pelos aplicativos insta- lados nos vários dispositivos clientes 120. Por exemplo, o terceiro dis- positivo servidor 110-3 pode hospedar um serviço para enviar por upload estruturas de dados ou arquivos que definem uma tarefa para um recurso de armazenamento baseado em rede. Como outro exem- plo, o terceiro dispositivo servidor 110-3 pode hospedar um serviço que rastreia quais dispositivos clientes 120 estão registrados em um dado ambiente de sala de aula. Como ainda outro exemplo, o terceiro dispositivo servidor 110-3 pode hospedar um serviço que rastreia o progresso de cada aluno correspondente a uma determinada tarefa. Em algumas modalidades, os serviços utilizados pelo(s) aplicativo(s) podem ser hospedados em mais de um dispositivo servidor 110. Além disso, os serviços podem ser hospedados por diferentes provedores de serviços. Por exemplo, um primeiro dispositivo servidor 110-1 man- tido por um primeiro provedor de serviços pode ser configurado para hospedar um serviço de armazenamento baseado em rede, e um se- gundo dispositivo servidor 110-2 mantido por um segundo provedor de serviços pode ser configurado para hospedar um serviço de gerencia- mento de escola.
[0039] Será apresentada a seguir a descrição de uma estrutura de software para aplicativos executados pelos vários dispositivos cli- entes 120 no ambiente de sala de aula. Além disso, será apresentada uma descrição de vários serviços utilizados pelos aplicativos aqui descritos e hospedados em um ou mais dispositivos servidores 110.
[0040] A Figura 2 ilustra a arquitetura servidor-cliente 200 imple- mentada para possibilitar rastreamento de progresso para dispositivos clientes 120 no ambiente de sala de aula, de acordo com algumas modalidades. A arquitetura servidor-cliente 200 inclui um aplicativo de cliente 205 implementado em um dispositivo cliente 120 e configurado para interagir com vários serviços implementados em dispositivos ser- vidores 110 acessíveis através da rede 150. A arquitetura servidor- cliente 200 permite aos instrutores criar tarefas que incluam materiais interativos ricos fornecidos por um ou mais aplicativos de terceiros ins- talados no dispositivo cliente 120, bem como integrar um rastreamento contínuo de progresso de modo que um instrutor possa monitorar o esforço dos alunos em se manter a par das tarefas em uma turma.
[0041] Em algumas modalidades, o aplicativo de cliente 205 é um executável binário configurado para ser executado por um processador incluído no dispositivo cliente 120. O executável binário pode ser proje- tado para funcionar em um determinado ambiente operacional, como uma plataforma de hardware alvo projetada para executar um sistema operacional alvo. Consequentemente, o aplicativo de cliente 205 pode ser implementado usando-se várias versões do código fonte compilado para diferentes ambientes operacionais. Por exemplo, uma primeira versão do aplicativo de cliente 205 pode ser projetada para um compu- tador portátil 120-1 e uma segunda versão do aplicativo de cliente 205 pode ser projetada para um computador tipo tablet 120-2.
[0042] Em algumas modalidades, o aplicativo de cliente 205 é pro- jetado para se conectar com um ou mais serviços através da rede 150. Os serviços podem incluir, porém sem limitação, um serviço de materi- ais 220, um serviço de entrega de trabalho 230, um serviço de gerenci- amento de escola 240, um canal de progresso 250, um serviço de iden- tidade 260 e um serviço de relatório 270. O aplicativo de cliente 205 po- de ser configurado para acessar um serviço através de uma interface de programação de aplicativo (API - "Application Programming Interface") implementada pelo serviço. Por exemplo, um serviço baseado na Web pode implementar uma API com o uso de um protocolo de acesso de objeto simples (SOAP - "Simple Object Access Protocol") ou um proto- colo de transferência de estado representacional (REST - "Representa-
tional State Transfer Protocol") que possibilita ao aplicativo de cliente 205 acessar e/ou operar em recursos associados ao serviço. A API po- de possibilitar que o aplicativo de cliente 205 transmita dados para e/ou receba dados a partir do serviço. As chamadas de API podem também fazer com que o serviço execute várias operações e/ou chame serviços adicionais utilizando chamadas de API adicionais.
[0043] Em outras modalidades, o aplicativo de cliente 205 é um apli- cativo baseado na Web exibido dentro de um navegador de um dispositi- vo cliente 120. O aplicativo de cliente 205 pode incluir uma série de re- cursos (por exemplo, documentos em linguagem de marcação de hiper- texto (HTML - "HyperText Markup Language"), imagens, scripts, etc.) so- licitados a partir de um servidor associado a um site da Web. O navega- dor recebe os recursos e os interpreta para exibir uma representação do site da Web em uma tela do dispositivo cliente 120. O aplicativo de clien- te 205 é, portanto, independente de plataforma no sentido de que o apli- cativo de cliente 205 pode ser exibido em uma pluralidade de dispositivos clientes 120 diferentes sendo executados em diferentes sistemas opera- cionais.
[0044] Em algumas modalidades, o aplicativo de cliente 205 faz interface com o um ou mais serviços através de uma porta de comuni- cação ("gateway") de API 210. A porta de comunicação de API 210 é implementada por um dispositivo servidor 110 e redireciona as cha- madas de API recebidas de dispositivos clientes 120 para os vários serviços na arquitetura servidor-cliente 200. Em outras modalidades, a porta de comunicação de API 210 é omitida ou seletivamente ignorada e os dispositivos clientes 120 transmitem as chamadas de API direta- mente para os serviços.
[0045] Em algumas modalidades, o aplicativo de cliente 205 permi- te que um instrutor crie materiais para uma turma. Um "material" se refere a um arquivo ou estrutura de dados que inclui informações rela-
cionadas a uma tarefa que deve ser publicada para os alunos da tur- ma. O material pode incluir vários campos incluindo: um identificador de material, um título da tarefa, um corpo da tarefa incluindo instruções textuais para os alunos sobre como concluir a tarefa, uma data de en- trega da tarefa e uma lista de anexos associados à tarefa. Os materi- ais podem ser criados e armazenados localmente em um determinado dispositivo cliente 120. Os anexos podem incluir arquivos (por exem- plo, documentos, imagens, vídeos, etc.), espaços reservados para um arquivo que o aluno deve entregar e atividades que aluno deve conclu- ir como parte da tarefa. As atividades são executadas usando-se apli- cativos de terceiros que implementam uma porção de uma estrutura de software de kit de turma. Exemplos de atividades podem incluir, po- rém sem limitação, leitura de um capítulo de um livro digital ou livro didático, fazer um teste ou resolver um conjunto de problemas, rastre- ar o tempo gasto na execução de uma tarefa como jogar um jogo inte- rativo ou realizar uma experiência digital, e assim por diante.
[0046] Em algumas modalidades, a arquitetura servidor-cliente 200 inclui um serviço de materiais 220. O serviço de materiais 220 é configu- rado para gerenciar materiais. Em algumas modalidades, o serviço de materiais 220 é configurado para sincronizar materiais criados em um dispositivo cliente 120 com um outro dispositivo cliente 120 para permitir que um instrutor trabalhe em múltiplos dispositivos. Em algumas modali- dades, o serviço de materiais 220 é configurado para possibilitar que os materiais sejam publicados em uma lista de alunos. A publicação de um material se refere a tornar disponíveis as informações no material para serem visualizadas pelos alunos em um dispositivo cliente 120 separado, bem como lidar com várias operações back-end relacionadas aos anexos dos materiais.
[0047] Em algumas modalidades, a arquitetura servidor-cliente 200 pode incluir também um serviço de entrega de trabalho 230. Um traba-
lho a ser entregue se refere a um espaço reservado para um arquivo ou estrutura de dados, que indica que um aluno é instruído a criar um arquivo ou estrutura de dados que deve ser entregue para que o aluno conclua a tarefa. Um aluno pode criar o arquivo ou estrutura de dados e enviar o arquivo ou estrutura de dados ao serviço de entrega de tra- balho 230 para atender à exigência de concluir a tarefa.
[0048] Em algumas modalidades, a arquitetura servidor-cliente 200 pode incluir também um serviço de gerenciamento de escola 240 confi- gurado para gerenciar informações administrativas de um distrito esco- lar relacionadas à estrutura de turma. Por exemplo, o serviço de geren- ciamento de escola 240 pode manter registros que indicam quais instru- tores estão designados para cada turma dentre uma pluralidade de tur- mas. Os registros podem também indicar quais alunos estão inscritos em cada turma dentre a pluralidade de turmas. A cada instrutor ou alu- no pode ser atribuído um identificador de instrutor ou um identificador de aluno, respectivamente. Cada turma criada pelo distrito escolar pode ser associada a um identificador de turma. Então, para cada identifica- dor de turma, pode ser criado um registro separado contendo uma lista de identificadores de alunos dos alunos inscritos na turma. Em algumas modalidades, uma base de dados relacional associa os identificadores de instrutores e/ou os identificadores de alunos aos identificadores de turmas em uma ou mais tabelas. A base de dados relacional pode ser consultada usando-se a linguagem de consulta estruturada (SQL - "Structured Query Language") ou outro tipo de linguagem de consulta para obter informações que identificam a estrutura de várias turmas.
[0049] Em algumas modalidades, o serviço de gerenciamento de escola 240 inclui uma interface administrativa que possibilita que um ad- ministrador de um distrito escolar crie turmas e especifique os alunos ins- critos na turma. A interface administrativa pode ser, por exemplo, uma interface baseada na Web que exige que o administrador forneça cre-
denciais para poder alterar as listas para cada turma. Em outras modali- dades, o serviço de gerenciamento de escola 240 inclui uma interface para transferir por download dados de um sistema de informações de escola separado e distinto que o distrito escolar mantém separadamente da arquitetura servidor-cliente 200. As turmas e listas podem ser transfe- ridas por download automaticamente a partir do sistema de informações de escola.
[0050] Em algumas modalidades, a arquitetura servidor-cliente 200 pode incluir também um canal de progresso 250. O canal de progresso 250 fornece uma arquitetura segura para gerenciar informações relaci- onadas ao rastreamento de progresso à medida que os alunos conclu- em as tarefas descritas nos materiais publicados pelos instrutores. Os dispositivos clientes 120 dos alunos podem incluir um processo de se- gundo plano (isto é, um daemon) configurado para monitorar ativida- des relacionadas a um ou mais aplicativos de terceiros instalados nos dispositivos clientes 120. O daemon rastreia o progresso feito pelos alunos na conclusão das tarefas especificadas em um ou mais materi- ais publicados e transmite as informações relacionadas ao progresso de cada aluno para o canal de progresso 250. O canal de progresso 250 agrega e armazena as informações de progresso para possibilitar que o instrutor veja relatórios abrangentes sobre um ou mais alunos em uma turma.
[0051] Em algumas modalidades, o canal de progresso 250 é im- plementado como vários serviços separados executando em diferen- tes dispositivos servidores 110 e estruturados para processar infor- mações de progresso em um fluxo de dados de uma forma canaliza- da. Em outras modalidades, o canal de progresso 250 pode ser im- plementado com vários serviços executando em um único dispositivo servidor 110.
[0052] Em algumas modalidades, a arquitetura servidor-cliente 200 pode incluir também um serviço de identidade 260. O serviço de identi- dade 260 possibilita que os dados relacionados a determinados disposi- tivos clientes 120 sejam associados a pessoas específicas (por exem- plo, instrutores ou alunos) no ambiente de sala de aula. Em algumas modalidades, o serviço de identidade 260 associa vários identificadores de usuário ou identificadores de dispositivo a um identificador de serviço de diretório limitado em escopo ao lado do servidor da arquitetura servi- dor-cliente 200. O uso do serviço de identidade 260 protege a integrida- de dos dados mediante a desassociação de informações de identifica- ção pessoal coletadas pelo daemon a partir de quaisquer identificadores utilizados fora de um escopo específico (por exemplo, o ambiente de sala de aula). Dessa forma, dados sobre a pontuação de um usuário em testes não podem ser ligados a outras informações fora do dito escopo, como o tipo de música um aluno prefere ouvir em um serviço de com- partilhamento de músicas oferecido pelo mesmo provedor de serviços. A integridade de tais informações de identificação pessoal pode ser es- pecialmente importante, uma vez que os alunos são em sua maioria menores de idade e pode haver considerações especiais que são leva- das em conta quando são protegidos dados de usuários vulneráveis de uma certa idade.
[0053] Em algumas modalidades, o identificador de serviço de diretório é um identificador estático associado a um usuário de um ou mais dispositivos fornecidos por um determinado provedor de servi- ços. O identificador de serviço de diretório pode ser associado a um identificador de usuário utilizado pelo dispositivo cliente para associar um usuário a uma conta de usuário específica. O identificador de ser- viço de diretório pode ser associado a um identificador externo asso- ciado ao usuário de uma conta de usuário específica e exposto aos dispositivos clientes. O identificador de serviço de diretório pode ser associado a um identificador interno de um usuário específico. O identificador interno pode ser desassociado do identificador de servi- ço de diretório e um novo identificador interno pode, então, ser asso- ciado ao identificador de serviço de diretório. Em algumas modalida- des, a substituição do identificador interno por um novo identificador interno pode ser usada para romper uma associação entre certos da- dos armazenados e um usuário específico ou conta de usuário sem precisar apagar os ditos dados de um ou mais dispositivos servidores
110.
[0054] Em algumas modalidades, a arquitetura servidor-cliente 200 pode incluir também um serviço de relatório 270 que possibilita que dados agregados relacionados ao progresso de atividades concluídas por vários alunos sejam compilados e fornecidos a um dispositivo cli- ente 120 para serem revisados por um instrutor. O serviço de relatório 270 pode também analisar as informações de progresso recebidas de uma pluralidade de alunos com a finalidade de gerar dados estatísticos relacionados às informações de progresso. Por exemplo, o serviço de relatório 270 pode gerar estatísticas relacionadas a quantos alunos realizaram uma dada atividade. O serviço de relatório 270 pode tam- bém rastrear resultados relacionados a atividades (por exemplo, nú- mero de questões respondidas corretamente em uma atividade-teste, o tempo para concluir o teste, etc.). Em outras modalidades, o aplicati- vo de cliente 205 recebe do serviço de relatório 270 dados de relatório sobre cada aluno, e o aplicativo de cliente 205 agrega os dados de re- latório e/ou calcula as estatísticas para a turma.
[0055] Será reconhecido que o aplicativo de cliente 205 pode ser configurado para interagir com alguns ou todos dentre os serviços descritos na arquitetura servidor-cliente 200. Por exemplo, o aplicativo de cliente 205 pode ser configurado para gerar chamadas ao serviço de materiais 220, ao serviço de entrega de trabalho 230, ao canal de progresso 250 e ao serviço de relatório 270. Em algumas modalida-
des, o aplicativo de cliente 205 não é configurado para interagir com um subconjunto dos serviços, como o serviço de gerenciamento de escola 240 e/ou o serviço de identidade 260. Em vez disso, outros ser- viços podem gerar chamadas a esses serviços em resposta ao rece- bimento de uma chamada a partir do aplicativo de cliente 205.
[0056] A Figura 3 ilustra uma GUI (interface gráfica de usuário) 300 do aplicativo de cliente 205, de acordo com algumas modalida- des. A GUI 300 pode ser apresentada a um instrutor em uma tela 302 do dispositivo cliente 120. Conforme mostrado na Figura 3, a GUI 300 é exibida em um computador tipo tablet, como o dispositivo cliente 120-2. A GUI 300 pode incluir vários elementos como elemento gráfi- co, texto, ícones, formas, campos de entrada, campos de saída, regi- ões de exibição, etc.
[0057] Em algumas modalidades, a GUI 300 inclui uma primeira re- gião de exibição 310, uma segunda região de exibição 320 e uma tercei- ra região de exibição 330. A primeira região de exibição 310 é usada pa- ra exibir representações de um material criado previamente por um ins- trutor. A segunda região de exibição 320 é usada para exibir representa- ções de turmas associadas a um determinado instrutor. Conforme mos- trado na Figura 3, a primeira região de exibição 310 ocupa uma primeira porção dos pixels incluídos na tela 302, e a segunda região de exibição 320 ocupa uma segunda porção dos pixels incluídos na tela 302.
[0058] A primeira região de exibição 310 inclui um cabeçalho que indica elementos 312 que representam materiais separados e distintos associados a uma conta de usuário. Os materiais podem ser criados por instrutores, administradores ou contas associadas a outras funções. Em algumas modalidades, cada elemento 312 é definido por uma caixa que inclui um título do material, um descritor de uma data de entrega associ- ada ao material e uma indicação de quantos alunos concluíram o materi- al. Por exemplo, um primeiro elemento 312-1 está associado a um pri-
meiro material para uma tarefa atribuída "Flora e fauna", que tem uma data de entrega de 12 de março e foi concluída por todos os alunos; e um segundo elemento 312-2 está associado a um segundo material para uma tarefa "Preparação para o teste", que tem uma data de entrega de 15 março e foi concluída por apenas sete dos vinte e dois alunos para os quais o material foi designado. Será reconhecido que, em outras modali- dades, os elementos 312 podem assumir formas diferentes. Por exem- plo, os elementos 312 podem omitir a data de entrega e/ou o indicador de conclusão. Alternativamente, os elementos 312 podem incluir infor- mações além ou no lugar da data de entrega e/ou do indicador de con- clusão. Ainda, os elementos 312 podem incluir elemento gráfico como uma imagem ou ícones representando atividades diferentes atribuídas no material. Em alguns casos, o elemento gráfico pode ser animado, como a reprodução de um vídeo ou a apresentação de uma sequência de slides com imagens ligadas ao material como um segundo plano do elemento
312.
[0059] A segunda região de exibição 320 inclui um cabeçalho que indica elementos 322 que representam turmas separadas e distintas as- sociadas a uma conta de usuário de um determinado instrutor. Em algu- mas modalidades, cada elemento 322 é definido por uma caixa que inclui um título da turma e uma descrição dos vários materiais atribuídos à tur- ma. Por exemplo, um primeiro elemento 322-1 está associado a uma turma "Ciência A", que tem dois materiais atribuídos; um segundo ele- mento 322-2 está associado a uma turma "Matemática A", que tem três materiais atribuídos; e um terceiro elemento 322-3 está associado a uma turma "Matemática B", que não tem nenhum material atribuído. Será re- conhecido que, em outras modalidades, os elementos 322 podem assu- mir formas diferentes. Por exemplo, os elementos 322 podem omitir um indicador do número de materiais atribuídos a uma turma. Alternativa- mente, os elementos 322 podem incluir informações além ou no lugar do título da turma e do indicador do número de materiais atribuídos à turma. Por exemplo, os elementos 322 podem incluir vários alunos inscritos na turma. Ainda, os elementos 322 podem incluir elemento gráfico como uma imagem ou uma cor de fundo codificada para indicar um assunto ou departamento específico relacionado à turma.
[0060] Em algumas modalidades, um instrutor pode selecionar uma turma específica (ou múltiplas turmas) usando uma interface de entrada do dispositivo cliente 120. Por exemplo, um instrutor pode usar uma inter- face de toque para selecionar um elemento 322 associado a uma das turmas disponíveis associadas ao instrutor. Após a seleção de um de- terminado elemento 322, o elemento selecionado 322 é ativado e os elementos 312 na primeira região de exibição 310 podem ser atualizados para refletir os materiais associados à turma representada pelo elemento selecionado 322 na segunda região de exibição 320. Um elemento sele- cionado 322 (por exemplo, o elemento atualmente ativado) pode ser des- tacado para indicar que o elemento 322 está ativo. O destaque pode ser implementado mediante aumento do tamanho do elemento, mudança de uma cor associada ao elemento 322 ou mudança da cor ou do peso de uma borda do elemento 322, exibição de uma caixa ao redor do elemen- to selecionado 322, e assim por diante. Conforme mostrado na Figura 3, o primeiro elemento 322-1 é ativado e mostrado maior que o segundo elemento 322-2 e o terceiro elemento 322-3.
[0061] Será reconhecido que, em algumas modalidades, pode haver espaço insuficiente na primeira região de exibição 310 e/ou na segunda região de exibição 320 para apresentar todas as turmas e/ou todos os materiais atribuídos a uma turma específica dentro dos limites da tela
302. Em tais casos, o usuário do dispositivo cliente 205 pode usar co- mandos de entrada, como gestos de toque, para mostrar elementos adi- cionais. Por exemplo, pode ser mostrado um ícone que indica que alguns elementos não são exibidos. Os elementos adicionais serão mostrados na primeira região de exibição 310 ou na segunda região de exibição 320 em resposta à seleção do ícone feita pelo usuário. Em um outro exemplo, um usuário pode usar um gesto de toque de passar o dedo para rolar a tela horizontalmente e exibir elementos adicionais enquanto outros ele- mentos são movidos para dentro ou removidos da região de exibição es- pecífica.
[0062] Uma terceira região de exibição 330 está situada próxima a uma borda superior da tela 302. A terceira região de exibição 330 inclui elementos que possibilitam que um usuário do aplicativo de cliente 205 inicie uma sessão com uma conta de usuário, gere novos materiais para uma turma específica ou edite materiais gerados previamente armaze- nados localmente no dispositivo cliente 120 e/ou remotamente em um dispositivo servidor 110. Em algumas modalidades, a terceira região de exibição 330 é oculta e pode ser exibida em resposta a uma entrada do usuário, como um gesto de toque de passar o dedo verticalmente para fazer com que a terceira região de exibição 330 seja reexibida.
[0063] Um primeiro ícone 332 é exibido próximo a um lado es- querdo da terceira região de exibição 330. O primeiro ícone 332, quando selecionado por um usuário, pode fazer com que o aplicativo de cliente 205 solicite a um usuário que insira credenciais para iniciar uma sessão com uma conta de usuário associada a um instrutor. Em algumas modalidades, a primeira região de exibição 310 e a segunda região de exibição 320 ficam ocultas até que um usuário inicie uma sessão com uma conta de usuário específica utilizando o primeiro ícone 332. Em algumas modalidades, após o início do aplicativo de cliente 205, uma interface separada é exibida ao usuário solicitando que insira credenciais para entrar em uma conta de usuário. A GUI 300 só será exibida na tela 302 depois que o usuário tiver entrado com êxito em uma conta de usuário específica. O primeiro ícone 332 pode, então, ser usado para sair da conta de usuário e/ou para entrar em uma conta de usuário diferente.
[0064] Um segundo ícone 334 é exibido próximo a um lado direito da terceira região de exibição 330. O segundo ícone 334, quando selecio- nado por um usuário, pode fazer com que o aplicativo de cliente 205 gere um arquivo ou estrutura de dados em um sistema de arquivos do disposi- tivo cliente 120 para armazenar informações relacionadas a um novo ma- terial. Em algumas modalidades, o novo arquivo ou estrutura de dados é automaticamente associado à turma ativa selecionada na segunda regi- ão de exibição 320. O instrutor pode, então, adicionar informações no arquivo ou estrutura de dados usando uma GUI diferente, a qual será descrita em detalhes mais adiante com referência às Figuras 6A a 6E.
[0065] Um terceiro ícone 336 é exibido próximo ao lado direito da terceira região de exibição 330. O terceiro ícone 336, quando seleciona- do por um usuário, pode fazer com que o aplicativo de cliente 205 recu- pere informações armazenadas em um arquivo ou estrutura de dados para um material gerado previamente. Em algumas modalidades, um dos elementos 312 na primeira região de exibição 310 é ativado, seja auto- maticamente com base em critérios de seleção ou manualmente em res- posta a uma entrada fornecida pelo usuário. Por exemplo, um elemento 312 pode ser selecionado automaticamente para ser ativado com base na menor diferença entre a data atual e uma data de entrega de um ma- terial dentre todos os materiais armazenados para uma turma específica quando o elemento 322 que representa a turma for ativado. Alternativa- mente, um elemento 312 pode ser selecionado manualmente para ser ativado em resposta a uma entrada de gesto de toque (por exemplo, uma entrada de toque leve) em uma área da tela 302 que corresponde ao elemento específico 312. Embora não mostrado explicitamente na Figura 3, um elemento selecionado 312 na primeira região de exibição 310 (por exemplo, o elemento atualmente ativado) pode ser destacado para indi- car que o elemento selecionado 312 está ativo. Em resposta à seleção do terceiro ícone 336, a GUI diferente, a qual será descrita em detalhes mais adiante com referência às Figuras 6A a 6E, pode ser exibida pelo dispositivo cliente 120 e preenchida com dados do arquivo ou estrutura de dados associada ao elemento 312 ativo.
[0066] Em algumas modalidades, a primeira região de exibição 310 inclui representações de materiais que estão sendo preparados, bem como de materiais que foram publicados em uma lista de alunos. Em alguns casos, os elementos 312 podem incluir uma indicação de se o material representado pelo elemento 312 foi publicado ou ainda será publicado (isto é, ainda está sendo preparado pelo instrutor).
[0067] Será reconhecido que a GUI 300 descrita acima e mostrada na Figura 3 é meramente uma modalidade exemplificadora de uma GUI projetada para o aplicativo de cliente 205. Em outras modalidades, a GUI para o aplicativo de cliente 205 pode assumir outras formas. A aparência da GUI pode também corresponder a elementos de exibição padrão as- sociados a um determinado sistema ou ambiente operacional alvo. Além disso, em ainda outras modalidades, o aplicativo de cliente 205 é um aplicativo baseado na Web mostrado em um navegador do dispositivo cliente 120. Nessas modalidades, a GUI 300 pode incluir uma pluralidade de elementos de linguagem de marcação de hipertexto (HTML) incluídos em um ou mais documentos HTML. A representação de tais elementos pode depender da implementação do aplicativo de navegador no disposi- tivo cliente 120 e, em alguns casos, das preferências de usuário associa- das ao aplicativo de navegador.
[0068] A Figura 4 ilustra uma relação cliente-servidor entre o ser- viço de materiais 220 e um aplicativo de cliente 205 e/ou um daemon 440, de acordo com algumas modalidades. O serviço de materiais 220 fornece um meio de um instrutor criar e atribuir materiais a uma lista de alunos inscritos em uma turma associada ao instrutor. Con- forme descrito acima, o aplicativo de cliente 205 é configurado para solicitar a um usuário que forneça credenciais associadas a uma con- ta de usuário. Se a conta de usuário estiver associada a um instrutor, então o aplicativo de cliente 205 permite que o instrutor gere arquivos ou estruturas de dados para os materiais armazenados na memória 420 do dispositivo cliente 120. Em algumas modalidades, esses ar- quivos ou estruturas de dados podem ser sincronizados com um ser- viço de armazenamento baseado em rede, permitindo que o instrutor acesse as informações relacionadas ao material a partir de múltiplos dispositivos clientes 120.
[0069] Conforme mostrado na Figura 4, um dispositivo cliente 120 inclui um processador 410, uma tela 302 e uma memória 420. A memória 420 inclui um sistema operacional 430, o aplicativo de cliente 205, um daemon 440 e uma base de dados local 445. O daemon 440 é um pro- cesso de segundo plano que implementa uma API que possibilita ao apli- cativo de cliente 205 se comunicar assincronamente com o daemon 440 para executar certas tarefas. Uma dessas tarefas é executada para criar um arquivo na base de dados local 445.
[0070] Em algumas modalidades, o daemon 440 mantém uma base de dados local 450. Em algumas modalidades, um instrutor po- de criar um novo arquivo ou estrutura de dados para um material utili- zando o aplicativo de cliente 205. O aplicativo de cliente 205 solicita ao daemon 440 que crie um arquivo ou estrutura de dados para o material na base de dados local 450 mantida pelo daemon 440. O instrutor pode preencher o arquivo ou estrutura de dados para o ma- terial utilizando a GUI 600, a qual será discutida em detalhes mais adiante com referência às Figuras 6A a 6E.
[0071] Em algumas modalidades, o daemon 440 é configurado para sincronizar arquivos ou estruturas de dados na base de dados local 450 com uma base de dados remota 460. A base de dados remota 460 pode ser uma base de dados distribuída, como um serviço de base de dados baseado em nuvem, implementado em vários dispositivos servidores
110. O daemon 440 faz interface com a base de dados remota 460 para sincronizar os arquivos ou estruturas de dados na base de dados local 450 com versões remotas dos arquivos ou estruturas de dados, de modo que os arquivos ou estruturas de dados possam ser acessados e/ou mo- dificados usando-se múltiplos dispositivos clientes 120. O mecanismo de sincronização será descrito em mais detalhes abaixo com referência à Figura 5.
[0072] Depois que um material é sincronizado com a base de da- dos remota 460, o instrutor pode, então, passar para um dispositivo cliente 120 diferente, usando uma versão diferente do aplicativo de cliente 205, e acessar a versão do material armazenado no servidor remoto 110 utilizando o novo dispositivo cliente 120. Quaisquer alte- rações em uma cópia local do recurso armazenado no novo dispositi- vo cliente 120 serão sincronizadas com a base de dados remota 460 para atualizar a versão do material na base de dados remota. Essas alterações são, então, enviadas por push para o aplicativo de cliente 205 no dispositivo cliente anterior 120 para atualizar uma cópia do recurso local na base de dados local 450 no dispositivo cliente inicial
120.
[0073] Por exemplo, um instrutor pode abrir um aplicativo de cliente 205 em um computador portátil 120-1 e criar uma versão local de um material armazenado em uma memória do computador portátil 120-1. O daemon 440 no computador portátil 120-1 transmite uma cópia da ver- são local do material para a base de dados remota 460 para sincronizar o material com uma versão do material armazenado na base de dados remota 460. O instrutor então abre um aplicativo de cliente 205 separa- do em um computador tipo tablet 120-2 e insere suas credenciais de conta de usuário. Abrir o aplicativo de cliente 205 no computador tipo tablet 120-2 faz com que o daemon 440 transfira por download a versão remota do material armazenado na base de dados remota 460 para uma memória do computador tipo tablet 120-2, na qual o aplicativo de cliente 205 no computador tipo tablet 120-2 poderá acessar a cópia lo- cal do material e modificá-la na memória do computador tipo tablet 120-
2. Quaisquer modificações feitas na cópia local do material podem ser sincronizadas de volta com a base de dados remota 460 para atualizar a versão do material armazenado na base de dados remota 460. Na próxima vez que o instrutor abrir o aplicativo de cliente 205 no compu- tador portátil 120-1, o aplicativo de cliente 205 fará com que o daemon 440 solicite uma versão atual do material a partir da base de dados re- mota 460, que transmitirá a versão do material armazenado na base de dados remota 460 para o daemon 440 no computador portátil 120-1 pa- ra armazená-la na memória do computador portátil 120-1 como a ver- são local do material.
[0074] Em algumas modalidades, o serviço de materiais 220 é im- plementado como um conjunto de instruções, armazenado em uma memória de um dispositivo servidor 110 e configurado para ser execu- tado por um processador do dispositivo servidor 110. O serviço de ma- teriais 220 gerencia a distribuição de materiais entre dispositivos clien- tes 120 associados a instrutores e alunos. Em algumas modalidades, o serviço de materiais 220 implementa a distribuição de materiais com o uso da base de dados remota 460. O serviço de materiais 220 cria zo- nas 465 na base de dados remota 460. Cada zona 465 tem o escopo definido para uma turma específica. Alternativamente, cada zona 465 tem o escopo definido para um grupo de alunos. Cada turma associa- da ao instrutor pode ser associada a um grupo diferente de alunos.
[0075] O instrutor pode criar materiais na base de dados local 450 de um dispositivo cliente. Os materiais são sincronizados com uma zona pessoal 465-1 para o instrutor na base de dados remota 460. Depois que um dado material é preparado e está pronto para ser atri-
buído a um grupo de alunos, o instrutor pode publicar o material usando o aplicativo de cliente 205 para atribuir o material ao grupo de alunos. O aplicativo de cliente 205 solicita ao serviço de materiais 220 que publique o material. O serviço de materiais 220 faz então com que uma cópia do material seja copiada para uma nova zona 465-2 na base de dados remota 460 com escopo para o grupo de alunos especificado no material. Cada aluno no escopo da nova zona 465-2 é inscrito na nova zona 465-2 de modo que um daemon 440 em um dispositivo cliente 120 controlado por cada um dos alunos no grupo de alunos sincronize a cópia do material publicado com uma memória local do dispositivo cliente 120 para o aluno.
[0076] Será reconhecido que o serviço de materiais 220 também ge- ra identificadores de materiais que podem ser usados para identificar o recurso para o material armazenado na base de dados remota 460. Em algumas modalidades, um identificador de material é gerado quando o material é publicado. Em outras modalidades, um identificador de materi- al é gerado quando o material é criado. O recurso para o material é então copiado para a nova zona 465-2 e apagado da zona pessoal 465-1 do instrutor quando o material é publicado.
[0077] A Figura 5 ilustra um mecanismo de sincronização imple- mentado pelo daemon 440, de acordo com algumas modalidades. Conforme mostrado na Figura 5, o daemon 440 é configurado para fazer interface, por meio de uma rede 150, com um serviço de base de dados 510 que fornece um front-end para a base de dados remota
460. O serviço de base de dados 510 pode ser implementado em um dispositivo servidor 110. Em algumas modalidades, a base de dados remota 460 é restrita ao escopo de uma dada organização ou distrito escolar. Dessa forma, todas as informações armazenadas em uma base de dados remota 460 são para um distrito escolar específico. Nessas modalidades, o serviço de base de dados 510 é configurado para gerenciar múltiplas bases de dados remotas 460 para organiza- ções ou distritos escolares diferentes. Em várias modalidades, a base de dados remota 460 é um serviço de base de dados distribuída base- ado em nuvem gerenciado por um provedor de serviços.
[0078] Em algumas modalidades, o serviço de base de dados 510 é configurado para armazenar arquivos em uma pluralidade de zonas 465 diferentes implementadas na base de dados remota 460. Cada instrutor e/ou aluno no distrito escolar pode ser atribuído a uma zona 465 diferente como uma zona pessoal na base de dados remota 460. As zonas pesso- ais 465 podem armazenar arquivos ou estruturas de dados associadas a uma conta de usuário específica. Além disso, cada turma criada pelo dis- trito escolar pode ser atribuída a uma zona de turma 465 para comparti- lhar recursos com todos os alunos e instrutores associados a uma turma. Em modalidades alternativas, podem ser criadas zonas 465 para grupos de alunos e/ou instrutores formando um subconjunto de uma turma ou que estão inscritos em duas ou mais turmas. As zonas de turmas 465 podem ser usadas para publicar materiais para alunos e/ou outros instru- tores associados a uma turma específica. As zonas 465 podem ter esco- po definido para uma organização, uma turma ou um indivíduo (por exemplo, um instrutor ou um aluno). As zonas 465 podem também ser utilizadas para diferentes dados.
[0079] Em algumas modalidades, o serviço de base de dados 510 mantém inscrições para cada zona 465 que indicam uma lista de usuá- rios (por exemplo, instrutores e/ou alunos) dentro do escopo de cada zo- na 465. O serviço de base de dados 510 pode enviar por push notifica- ções a cada um dos dispositivos clientes 120 para os usuários inscritos em uma zona 465 sempre que um recurso dentro da zona 465 for atuali- zado. O daemon 440 em um determinado dispositivo cliente 120 recebe a notificação e transfere por download os recursos atualizados da zona 465 para atualizar cópias locais do recurso 522 na base de dados local
450.
[0080] Será reconhecido que podem ser criados tipos diferentes de zonas para explorar o mecanismo de sincronização com a finalidade de implementar uma funcionalidade exigida por um ou mais serviços na arquitetura servidor-cliente 200. Por exemplo, podem ser criadas zonas para armazenar materiais, trabalhos a serem entregues, contextos mar- cados com indicador associados a aplicativos de terceiros, informações de lista para uma turma, informações de rastreamento de progresso, etc. Além disso, cada uma das zonas descritas acima pode ter escopo definido para um único usuário (isto é, como uma zona pessoal) ou para múltiplos usuários. Por exemplo, é criada uma zona de material 465 pa- ra armazenar dados relacionados a um material (por exemplo, anexos, recursos para trabalhos a serem entregues carregados pelos alunos, etc.) e pode ter escopo definido para um grupo de alunos identificados no material. Uma zona de progresso 465 é criada para armazenar in- formações de progresso para vários alunos. A zona de progresso 465 pode ter escopo definido para uma turma ou um material específico pu- blicado para uma turma. Uma zona de lista 465 é criada para armaze- nar dados relacionados à estrutura de turmas para uma organização. A zona de lista 465 pode ter escopo definido para a organização.
[0081] As Figuras 6A a 6E ilustram uma GUI 600 do aplicativo de cliente 205, de acordo com algumas modalidades. A GUI 600 pode ser usada para editar as informações armazenadas em um material que um instrutor está preparando para atribuir a uma turma. A GUI 600 pode ser apresentada em uma tela 302 do dispositivo cliente
120. Conforme mostrado na Figura 6A, a GUI 600 é exibida em um computador tipo tablet, como o dispositivo cliente 120-2. A GUI 600 pode incluir vários elementos como elemento gráfico, texto, ícones, formatos, campos de entrada, regiões de exibição, etc. Em algumas modalidades, a GUI 600 é exibida em resposta à seleção do segundo ícone 334 ou do terceiro ícone 336 feita por um instrutor na GUI 300.
[0082] A GUI 600 inclui uma primeira região de exibição 610, uma segunda região de exibição 620 e a terceira região de exibição 630. A primeira região de exibição 610 é usada para exibir informações relaci- onadas a um material criado por um instrutor para uma turma específica ou grupo de alunos específico. A segunda região de exibição 620 é usada para exibir anexos do material. Conforme mostrado na Figura 6, a primeira região de exibição 610 ocupa uma primeira porção dos pixels incluídos na tela 302, e a segunda região de exibição 620 ocupa uma segunda porção dos pixels incluídos na tela 302. A terceira região de exibição 630 ocupa uma terceira porção dos pixels incluídos na tela
302. Em algumas modalidades, a terceira região de exibição 630 pode ser oculta, e a terceira região de exibição 630 é exibida em resposta a uma entrada de usuário, como usar um gesto de toque de passar o de- do para fazer com que a terceira região de exibição 630 apareça próxi- mo a uma borda superior da tela 302.
[0083] Conforme mostrado na Figura 6A, a primeira região de exibição 610 inclui uma interface para indicar um grupo de alunos ao qual o material será atribuído. A interface mostra um rótulo (por exemplo, "Para:"), um elemento de interface de usuário 612, e um elemento de interface de usuário 614. Um instrutor pode especificar um grupo de alunos ao qual o material será atribuído ao digitar um identificador para o(s) aluno(s) no elemento de interface de usuário 612 ou selecionar o elemento de interface de usuário 614 e selecio- nar o grupo de alunos a partir de uma lista.
[0084] Em algumas modalidades, selecionar o elemento de inter- face de usuário 614 faz com que o aplicativo de cliente 205 solicite da- dos de lista para as turmas associadas ao instrutor conectado ao apli- cativo de cliente 205. Os dados de lista incluem identificadores para todos os alunos inscritos em quaisquer turmas associadas ao instrutor.
O aplicativo de cliente 205 pode solicitar a lista de identificadores ao serviço de gerenciamento de escola 240. Alternativamente, o aplicativo de cliente 205 pode recuperar a lista de identificadores a partir de uma memória local 420 do dispositivo cliente 120. Por exemplo, um serviço de lista pode solicitar periodicamente os dados de lista do serviço de gerenciamento de escola 240, que armazena os dados de lista em uma zona de lista 465 da base de dados remota 460. A zona de lista 465 pode ter escopo definido para uma turma específica e o instrutor pode ser inscrito nas zonas de listas 465 para aquelas turmas associ- adas ao instrutor. Dessa forma, por meio do mecanismo de sincroniza- ção, o daemon 440 transfere por download os dados de lista para a base de dados local 450 do dispositivo cliente 120, no qual eles pode- rão ser acessados pelo aplicativo de cliente 205.
[0085] A primeira região de exibição 610 inclui também uma interfa- ce para indicar uma data de entrega para os alunos concluírem as ativi- dades anexadas ao material e enviar quaisquer trabalhos a serem entre- gues atribuídos no material. A interface mostra um rótulo (por exemplo, "Data de entrega:") e um elemento de interface de usuário 616. O ele- mento de interface de usuário 616 pode exibir uma data (por exemplo, um período de tempo) para concluir a tarefa. Selecionar o elemento de interface de usuário 616 pode fazer com que uma representação de um calendário seja exibida para que um instrutor possa selecionar uma data.
[0086] A primeira região de exibição 610 inclui também vários campos de texto que podem ser editados pelo instrutor para alterar um título e um corpo do material. Por exemplo, conforme mostrado na Figura 6A, o instrutor especificou um título "Flora e fauna" para o ma- terial e escreveu um conjunto de instruções fornecidas ao aluno sobre como realizar a tarefa atribuída.
[0087] A segunda região de exibição 620 inclui um par de ele- mentos de interface de usuário chamados de um primeiro ícone 622 e um segundo ícone 624. O primeiro ícone 622 pode ser selecionado por um instrutor para adicionar ao material um espaço reservado de um trabalho a ser entregue. O segundo ícone 624 pode ser selecio- nado por um instrutor para adicionar uma atividade ao material. Quaisquer anexos do material podem ser listados abaixo do primeiro ícone 622 e do segundo ícone 624. Conforme mostrado na Figura 6A, não há espaços reservados para trabalhos a serem entregues ou ati- vidades atualmente anexadas a este material.
[0088] Conforme mostrado na Figura 6B, anexar ao material um espaço reservado para um trabalho a ser entregue preenche uma caixa 640 da segunda região de exibição 620 com vários elementos de interface de usuário. Por exemplo, um primeiro elemento de inter- face de usuário 642 fornece as opções para que o trabalho seja edi- tado, um segundo elemento de interface de usuário 644 mostra in- formações relacionadas ao trabalho a ser entregue, um terceiro ele- mento de interface de usuário 646 permite que um usuário exiba in- formações mais detalhadas sobre o trabalho a ser entregue, e um quarto elemento de interface de usuário 648 permite que um usuário reordene os anexos de um material ou apague (por exemplo, desa- nexe) do material o espaço reservado para o trabalho a ser entregue. Em algumas modalidades, o segundo elemento de interface de usuá- rio 644 inclui uma imagem em miniatura de uma representação do recurso para o trabalho e um texto disposto próximo à imagem em miniatura que fornece informações relacionadas ao trabalho. Por exemplo, o texto pode indicar um título do trabalho a ser entregue e um tipo de recurso que será gerado para o trabalho a ser entregue. Será reconhecido que essas informações podem ser omitidas ou que informações adicionais podem ser incluídas no lugar das informações aqui descritas.
[0089] Novamente com referência à Figura 6A, selecionar o se-
gundo ícone 624 faz com que o aplicativo de cliente 205 exiba uma interface que inclui elementos de interface de usuário que permitem que um instrutor anexe uma atividade ao material. Os tipos de ativi- dades podem incluir uma atividade concluída com um aplicativo de terceiros, uma atividade realizada por visualização ou edição de um anexo, uma atividade concluída por visualização de um recurso de rede associado a um indicador ou link em um aplicativo de navegador e uma atividade concluída por visualização de um arquivo de multi- mídia (por exemplo, imagem(ns), vídeo(s), etc.).
[0090] Conforme mostrado na Figura 6C, a caixa 650 pode ser exi- bida em resposta à seleção do segundo ícone 624 feita por um usuário na GUI 600. A caixa 650 inclui um primeiro elemento de interface de usuário 652 que permite que um instrutor associe uma atividade de apli- cativo ao material. Por exemplo, um aplicativo de terceiros pode ser con- figurado para apresentar um teste a um aluno e solicitar ao aluno que responda as questões incluídas no teste. Como outro exemplo, um apli- cativo de terceiros poderia fornecer uma aula interativa para um aluno na qual o aluno deve seguir instruções para realizar uma tarefa (por exem- plo, escrever código fonte para um programa, jogar um jogo, correspon- der imagens a palavras em um idioma estrangeiro, etc.). Como ainda ou- tro exemplo, o aplicativo de terceiros poderia apresentar texto de um livro digital ou livro didático para que um aluno leia uma ou mais seções do livro digital ou livro didático.
[0091] A caixa 650 inclui um segundo elemento de interface de usuá- rio 654 que permite que um instrutor anexe um arquivo ao material. O arquivo pode incluir um documento, uma planilha, uma apresentação (por exemplo, uma apresentação com slides), código fonte, ou qualquer outro tipo de arquivo que possa ser visualizado com um aplicativo instalado no dispositivo cliente 120. O arquivo anexado permite que o instrutor distri- bua materiais que tipicamente são lidos ou visualizados por um aluno.
Em algumas modalidades, o instrutor pode especificar se um único ar- quivo é compartilhado entre todos os alunos na turma, referido como uma opção colaborativa, ou se clones de um arquivo (por exemplo, có- pias) são compartilhados com cada aluno. O instrutor pode também es- pecificar permissões associadas ao arquivo, tornando o arquivo anexado um arquivo somente de leitura ou permitindo acesso de leitura e grava- ção para que um aluno edite o arquivo.
[0092] A caixa 660 inclui um terceiro elemento de interface de usuário 666 que permite que um instrutor anexe um indicador ou link ao material. Um indicador ou link se refere a um hiperlink que especi- fica um localizador uniforme de recursos (URL - "Uniform Resource Locator") de um recurso acessível em uma rede como a Internet. O link pode permitir que os alunos visualizem sites da Web que possam ser pertinentes à lição.
[0093] A caixa 650 inclui um quarto elemento de interface de usuário 658 que permite que um instrutor anexe um arquivo de mul- timídia ao material. Um arquivo de multimídia pode incluir uma ima- gem, uma apresentação de slides, um vídeo ou outros tipos de mul- timídia como dados de realidade virtual ou um modelo tridimensional. Os arquivos de multimídia podem, então, ser visualizados por um aluno com o uso de um aplicativo instalado no dispositivo cliente 120, como um aplicativo de visualização de imagens.
[0094] Quando um usuário seleciona o primeiro elemento de in- terface de usuário 652 para anexar uma atividade associada a um aplicativo de terceiros ao material, a caixa 650 pode ser substituída pela caixa 660, conforme mostrado na Figura 6D. A caixa 660 fornece a um a habilidade de selecionar o aplicativo de terceiros para a ativi- dade a partir de uma lista de aplicativos.
[0095] Em algumas modalidades, a caixa 660 inclui um primeiro elemento de interface de usuário 662 para selecionar qualquer aplicativo de uma lista de aplicativos disponíveis. Entretanto, em certos casos, al- guns aplicativos de terceiros podem implementar ao menos uma porção de uma estrutura de software de kit de turma que permite que o aplicativo de terceiros forneça dados de progresso a um ou mais serviços para ras- trear o progresso de alunos que concluem atividades usando o aplicativo de terceiros. Esses aplicativos de terceiros que implementam ao menos uma porção da estrutura de software de kit de turma podem ser chama- dos aqui de aplicativos de progresso. Os aplicativos de progresso que implementam ao menos uma porção da estrutura de software podem ser listados separadamente em elementos de interface de usuário individuais abaixo do primeiro elemento de interface de usuário 662. Por exemplo, um segundo elemento de interface de usuário 664 permite que um instru- tor anexe uma atividade para um primeiro aplicativo de progresso, um terceiro elemento de interface de usuário 666 permite que um instrutor anexe uma atividade para um segundo aplicativo de progresso, e um quarto elemento de interface de usuário 668 permite que um instrutor anexe uma atividade para um terceiro aplicativo de progresso.
[0096] Em algumas modalidades, um aplicativo de terceiros im- plementa ao menos uma porção da estrutura de software de kit de turma, que fornece um meio de incluir recursos interativos no aplicati- vo de terceiros. Por exemplo, a estrutura de software de kit de turma permite a um desenvolvedor de software definir um contexto associa- do ao aplicativo. Como usado aqui, um contexto se refere a metada- dos que descrevem a estrutura do aplicativo. Por exemplo, um livro didático digital pode ser descrito usando-se um contexto que define os capítulos, seções, páginas, conjuntos de problemas e estruturas similares do livro didático digital. Em geral, um contexto define meta- dados que permitem que uma atividade seja definida para o aplicativo de terceiros.
[0097] O contexto permite também que o progresso da atividade no aplicativo seja rastreado. Por exemplo, novamente com referência ao exemplo do livro didático digital, um instrutor pode definir uma atividade relacionada à leitura de um capítulo do livro didático. O contexto permite que o instrutor especifique o capítulo ou seção particular no livro didáti- co digital que ele deseja atribuir quando define a atividade. Portanto, ao especificar uma atividade com o uso da GUI 600, o aplicativo de cliente 205 pode consultar o contexto para determinar quais atividades podem ser concluídas usando o aplicativo de terceiros.
[0098] Em algumas modalidades, um instrutor pode pesquisar manualmente uma lista de contextos disponíveis associados a um ou mais aplicativos de terceiros e selecionar um conjunto de contextos que o instrutor gostaria de atribuir a vários materiais. O conjunto de contextos pode ser salvo na memória 420 e associado ao aplicativo de cliente 205 para que o instrutor possa anexar atividades associa- das a esses contextos a um material.
[0099] Em outras modalidades, cada aplicativo de progresso insta- lado no dispositivo cliente 120 pode notificar o daemon 440 sobre con- textos disponíveis fornecidos pelo aplicativo de progresso. O instrutor pode utilizar o aplicativo de cliente 205 para navegar uma lista de con- textos disponíveis publicada pelo um ou mais aplicativos de progresso e selecionar vários contextos para definir como contextos favoritos. Por exemplo, ao selecionar o primeiro elemento de interface de usuá- rio 662 na caixa 660, o instrutor pode navegar todos os contextos dis- poníveis fornecidos pelos aplicativos de progresso instalados no dis- positivo cliente 120. O instrutor pode, então, selecionar contextos es- pecíficos como seus contextos favoritos. O subconjunto de contextos disponíveis selecionados como favoritos pelo instrutor pode ser arma- zenado na base de dados local 450 do dispositivo cliente 120. Os con- textos favoritos selecionados pelo instrutor podem também ser sincro- nizados com a zona pessoal 465 na base de dados remota 460 desti-
nada ao instrutor. Os elementos de interface de usuário adicionais na caixa 660 podem, então, ser exibidos com cada elemento de interface de usuário correspondente a um contexto favorito específico. O instru- tor pode, então, selecionar um contexto favorito específico para ser anexado ao material.
[0100] Conforme mostrado na Figura 6E, selecionar o segundo elemento de interface de usuário 654 faz com que o aplicativo de cliente 205 exiba uma caixa 670 que inclui dois elementos de interface de usu- ário que permitem que um instrutor especifique opções associadas a um arquivo anexado. Em algumas modalidades, as opções incluem permissões de acesso ao arquivo compartilhado, bem como indicar se o arquivo é colaborativo. Por exemplo, conforme mostrado na Figura 6E, um elemento de interface de usuário 672 permite que um instrutor indi- que se o arquivo é colaborativo. Essa opção determina se o arquivo se- rá compartilhado como um único recurso entre uma pluralidade de usu- ários, ou se uma cópia do arquivo será compartilhada com cada um dos usuários. Um elemento de interface de usuário 674 permite que um ins- trutor altere as permissões de acesso ao recurso do arquivo. Se o re- curso for somente de leitura, então o aluno não será capaz de editar o recurso; no entanto, se o recurso for de leitura-gravação, então o aluno poderá editar o arquivo.
[0101] Será reconhecido que elementos de interface de usuário adicionais, não explicitamente mostrados na Figura 6E, podem ser incluídos na caixa 670. Por exemplo, outros elementos de interface de usuário poderiam permitir que um instrutor especificasse um ar- quivo armazenado na memória local 420 para ser anexado ao mate- rial.
[0102] A Figura 7 ilustra uma relação cliente-servidor entre o servi- ço de materiais 220 e vários aplicativos de clientes 205 e/ou daemons 440 associados a uma pluralidade de alunos em uma turma, de acordo com algumas modalidades. Conforme mostrado na Figura 7, uma turma pode incluir L alunos inscritos na turma, cada aluno tendo permissão de acesso a um ou mais dispositivos clientes 120. Conforme descrito aci- ma, o serviço de materiais 220 é configurado para permitir que um ins- trutor crie e gerencie materiais usando uma pluralidade de dispositivos clientes 120 diferentes controlados pelo instrutor. Além disso, o serviço de materiais 220 é configurado também para auxiliar na distribuição de materiais para um aplicativo de cliente 205 incluído em uma pluralidade de dispositivos clientes 120 adicionais associados a um grupo de alu- nos.
[0103] Em algumas modalidades, um instrutor pode terminar de preparar o material e então publicar o material para atribuí-lo ao grupo de alunos para visualização e conclusão. O serviço de materiais 220 copia o material para uma zona de material 465, destinada a um grupo de alunos especificado no material, na base de dados remota 460. Em resposta à publicação do material feita pelo instrutor, o serviço de ma- teriais 220 notifica cada um dos dispositivos clientes 120 associados aos alunos, por uma variedade de caminhos 710, de que a zona de material 465 na base de dados remota 460 foi atualizada. Um caminho 710 pode se referir a um caminho de rede ("network path") associado a um endereço de destino de uma interface de rede de um dado disposi- tivo cliente 120.
[0104] A notificação pode ser recebida pelo daemon 440 incluído em cada um dos dispositivos clientes 120. O daemon 440 transfere por download então os dados da zona de material 465 para a base de dados local 450 no dispositivo cliente 120. Em algumas modalidades, o serviço de materiais 220 utiliza o serviço de gerenciamento de escola 240 com a finalidade de recuperar identificadores de usuário para os alunos na tur- ma. Os identificadores de usuário podem ser usados para transmitir as notificações, utilizando um serviço de notificação separado, a cada um dos dispositivos clientes 120 associados a um aluno na turma específica.
[0105] Em algumas modalidades, o grupo de alunos pode ser identificado pelo serviço de gerenciamento de escola 240, o qual, em resposta ao recebimento de uma solicitação feita pelo serviço de ma- teriais 220, é configurado para retornar uma lista de identificadores dos alunos inscritos em uma turma específica. Em outras modalida- des, um serviço de lista pode fazer interface com o serviço de geren- ciamento de escola 240 para criar dados de lista em uma zona de lista 465 da base de dados remota 460 com escopo definido para a organização. O serviço de materiais 220 pode, então, acessar os da- dos de lista na base de dados remota 460 em vez de obter os dados de lista diretamente do serviço de gerenciamento de escola 240.
[0106] Em resposta à solicitação de publicação de um material, o serviço de materiais 220 pode copiar o material de uma zona pessoal 465 com escopo definido para o instrutor para uma zona de material 465 com escopo definido para o grupo de alunos na turma. Quando a cópia do material estiver armazenada na zona de material 465, o ser- viço de materiais 220 transmite uma notificação da alteração para quaisquer dispositivos clientes associados aos alunos inscritos na zo- na de material 465. O daemon 440 incluído em um dispositivo cliente 120 de um aluno que está associado à zona de material 465 irá trans- ferir por download automaticamente a cópia do material armazenado na zona de material 465 para uma memória local do dispositivo cliente 120 em resposta ao recebimento da notificação proveniente do serviço de materiais 220. O material pode, então, ser visualizado pelo aplicati- vo de cliente 205 do dispositivo cliente 120 do aluno para que o aluno possa concluir as atividades e/ou visualizar os recursos anexados ao material.
[0107] As Figuras 8A a 8C ilustram a GUI 800 implementada por um aplicativo de cliente 210 em um dispositivo cliente 120 associado a um aluno, de acordo com algumas modalidades. A GUI 800 é dife- rente da GUI 600. O aplicativo de cliente 210 pode ser configurado para exibir a GUI 800 em resposta a um usuário entrar em uma conta de usuário associada a um aluno em vez de um instrutor. A GUI 800 permite que um aluno visualize um material para uma turma atribuída a um grupo de alunos por um instrutor da turma.
[0108] Em algumas modalidades, a GUI 800 inclui uma primeira re- gião de exibição 810, uma segunda região de exibição 820 e uma tercei- ra região de exibição 830. A primeira região de exibição 810 é usada pa- ra exibir representações de um material atribuído ao aluno de uma turma específica. A segunda região de exibição 820 é usada para exibir repre- sentações de turmas nas quais o aluno está inscrito. Conforme mostrado na Figura 8A, a primeira região de exibição 810 ocupa uma primeira por- ção dos pixels incluídos na tela 302, e a segunda região de exibição 820 ocupa uma segunda porção dos pixels incluídos na tela 302.
[0109] A primeira região de exibição 810 inclui um cabeçalho que indica elementos 812 que representam materiais separados e distintos atribuído ao aluno na turma selecionada. Em algumas modalidades, cada elemento 812 é definido por uma caixa que inclui um título do material, um descritor de uma data de entrega associada ao material, e uma indi- cação de se o aluno concluiu o material. Por exemplo, um primeiro ele- mento 812-1 está associado a um primeiro material para uma tarefa "Flo- ra e fauna", que tem uma data de entrega de 12 de março e foi concluída pelo aluno; e um segundo elemento 812-2 está associado a um segundo material para uma tarefa "Preparação para o teste", que tem uma data de entrega de 15 de março e não foi concluída pelo aluno. Será reconhecido que, em outras modalidades, os elementos 812 podem assumir formas diferentes. Por exemplo, os elementos 812 podem omitir a data de entre- ga e/ou o indicador de conclusão. Alternativamente, os elementos 812 podem incluir informações além ou no lugar da data de entrega e/ou do indicador de conclusão. Ainda, os elementos 812 podem incluir elemento gráfico como uma imagem ou ícones representando atividades diferentes atribuídas no material. Em alguns casos, o elemento gráfico pode ser animado, como a reprodução de um vídeo ou uma apresentação de sli- des com imagens ligadas ao material como um segundo plano do ele- mento 812.
[0110] A segunda região de exibição 820 inclui um cabeçalho que indica elementos 822 que representam turmas separadas e distintas nas quais o aluno está inscrito. O aluno pode selecionar um determi- nado elemento 822 para ver quais materiais foram atribuídos ao alu- no por um instrutor de uma turma na primeira região de exibição 810. Em algumas modalidades, cada elemento 822 é definido por uma caixa que inclui um título da turma e um descritor de vários materiais atribuídos ao aluno na turma. Por exemplo, um primeiro elemento 822-1 está associado a uma turma "Ciência A", que tem dois materi- ais expirados; um segundo elemento 822-2 está associado a uma turma "Matemática A", que não tem nenhum material a ser concluído; e um terceiro elemento 822-3 está associado a uma turma "Inglês A", que tem um material a ser concluído. Será reconhecido que, em ou- tras modalidades, os elementos 822 podem assumir formas diferen- tes. Por exemplo, os elementos 822 podem omitir o indicador do nú- mero de materiais atribuídos ao aluno na turma.
[0111] Em algumas modalidades, um aluno pode selecionar uma turma específica usando uma interface de entrada do dispositivo cli- ente 120. Por exemplo, o aluno pode usar uma interface sensível ao toque para selecionar um elemento 822 associado a uma das turmas disponíveis nas quais o aluno está inscrito. Após a seleção de um elemento 822, o elemento 822 é ativado e os elementos 812 na pri- meira região de exibição 810 podem ser atualizados para refletir os materiais associados à turma representada pelo elemento seleciona-
do 822 na segunda região de exibição 820. Um elemento selecionado 822 (por exemplo, o elemento atualmente ativado) pode ser destaca- do para indicar que o elemento 822 está ativo. O destaque pode ser implementado mediante aumento do tamanho do elemento, mudança de uma cor associada ao elemento 822 ou uma borda do elemento 822, exibição de uma caixa ao redor do elemento selecionado 822, e assim por diante. Conforme mostrado na Figura 8A, o primeiro ele- mento 822-1 é ativado e mostrado maior que o segundo elemento 822-2 e o terceiro elemento 822-3.
[0112] Uma terceira região de exibição 830 está situada próximo a uma borda superior da tela 302. A terceira região de exibição 830 inclui elementos que possibilitam que um usuário do aplicativo de cli- ente 210 entre em uma conta de usuário do aluno. Em algumas mo- dalidades, a terceira região de exibição 830 é oculta e pode ser exibi- da em resposta a uma entrada de usuário, como um gesto de toque de passar o dedo verticalmente para fazer com que a terceira região de exibição 830 seja reexibida.
[0113] Um primeiro ícone 832 é exibido próximo a um lado esquer- do da terceira região de exibição 830. O primeiro ícone 832, quando selecionado por um usuário, pode fazer com que o aplicativo de cliente 210 solicite a um usuário que insira credenciais para entrar em uma conta de usuário do aluno. Em algumas modalidades, a primeira região de exibição 810 e a segunda região de exibição 820 ficam ocultas até que um usuário entre em uma conta de usuário específica utilizando o primeiro ícone 832. Em algumas modalidades, após a inicialização do aplicativo de cliente 210, é mostrada uma interface separada ao usuário solicitando que ele insira credenciais para entrar em uma conta de usu- ário. A GUI 800 só será exibida na tela 302 depois que o usuário tiver entrado com êxito em uma conta de usuário específica. O primeiro íco- ne 832 pode, então, ser usado para sair da conta de usuário e/ou para entrar em uma conta de usuário diferente.
[0114] Selecionar um elemento 812 específico que representa um material em uma turma específica faz com que a GUI 800 seja atualizada com dados que representam o material, conforme mostrado na Figura 8B. Uma primeira região de exibição 840 apresenta informações incluí- das no material, como um título do material, a data de entrega do materi- al, uma indicação da turma na qual o material está atribuído e instruções incluídas no material pelo instrutor. Uma segunda região de exibição 850 apresenta informações relacionadas a quaisquer trabalhos a serem en- tregues e/ou atividades que foram anexadas ao material pelo instrutor.
[0115] Selecionar uma atividade na segunda região de exibição 850 abrirá a atividade em um aplicativo diferente. Se a atividade for um ane- xo de um determinado tipo de arquivo, então um aplicativo correspon- dente a esse tipo de arquivo será aberto para que o anexo seja visuali- zado. Se a atividade for um indicador ou link, então um aplicativo de na- vegador de Web será aberto e o recurso especificado pelo URL no mar- cador ou link será recuperado. Se a atividade for um arquivo de multi- mídia, então um aplicativo de multimídia será aberto para mostrar o ar- quivo de multimídia. Entretanto, se a atividade estiver associada a um aplicativo de progresso (por exemplo, se a atividade estiver associada a um contexto fornecido por um aplicativo de progresso e selecionada por um instrutor como um contexto favorito), então o aplicativo de progresso será aberto para a conclusão da atividade. Em algumas modalidades, o aplicativo de progresso implementa ao menos uma porção de uma es- trutura de software de kit de turma para rastrear o progresso de um alu- no ao concluir a atividade.
[0116] Conforme mostrado na Figura 8C, a GUI 860 para um primei- ro aplicativo de progresso é apresentada ao aluno na tela 302. A GUI 860 pode fornecer saída sob a forma de informações apresentadas como da- dos de pixel. Conforme mostrado na Figura 8C, a GUI 860 para o primei-
ro aplicativo de progresso pode fornecer texto e elemento gráfico que ajudam um aluno a aprender um determinado assunto. A GUI 860 pode incluir elementos, alguns dos quais podem ser interativos. Por exemplo, o aluno poderia selecionar uma imagem de uma árvore para exibir infor- mações mais detalhadas sobre árvores. Será reconhecido que o softwa- re de terceiros mostrado na Figura 8C é mostrado apenas com propósi- tos ilustrativos e que o projeto do software não se limita a nenhum tipo específico de software de aprendizado. De fato, as variedades de softwa- re que pode implementar a estrutura de software de kit de turma crescem a cada dia.
[0117] A Figura 9 ilustra uma relação cliente-servidor entre o ser- viço de entrega de trabalho 230 e vários aplicativos de clientes 210 e/ou daemons 440 para uma pluralidade de alunos em uma turma, de acordo com algumas modalidades. Conforme mostrado na Figura 9, uma turma pode incluir L alunos inscritos na turma, cada aluno tendo permissão de acesso a um ou mais dispositivos clientes 120. O servi- ço de entrega de trabalho 230 é configurado para auxiliar no gerenci- amento de trabalhos a serem entregues incluídos em um ou mais ma- teriais atribuídos a grupos de alunos correspondentes.
[0118] Em algumas modalidades, quando é publicado um material que inclui um espaço reservado para um trabalho a ser entregue, o espaço reservado no material indica que um aluno precisa entregar um arquivo correspondente ao trabalho a ser entregue. Novamente, o aluno gera um arquivo para o trabalho a ser entregue usando um ou mais aplicativos no dispositivo cliente 120. O aluno pode, então, en- viar o trabalho a ser entregue usando o aplicativo de cliente 205. Al- ternativamente, o aplicativo de cliente 205 pode criar um elemento de GUI adicionado a um aplicativo de terceiros (por exemplo, uma ex- tensão de aplicativo) que permite ao aluno enviar o trabalho ser en- tregue a partir do aplicativo de terceiros.
[0119] Em algumas modalidades, um documento criado pelo aluno pode ser sincronizado com uma zona pessoal 465-1 da base de dados remota 460 para que o aluno possa acessar o documento a partir de dife- rentes dispositivos clientes 120. Quando o aluno decide entregar o do- cumento como um trabalho a ser entregue, o serviço de entrega de tra- balho pode copiar o documento da zona pessoal 465-1 com escopo defi- nido para o aluno para uma zona de trabalho 465-2 com escopo definido para a turma e, opcionalmente, um material específico correspondente ao trabalho a ser entregue. Quando o documento é movido da zona pes- soal 465-1 do aluno para uma zona de trabalho a ser entregue 465-2, o instrutor pode visualizar o documento. Em algumas modalidades, o do- cumento também ser apagado da zona pessoal 465-1 com escopo defi- nido para o aluno, e o aluno recebe permissão para acesso somente de leitura à cópia do documento armazenado na zona de trabalho a ser en- tregue 465-2. Consequentemente, quando o documento é enviado como o trabalho a ser entregue, o aluno não poderá mais editar o documento.
[0120] Em algumas modalidades, o grupo de alunos associado a um material específico pode ser identificado pelo serviço de gerenciamento de escola 240, o qual, em resposta ao recebimento de uma solicitação feita pelo serviço de entrega de trabalho 230, é configurado para retornar uma lista de identificadores para os alunos inscritos em uma turma espe- cífica. Em outras modalidades, um serviço de lista pode fazer interface com o serviço de gerenciamento de escola 240 para criar dados de lista em uma zona 465 da base de dados remota 460 destinada à organiza- ção. O serviço de entrega de trabalho 230 pode, então, acessar os dados de lista na base de dados remota 460 em vez de obter os dados de lista diretamente do serviço de gerenciamento de escola 240.
[0121] A Figura 10 ilustra uma relação cliente-servidor entre o ca- nal de progresso 250 e um aplicativo de cliente 210 e/ou um daemon 440, de acordo com algumas modalidades. Para obter completamen-
te todos os benefícios da estrutura de software de kit de turma no ambiente de sala de aula, é necessário um meio para rastrear a ativi- dade de cada aluno usando dispositivos clientes 120 associados. O daemon 440 e o canal de progresso 250 fornecem tal funcionalidade a quaisquer aplicativos de terceiros que implementam ao menos par- te de uma estrutura de software de kit de turma.
[0122] Conforme mostrado na Figura 10, um dispositivo cliente 120 inclui um processador 410 e uma memória 420 que armazena sof- tware e dados. A memória 420 do dispositivo cliente 120 inclui um sis- tema operacional 430, um aplicativo de cliente 210, um daemon 440 e um ou mais aplicativos de progresso 1010. O daemon 440 implementa uma API para se comunicar com os aplicativos de progresso 1010 através da estrutura de software de kit de turma.
[0123] Em algumas modalidades, cada um dentre o um ou mais aplicativos de progresso 1010 implementa ao menos uma porção da estrutura de software de kit de turma para rastrear o progresso associ- ado a um ou mais contextos fornecidos pelo aplicativo de progresso
1010. A estrutura de software de kit de turma inclui ao menos um den- tre o código fonte adicionado ao código fonte do aplicativo de progres- so 1010, o código fonte de uma biblioteca de funções usadas pelo aplicativo de progresso 1010 e uma biblioteca de funções compiladas que podem ser vinculadas ao código fonte do aplicativo de progresso
1010. A estrutura de software fornece funções incluídas no código fon- te do aplicativo de progresso 1010 que geram chamadas de API ao daemon 440 executando no segundo plano do dispositivo cliente 120. As chamadas de API incluem informações de rastreamento de pro- gresso relacionadas a operações executadas por um usuário no apli- cativo de progresso 1010.
[0124] Um desenvolvedor de software pode implementar chama- das de API dentro do código fonte do aplicativo de progresso 1010 com a finalidade de implementar uma funcionalidade de rastreamento de progresso no aplicativo de progresso 1010. Por exemplo, em um aplicativo de visualização de documento, o código fonte pode ser configurado para gerar uma chamada de API indicando que um usuá- rio leu uma página específica de um documento cada vez que o usu- ário navegar para uma nova página. O desenvolvedor de software pode também definir um ou mais contextos do aplicativo de progresso 1010 que especificam uma estrutura do aplicativo de progresso 1010 para permitir que um instrutor crie atividades anexadas aos materiais no aplicativo de cliente 210 que usam o aplicativo de progresso 1010. Cada contexto é uma estrutura de dados que define a estrutura do aplicativo de progresso 1010 utilizando uma linguagem (por exemplo, palavras-chave predefinidas) e/ou um formato padrão.
[0125] Será reconhecido que um único aplicativo de progresso 1010 pode ser associado a mais de um contexto. Por exemplo, um aplicativo de livro didático poderia ser implementado para visualização de múltiplos livros didáticos armazenados em diferentes arquivos ou estruturas de dados. Um contexto diferente poderia ser definido para cada um dos dife- rentes livros didáticos. Cada contexto pode definir um layout específico do livro didático correspondente, como definir o título do livro didático, um autor do livro didático, uma edição do livro didático, um número de capí- tulos no livro didático, um índice de conteúdo do livro didático incluindo uma descrição de cada capítulo do livro didático, uma descrição das se- ções incluídas em cada capítulo, uma descrição de cada página incluída em cada seção, uma descrição dos conjuntos de problemas em cada capítulo ou seção, e assim por diante. Um instrutor pode, então, usar es- ses contextos para selecionar atividades específicas associadas a um determinado contexto e anexar as atividades selecionadas a um material atribuído aos alunos em uma turma.
[0126] O daemon 440 é configurado para receber as chamadas de
API a partir do aplicativo de progresso 1010. As chamadas de API podem incluir informações de rastreamento de progresso geradas no aplicativo de progresso 1010. Em algumas modalidades, o rastreamento de pro- gresso pode ser habilitado ou desabilitado. O daemon 440 é configurado para ignorar informações de rastreamento de progresso recebidas dos aplicativos de progresso 1010 quando o rastreamento de progresso está desabilitado. Entretanto, se o rastreamento de progresso estiver habilita- do, então o daemon 440 é configurado para processar as informações de rastreamento de progresso. Em algumas modalidades, o daemon 440 agrega informações de rastreamento de progresso recebidas de duas ou mais chamadas de API antes de processar as informações de rastrea- mento de progresso agregadas recebidas de um ou mais aplicativos de progresso 1010.
[0127] Em algumas modalidades, o rastreamento de progresso pode ser habilitado ou desabilitado para aplicativos de progresso 1010 individuais. Dessa forma, o rastreamento de progresso para um primeiro aplicativo pode ser habilitado, enquanto o rastreamento de progresso para um segundo aplicativo pode ser desabilitado. Dessa forma, o daemon 440 é configurado para filtrar quaisquer informações de rastreamento de progresso de quaisquer aplicativos nos quais o rastreamento de progresso está desabilitado e processar apenas in- formações de rastreamento de progresso para aplicativos nos quais o rastreamento de progresso está habilitado.
[0128] Em algumas modalidades, o rastreamento de progresso para todos os aplicativos de progresso 1010 instalados em um dispositivo cli- ente 120 é habilitado automaticamente mediante instalação do aplicativo de cliente 210. Um usuário do dispositivo cliente 120 precisa, portanto, desabilitar o rastreamento de progresso do dispositivo cliente 120 ou de aplicativos de terceiros individuais instalados no dispositivo cliente 120 para evitar que informações de rastreamento de progresso sejam coleta-
das, o que pode ser chamado de política de exclusão de participação. Em outras modalidades, o rastreamento de progresso para todos os apli- cativos de terceiros 1010 instalados em um dispositivo cliente 120 é de- sabilitado automaticamente mediante instalação do aplicativo de cliente
210. Um usuário do dispositivo cliente 120 precisa, portanto, habilitar o rastreamento de progresso para o dispositivo cliente 120 ou aplicativos de terceiros individuais instalados no dispositivo cliente 120 para permitir que informações de rastreamento de progresso sejam coletadas, o que pode ser chamado de política de aceitação de participação.
[0129] As informações de rastreamento de progresso podem inclu- ir, porém sem limitação, informações que identificam operações con- cluídas por um usuário do dispositivo cliente 120 utilizando o aplicativo de progresso 1010. Por exemplo, as informações de rastreamento de progresso podem incluir informações que indicam que um usuário exi- biu ou leu um capítulo específico de um livro didático digital, concluiu vários problemas apresentados ao usuário através de uma GUI do aplicativo de progresso 1010, concluiu uma operação como clicar em um link ou interagir com um elemento interativo do aplicativo de pro- gresso 1010, e assim por diante.
[0130] As informações de rastreamento de progresso podem inclu- ir informações de identificação pessoal (PII - "personally identifying in- formation"). Essas PII podem ser consideradas confidenciais e, portan- to, o daemon 440 toma os devidos cuidados para proteger essas in- formações quando transmitidas para um dispositivo servidor 110 a par- tir do dispositivo cliente 120. Em algumas modalidades, uma zona de progresso 465, com escopo definido para um aluno específico, é usa- da para armazenar informações de rastreamento de progresso para cada aluno associado a uma conta de usuário. As informações de ras- treamento de progresso são armazenadas e criptografadas localmente na memória 420 do dispositivo cliente 120. As informações de rastre-
amento de progresso podem ser criptografadas também remotamente na zona de progresso 465 da base de dados remota 460. As informa- ções de rastreamento de progresso podem ser criptografadas com di- ferentes chaves de criptografia local ou remotamente. Além disso, o daemon 440 pode ser configurado para criptografar as informações de rastreamento de progresso em trânsito para a base de dados remota
460. A chave de criptografia usada para criptografia em trânsito pode ser diferente das chaves de criptografia usadas local ou remotamente. Consequentemente, as informações de rastreamento de progresso podem ser protegidas localmente com o uso de várias formas de au- tenticação (por exemplo, autenticação biométrica, exigindo que um usuário insira uma senha, etc.), podem ser protegidas remotamente (isto é, no lado do servidor) com o uso de formas adicionais de auten- ticação, como autenticação TLS mútua como um mecanismo de trans- porte seguro.
[0131] A Figura 11 ilustra a filtragem de informações de rastrea- mento de progresso pelo daemon 440, de acordo com algumas moda- lidades. Em algumas modalidades, o daemon 440 é configurado para filtrar informações de rastreamento de progresso recebidas dos aplica- tivos de progresso 1010 com base em um conjunto de contextos ativos associados a um ou mais materiais atribuídos a um aluno por um ou mais instrutores. O daemon 440 pode rastrear uma lista de contextos ativos 1170 com base nos anexos em um ou mais materiais que estão atualmente atribuídos ao aluno (ou à turma). Em algumas modalida- des, os anexos em materiais que têm uma data de entrega já decorri- da podem ser fechados pelo instrutor (por exemplo, desativados) e removidos da lista de contextos ativos 1170. O daemon 440 é configu- rado para filtrar as informações de rastreamento de progresso recebi- das de aplicativos de progresso 1010 com base na lista de contextos ativos 1170.
[0132] Por exemplo, um primeiro instrutor pode atribuir a um alu- no específico um primeiro material que inclui uma atividade associada a um primeiro contexto para um primeiro aplicativo de progresso 1010-1; e um segundo instrutor pode atribuir ao aluno específico um segundo material que inclui uma atividade associada a um segundo contexto para um segundo aplicativo de progresso 1010-2. O primeiro contexto para o primeiro aplicativo de progresso 1010-1 e o segundo contexto para o segundo aplicativo de progresso 1010-2 são conside- rados contextos ativos. Entretanto, o aluno pode usar um terceiro aplicativo de progresso 1010-3 que não está associado a nenhum contexto ativo, e o daemon 440 pode ser configurado para filtrar (por exemplo, ignorar) quaisquer informações de rastreamento de pro- gresso 1140 recebidas do terceiro aplicativo de progresso 1010-3 pa- ra evitar a coleta de quaisquer dados de rastreamento de progresso desnecessários. De modo similar, o daemon 440 pode também filtrar quaisquer informações de rastreamento de progresso recebidas do primeiro aplicativo de progresso 1010-1 e/ou do segundo aplicativo de progresso 1010-2 que está associado a um contexto inativo dife- rente. Por exemplo, um contexto ativo pode definir uma estrutura de um e-book sobre Macbeth, enquanto um contexto inativo pode definir uma estrutura de um e-book sobre Romeu e Julieta. Quaisquer infor- mações de rastreamento de progresso recebidas enquanto o e-book sobre Macbeth estiver aberto no aplicativo de progresso 1010 serão processadas pelo daemon 440, ao passo que as informações de ras- treamento de progresso recebidas enquanto o e-book sobre Romeu e Julieta estiver aberto no aplicativo de progresso 1010 serão filtradas e ignoradas.
[0133] Conforme mostrado na Figura 11, primeiras informações de rastreamento de progresso 1110 recebidas de um primeiro aplicativo de progresso 1010-1 e associadas a um primeiro contexto são processadas pelo daemon 440, sendo que o primeiro contexto está incluído na lista de contextos ativos 1170. Em algumas modalidades, o daemon 440 arma- zena as primeiras informações de rastreamento de progresso 1110 como informações de rastreamento de progresso 1150-1 em uma base de da- dos local 450. As informações de rastreamento de progresso 1150-1, por meio do mecanismo de sincronização, são carregadas para uma zona de progresso 465 na base de dados remota 460 com escopo definido para o aluno. De modo similar, segundas informações de rastreamento de pro- gresso 1120 recebidas de um segundo aplicativo de progresso 1010-2 e associadas a um segundo contexto são processadas pelo daemon 440, sendo que o segundo contexto está incluído na lista de contextos ativos
1170. As segundas informações de rastreamento de progresso 1120 são armazenadas como informações de rastreamento de progresso 1150-2 na base de dados local 450. Novamente, as informações de rastreamen- to de progresso 1150-2, por meio do mecanismo de sincronização, são carregadas na zona de progresso 465 na base de dados remota 460 com escopo definido para o aluno.
[0134] Entretanto, terceiras informações de rastreamento de pro- gresso 1130 recebidas do segundo aplicativo de progresso 1010-2 e associadas a um terceiro contexto são ignoradas pelo daemon 440, sendo que o terceiro contexto não está incluído na lista de contextos ativos 1170. De modo similar, quartas informações de rastreamento de progresso 1140 recebidas do terceiro aplicativo de progresso 1010-3 e associadas a um quarto contexto também são ignoradas pelo daemon 440, sendo que o quarto contexto não está incluído na lista de contextos ativos 1170.
[0135] O daemon 440 cria também metadados 1160 associados às informações de rastreamento de progresso criptografadas 1150. Os metadados 1160 podem incluir uma referência às informações de rastreamento de progresso criptografadas 1150 na base de dados remota 460, assim como um identificador de contexto para o contexto associado às informações de rastreamento de progresso. Em algu- mas modalidades, os metadados 1160 incluem informações adicio- nais que poderiam ser usadas pelo canal de progresso 250, como um identificador de turma, um identificador de material correspondente ao contexto, um identificador de aplicativo correspondente ao aplicativo de progresso 1010 que gerou as informações de rastreamento de progresso 1150, ou um identificador de usuário associado ao usuário conectado a uma conta de usuário no dispositivo cliente 120. Conse- quentemente, o canal de progresso 250 não processa as informações de rastreamento de progresso reais que poderiam conter PII. Em vez disso, o canal de progresso 250 apenas processa os metadados 1160 associados às informações de rastreamento de progresso, e as informações de rastreamento de progresso reais permanecem cripto- grafadas e armazenadas na zona pessoal de progresso 465 da base de dados remota 460.
[0136] Será reconhecido que, em outras modalidades, em vez de aos metadados 1160, as informações de rastreamento de progresso reais podem ser fornecidas, sejam criptografadas ou descriptografa- das, ao canal de progresso 250. Contudo, essas modalidades podem fornecer menos segurança para as PII incluídas nas informações de rastreamento de progresso.
[0137] Será reconhecido que o recebimento de um contexto ativo autoriza implicitamente o daemon 440 a rastrear o progresso relacio- nado a esse contexto específico. Depois que o contexto é removido da lista de contextos ativos 1170, a autorização implícita é retirada e, portanto, o daemon não executa o rastreamento do progresso asso- ciado a esse contexto.
[0138] A Figura 12 ilustra o canal de progresso 250, de acordo com algumas modalidades. O canal de progresso 250 é implementado em um ou mais dispositivos servidores 110. Em algumas modalidades, cada componente do canal de progresso 250 é implementado em um dispositivo servidor 110 diferente. Em alguns casos, um componente específico do canal de progresso 250 é implementado em um cluster de nós de servidores, que aqui pode ser chamado simplesmente de cluster.
[0139] Conforme mostrado na Figura 12, o canal de progresso 250 recebe metadados de rastreamento de progresso 1202 do um ou mais daemons 440 incluídos no um ou mais dispositivos clientes 120 através de uma rede 150. O canal de progresso 250 pode ser imple- mentado como um ou mais serviços associados a um endereço de rede. As mensagens enviadas ao endereço de rede são processadas pelo serviço correspondente.
[0140] Em algumas modalidades, o serviço de acesso de entrada 1210 recebe os metadados de rastreamento de progresso 1202 a partir de um ou mais daemons 440. Os metadados de rastreamento de pro- gresso 1202 incluem informações relacionadas às informações de ras- treamento de progresso 1150 para um aluno específico. Em algumas modalidades, os metadados de rastreamento de progresso 1202 incluem um identificador de usuário associado a uma conta de usuário para o aplicativo de cliente 210 e um identificador de contexto para um dado contexto correspondente às informações de rastreamento de progresso
1150.
[0141] Em algumas modalidades, o serviço de acesso de entrada 1210 é configurado para verificar se o rastreamento de progresso es- tá habilitado para um usuário específico. Um administrador, através do serviço de gerenciamento de escola 240, pode alterar uma prefe- rência de um aluno específico com relação à autorização para rastre- ar o progresso desse aluno particular. O serviço de acesso de entra- da 1210 pode receber um aviso sobre uma alteração do estado da preferência de autorização de um determinado aluno antes de a dita alteração ser recebida no daemon 440 de um dispositivo cliente 120 específico. Consequentemente, o daemon 440 pode continuar a cole- tar informações de rastreamento de progresso para um dado aluno, mesmo depois de o dito aluno ter desabilitado globalmente o rastre- amento de progresso. Dessa forma, o serviço de acesso de entrada 1210 executa uma função de "porteiro" ("gate-keeper") para metada- dos de rastreamento de progresso recebidos pelo canal de progresso 250 com base em um conjunto de sinalizações armazenadas na base de dados remota 460.
[0142] Em algumas modalidades, um serviço de lista é configurado para periodicamente efetuar pull no conjunto de sinalizações de autoriza- ção de cada aluno em um distrito escolar específico usando o serviço de gerenciamento de escola 240 e armazenar o conjunto de sinalizações de autorização em uma zona de autorização 465 na base de dados remota 460 com escopo definido para a organização. O serviço de acesso de entrada 1210 pode, então, consultar o conjunto de sinalizações de auto- rização para cada item de metadados de rastreamento de progresso 1202 recebidos usando um identificador de usuário incluído nos metada- dos de rastreamento de progresso 1202.
[0143] Em algumas modalidades, o serviço de acesso de entrada 1210 chama o serviço de identidade 260 e solicita um identificador de serviço de diretório usando o identificador de usuário recebido nos meta- dados de rastreamento de progresso 1202. O identificador de serviço de diretório pode ser registrado como estando associado ao identificador de usuário quando a conta de usuário for criada. O identificador de serviço de diretório é o mesmo por toda a existência da conta de usuário, e é usado apenas no lado do servidor da arquitetura servidor-cliente 200 pa- ra que o aplicativo de cliente 210 e/ou o daemon 440 jamais recebam o identificador de serviço de diretório. Consequentemente, qualquer pes-
soa espionando o tráfego entre o daemon 440 e o canal de progresso 250 não poderá obter o identificador de serviço de diretório para correla- cionar certas PII armazenadas em um ou mais servidores a um identifi- cador para um usuário específico. O serviço de identidade 260 retorna o identificador de serviço de diretório ao serviço de acesso de entrada 1210, que desreferencia o identificador de usuário incluído nos metada- dos de rastreamento de progresso 1202 e substitui o identificador de usuário pelo identificador de serviço de diretório. Em algumas modalida- des, o conjunto de sinalizações de autorização corresponde a identifica- dores de serviço de diretório em vez dos identificadores de usuário para a conta de usuário. Consequentemente, o identificador de usuário é des- referenciado antes de o serviço de acesso de entrada 1210 executar a função de porteiro. Depois que o serviço de acesso de entrada 1210 ter- minar de processar os metadados de rastreamento de progresso 1202, os metadados de rastreamento de progresso 1202 são transmitidos para uma fila 1215.
[0144] Em outras modalidades, um identificador interno pode ser usado em vez do identificador de serviço de diretório. Portanto, os meta- dados de rastreamento de progresso 1202 são rastreados por todo o ca- nal de progresso 250 com o uso de um identificador interno em vez do identificador de serviço de diretório. Isso permite ao canal de progresso 250 romper todas as associações entre informações de rastreamento de progresso e um usuário específico simplesmente apagando a associação entre o identificador interno e o identificador de serviço de diretório.
[0145] Em algumas modalidades, a fila 1215 é um serviço de fila implementado em um dispositivo servidor 110. A fila 1215 pode ser im- plementada em um mesmo dispositivo servidor 110 que o serviço de acesso de entrada 1210 ou em um dispositivo servidor 110 diferente do mesmo. Em algumas modalidades, a fila 1215 é implementada como um serviço de transmissão por "streaming" distribuída, como a plata-
forma Apache® Kafka de transmissão por "streaming" distribuída. A fila 1215 permite que o serviço de acesso de entrada 1210 e o serviço de enriquecimento 1220 sejam executados assincronamente.
[0146] Em algumas modalidades, o serviço de enriquecimento 1220 é implementado em um ou mais dispositivos servidores 110. O serviço de enriquecimento 1220 é configurado para receber os meta- dados de rastreamento de progresso 1202 a partir da fila 1215 e enri- quecer os metadados de rastreamento de progresso 1202 com infor- mações adicionais. Em algumas modalidades, o serviço de enriqueci- mento 1220 solicita dados de lista do serviço de gerenciamento de es- cola 240 com base no identificador de serviço de diretório incluído nos metadados de rastreamento de progresso 1202. Os dados de lista po- dem incluir um ou mais identificadores de turmas para quaisquer tur- mas nas quais o aluno está inscrito, bem como uma lista de identifica- dores de alunos para os alunos inscritos em cada turma. O serviço de gerenciamento de escola 240 pode utilizar o identificador de serviço de diretório para o aluno em vez do identificador de usuário fornecido pelo daemon 440 nos metadados de rastreamento de progresso 1202 não processados. Em outras modalidades, o identificador de usuário pode ser utilizado para consultar o serviço de gerenciamento de escola 240 em vez do identificador interno.
[0147] O serviço de enriquecimento 1220 pode também recuperar todos os materiais ativos para uma turma específica a partir de uma zona 465 correspondente na base de dados remota 460. É feita uma referência cruzada entre os dados de lista e os materiais com o identi- ficador de turma e o identificador de serviço de diretório incluído nos metadados de rastreamento de progresso 1202 para anexar informa- ções adicionais aos metadados de rastreamento de progresso 1202 caso ainda não estejam incluídas nos metadados de rastreamento de progresso 1202. Em algumas modalidades, o serviço de enriquecimen-
to 1220 assegura que os metadados de rastreamento de progresso 1202 incluem: um identificador de organização, um identificador de turma, um identificador de material e um identificador de contexto, bem como a referência às informações de rastreamento de progresso crip- tografadas 1150.
[0148] Em algumas modalidades, os metadados de rastreamento de progresso 1202 podem estar associados a vários identificadores de turmas e/ou a vários identificadores de materiais. Por exemplo, se dois instrutores diferentes de duas turmas diferentes atribuírem uma ativi- dade a um determinado aluno em dois materiais diferentes que fazem referência ao mesmo contexto, então o aluno, ao concluir a atividade para uma turma, também terá simultaneamente o crédito de ter conclu- ído a mesma atividade para a outra turma. Depois que o serviço de enriquecimento 1220 enriquece os metadados de rastreamento de progresso 1202, o serviço de enriquecimento 1220 transmite os meta- dados de rastreamento de progresso 1202 enriquecidos para uma fila
1225.
[0149] Em algumas modalidades, a fila 1225 é similar à fila 1215. A fila 1225 pode ser implementada em um mesmo dispositivo servidor 110 que o serviço de enriquecimento 1220 ou em um dispositivo servidor 110 diferente do mesmo.
[0150] Em algumas modalidades, os metadados de rastreamento de progresso 1202 são retirados da fila 1225 e armazenados em um sistema de arquivos distribuído 1230. Em algumas modalidades, o sis- tema de arquivos distribuído 1230 é o Apache® Hadoop Distributed File System (HDFS) implementado em um cluster de nós de servido- res. Cada nó de servidor inclui um conjunto de unidades de disco bara- tas nas quais os dados podem ser armazenados. Em alguns eventos, o sistema de arquivos distribuído 1230 inclui ao menos um nó de regis- tro, que é configurado para rastrear alterações nos metadados de ras-
treamento de progresso 1202 armazenados no sistema de arquivos distribuído 1230. O nó de registro protege a integridade dos metada- dos de rastreamento de progresso 1202 em caso de falha fatal do nó de servidor.
[0151] Será reconhecido que o canal de progresso 250 pode ser usado por múltiplas organizações, embora os dados para cada organi- zação sejam armazenados em bases de dados remotas 460 separa- das e distintas limitadas em escopo para uma organização específica. Consequentemente, o sistema de arquivos distribuído 1230 armazena um grande volume de metadados de rastreamento de progresso 1202 para uma ou mais organizações. O serviço agregador 1240 é projeta- do para analisar todos os metadados de rastreamento de progresso 1202 e organizar os metadados de rastreamento de progresso 1202 recebidos durante uma janela de rastreamento pela organização. Em algumas modalidades, o serviço agregador 1240 é um serviço de computação para processar conjuntos de dados em grande escala. Por exemplo, o serviço agregador 1240 pode ser implementado como, porém sem limitação, um serviço Apache® Spark implementado em um cluster de nós de servidores. Os metadados de rastreamento de progresso 1202 são então processados em um ou mais trabalhos do Spark geradas pelo serviço agregador 1240.
[0152] Em algumas modalidades, a janela de rastreamento pode ser, por exemplo, de vários minutos ou horas. Por exemplo, o serviço agregador 1240 pode classificar metadados de rastreamento de pro- gresso 1202 recebidos no sistema de arquivos distribuído 1230 em uma janela de dez minutos. Em algumas modalidades, o serviço agre- gador 1240 é configurado para executar uma rotina no término de um temporizador ajustado com base na janela de rastreamento. Depois da execução da rotina, o temporizador é reiniciado para aguardar pelo término da próxima janela de rastreamento.
[0153] Em algumas modalidades, o serviço agregador 1240 consulta o(s) nó(s) de registro do sistema de arquivos distribuído 1230 para cole- tar informações relacionadas a todos os metadados de rastreamento de progresso 1202 armazenados no sistema de arquivos distribuído 1230 durante a janela de rastreamento. O nó de registro rastreia alterações no sistema de arquivos distribuído 1230 e pode retornar uma lista de todos os metadados de rastreamento de progresso 1202 que foram armazena- dos no sistema de arquivos distribuído 1230 durante a janela de rastrea- mento anterior. O serviço agregador 1240 é configurado para extrair os metadados de rastreamento de progresso 1202 recebidos durante a ja- nela de rastreamento e gerar estruturas de dados para cada organização em uma ou mais organizações que enviam metadados de rastreamento de progresso 1202 ao canal de progresso 250 durante a janela de rastre- amento. As estruturas de dados podem ser chamadas aqui de cubos.
[0154] Em algumas modalidades, o serviço agregador 1240 gera um cubo separado e distinto com escopo definido para uma única organiza- ção. Todos os metadados de rastreamento de progresso 1202 corres- pondentes a um determinado identificador de organização são classifica- dos em um cubo correspondente. Os metadados de rastreamento de progresso 1202 armazenados em um dado cubo podem ser classificados por identificador de turma, identificador de material, identificador de con- texto e identificador de aluno (por exemplo, identificador de usuário, iden- tificador de serviço de diretório, ou similares).
[0155] Em algumas modalidades, os cubos são armazenados em um armazenamento em blocos 1250. Em algumas modalidades, o armazenamento em blocos 1250 pode ser uma unidade de disco rígi- do (HDD - "Hard Disk Drive") incluída no dispositivo servidor 110 que implementa o serviço agregador 1240. Em outras modalidades, o ar- mazenamento em blocos 1250 pode ser um dispositivo de armaze- namento em blocos virtual implementado em um conjunto de um ou mais dispositivos físicos de armazenamento incluídos em um ou mais dispositivos servidores 110. Em outras modalidades, o armazena- mento em blocos 1250 pode substituído por um serviço de base de dados distribuída como Apache® Cassandra implementado em um cluster de nós de servidores. Em ainda outras modalidades, o arma- zenamento em blocos 1250 pode ser substituído por um sistema de arquivos distribuído similar ao sistema de arquivos distribuído 1230 descrito anteriormente.
[0156] O serviço agregador 1240 gera um ou mais cubos que in- cluem os metadados de rastreamento de progresso 1202 recebidos durante a janela de rastreamento para uma ou mais organizações correspondentes. O serviço agregador 1240 adiciona uma referência para cada cubo à fila 1245. Em algumas modalidades, a fila 1245 é similar às filas 1215 e 1225 e permite que o serviço de processamen- to de saída 1260 opere assincronamente em relação ao serviço agre- gador 1240.
[0157] Em algumas modalidades, o serviço de processamento de saída 1260 é configurado para processar os cubos à medida que cada referência de cubo é retirada da fila 1245. Em algumas modalidades, o serviço de processamento de saída 1260 é configurado apenas para ler os metadados de rastreamento de progresso 1202 armazenados em um dado cubo no armazenamento em blocos 1250 e gravar cada entrada de metadados de rastreamento de progresso 1202 em uma zona 465 espe- cífica na base de dados remota 460 com escopo definido para uma tur- ma específica, um contexto específico, e, opcionalmente, um aluno es- pecífico baseado no identificador de turma, no identificador de contexto e/ou no identificador de serviço de diretório/identificador de usuário inclu- ído nos metadados de rastreamento de progresso 1202. Consequente- mente, o serviço de processamento de saída 1260 classifica os metada- dos de rastreamento de progresso 1202 em uma granularidade menor que os cubos.
[0158] Em outras modalidades, o serviço de processamento de saída 1260 desreferencia os metadados de rastreamento de progresso 1202 substituindo a identidade de serviço de diretório usada por servi- ços anteriores no canal de progresso 250 e substitui o identificador de serviço de diretório por um identificador de progresso. O identificador de progresso pode ser associado ao identificador de serviço de diretó- rio dentro do serviço de identidade 260; entretanto, o identificador de progresso pode ser desassociado do identificador de serviço de diretó- rio para romper qualquer conexão entre dados de rastreamento de progresso 1150 e um usuário específico. Em algumas modalidades, o identificador de progresso é descartado em resposta à opção feita por um usuário de sair do rastreamento de progresso (por exemplo, desa- bilitando globalmente o rastreamento de progresso). Por exemplo, um administrador de uma organização pode desabilitar o rastreamento de progresso para alunos específicos, turmas específicas, escolas espe- cíficas e/ou todo o distrito escolar usando o serviço de gerenciamento de escola 240. Essas alterações podem fazer com que o serviço de identidade 260 desassocie identificadores de progresso de identifica- dores de serviço de diretório para aqueles alunos que desabilitaram o rastreamento de progresso. Embora as informações de rastreamento de progresso ainda possam existir na base de dados remota 460, as informações de rastreamento de progresso não poderão ser correlaci- onadas com um aluno específico uma vez desfeita a associação entre identificadores de progresso e identificadores de serviço de diretório.
[0159] Depois que o serviço de processamento de saída 1260 terminar de processar os metadados de rastreamento de progresso 1202, os metadados de rastreamento de progresso 1202 são transmi- tidos para o serviço de depósito 1270. Em algumas modalidades, o serviço de depósito 1270 é implementado em ao menos um dispositivo servidor 110. O serviço de depósito 1270 é configurado para efetuar pull na referência das informações de rastreamento de progresso crip- tografadas 1150 por uma entrada de metadados de rastreamento de progresso 1202 e armazenar as informações de rastreamento de pro- gresso 1150 no armazenamento de progresso 1280. Em algumas mo- dalidades, o armazenamento de progresso 1280 é um serviço de ar- mazenamento baseado em rede. As informações de rastreamento de progresso 1150 são armazenadas em zonas, similares às zonas 465, com escopo definido para um identificador de turma específico, um identificador de contexto específico, um identificador de progresso es- pecífico e (opcionalmente) um identificador de material específico.
[0160] Em algumas modalidades, o armazenamento de progresso 1280 é separado e distinto da base de dados remota 460 e pode ser acessado apenas no lado do servidor da arquitetura servidor-cliente
200. Dessa forma, o daemon 440 não tem uma visibilidade direta das informações de rastreamento de progresso 1150 que foram arquiva- das pelo canal de progresso 250. Em outras modalidades, o armaze- namento de progresso 1280 pode ser implementado em novas zonas 465 na base de dados remota 460 e sincronizado com dispositivos clientes 120 com o uso de um serviço de relatório 270.
[0161] Embora não mostrados explicitamente, vários serviços no canal de progresso 250 podem ser configurados para reciclar metada- dos de rastreamento de progresso 1202 específicos sendo processados pelo serviço se determinados problemas ocorrerem durante o proces- samento. Em algumas modalidades, a fila de nova tentativa está asso- ciada a cada serviço e os metadados de rastreamento de progresso 1202 podem ser enviados por push para a fila de nova tentativa para serem processados posteriormente. Por exemplo, um serviço como o serviço de identidade 260 pode estar experimentando tempo de inativi- dade, o que impede o canal de progresso 250 de concluir uma determi-
nada operação. Em tais casos, os dados sendo processados pelo servi- ço podem ser armazenados na fila de nova tentativa com a finalidade de tentar o processamento posteriormente quando o serviço interrompi- do estiver novamente disponível. Alternativamente, o serviço pode ser simplesmente configurado para adicionar os metadados de rastreamen- to de progresso 1202 de volta à fila que faz interface com uma entrada do serviço. Por exemplo, o serviço de enriquecimento 1220 pode ser configurado para enviar por push metadados de rastreamento de pro- gresso 1202 de volta à fila 1215 para serem processados em um mo- mento posterior.
[0162] Um serviço de relatório 270 pode, então, extrair informa- ções de rastreamento de progresso 1204 do armazenamento de pro- gresso 1280 em resposta a uma solicitação do aplicativo de cliente 210 e/ou do daemon 440 para gerar dados de relatório fornecidos ao aplicativo de cliente 210 e/ou ao daemon 440.
[0163] A Figura 13 ilustra uma relação cliente-servidor entre o ser- viço de relatório 270 e um aplicativo de cliente 210 e/ou um daemon 440, de acordo com algumas modalidades. O aplicativo de cliente 210 e/ou o daemon 440 incluído em um dispositivo cliente 120 faz interface com o serviço de relatório 270 em um dispositivo servidor 110. Depois que um material é atribuído a uma turma de alunos, o instrutor pode desejar rastrear o progresso de alunos ao concluindo uma tarefa. Mais especificamente, uma GUI no aplicativo de cliente 210 pode exibir uma representação de informações de rastreamento de progresso relacio- nadas a um material específico. Cada um dos anexos, dos trabalhos a serem entregues e/ou das atividades podem ser exibidos juntamente com informações relacionadas ao progresso de conclusão de cada aluno.
[0164] Em algumas modalidades, o aplicativo de cliente 210 rece- be entrada para exibir uma representação de um material em uma tela
302 do dispositivo cliente 120. Em resposta à entrada, o aplicativo de cliente 210 solicita um relatório ao serviço de relatório 270. Como usa- do aqui, um relatório pode se referir a um arquivo ou estrutura de da- dos que inclui dados de relatório derivados das informações de rastre- amento de progresso 1204 extraídas do armazenamento de progresso
1280.
[0165] Em algumas modalidades, o serviço de relatório 270 recebe do aplicativo de cliente 210 uma solicitação de relatório. A solicitação po- de incluir um identificador de turma, um identificador de contexto, um identificador de usuário e (opcionalmente) um identificador de material. O serviço de relatório 270 pode utilizar o serviço de identidade 260 para localizar um identificador de progresso correspondente ao identificador de usuário, e então consultar o armazenamento de progresso 1280 para recuperar informações de rastreamento de progresso 1204 correspon- dentes ao identificador de turma, ao identificador de contexto, ao identifi- cador de progresso e (opcionalmente) ao identificador de material.
[0166] Além disso, a solicitação pode especificar um período as- sociado à solicitação. Por exemplo, a solicitação pode especificar se a consulta deve limitar as informações de rastreamento de progresso a um tempo antes da data de entrega do material, um tempo após a data de entrega do material ou um tempo até e incluindo a data de fecha- mento para o material. Como usado aqui, uma data de fechamento pode se referir a um tempo no qual o contexto anexado ao material é desativado, bloqueando, dessa forma, outro rastreamento de progres- so relacionado a esse contexto após a data de fechamento a menos que seja atribuído ao aluno outro material que inclui o dito contexto. Consequentemente, o serviço de relatório 270 gera um conjunto de informações de rastreamento de progresso 1204 que corresponde a um aluno em uma turma específica e para um determinado contexto atribuído em um dado material.
[0167] Em algumas modalidades, o daemon 440 agrega as informa- ções de rastreamento de progresso 1204 de uma turma para calcular várias estatísticas para a turma com base nos dados de relatório. Por exemplo, o daemon 440 pode calcular o número total de alunos na tur- ma, e o número total de alunos que concluíram o trabalho ou atividade. O daemon 440 pode também usar carimbos de data e hora associados a diferentes informações de rastreamento de progresso 1204 para calcular o tempo total para que cada aluno conclua o trabalho ou atividade (por exemplo, calculando uma diferença entre o primeiro carimbo de data e hora e o último carimbo de data e hora em todas as informações de ras- treamento de progresso para uma atividade específica ou trabalho a ser entregue específico). Como outro exemplo, o daemon 440 pode calcular a pontuação de cada aluno com base nas respostas corretas/incorretas fornecidas em um teste ou conjunto de problemas. O daemon 440 pode calcular uma razão entre pontuações de aprovação e pontuações de re- provação, uma razão entre o número de alunos com pontuações de aprovação e o total alunos na turma ou o número de alunos com pontua- ções de reprovação, uma pontuação média para a turma, uma pontuação mínima e uma pontuação máxima para a turma, uma pontuação mediana e uma distribuição padrão do conjunto de pontuações, uma distribuição de pontuações mapeadas para notas por letras (por exemplo, várias pon- tuações A, várias pontuações B, etc.), e quaisquer outras estatísticas re- levantes relacionadas a pontuações e/ou às informações de rastreamen- to de progresso 1204.
[0168] Em algumas modalidades, um aluno pode fazer várias tenta- tivas para concluir uma atividade específica. Por exemplo, um aluno po- deria realizar um teste várias vezes. Nessas modalidades, a solicitação de relatório pode especificar se os dados de relatório devem incluir infor- mações de rastreamento de progresso 1204 para cada tentativa feita pe- lo aluno ou apenas a última tentativa. Se as informações de rastreamento de progresso incluírem dados para várias tentativas, então o daemon 440 pode ser configurado para calcular estatísticas relacionadas a várias ten- tativas como uma pontuação média, uma pontuação máxima de todas as tentativas, uma razão entre tentativas aprovadas e tentativas reprovadas, etc.
[0169] Em algumas modalidades, o daemon 440 pode ser confi- gurado também para transferir por download informações de lista a partir de uma zona de lista 465 na base de dados remota 460 com a finalidade de correlacionar um identificador de usuário associado às informações de rastreamento de progresso com um nome de aluno, por exemplo.
[0170] Em outras modalidades, o aplicativo de cliente 210 é confi- gurado para executar a funcionalidade de agregar as informações de rastreamento de progresso 1204 e/ou calcular estatísticas relaciona- das às informações de rastreamento de progresso 1204 na base de dados local 450. O daemon 440 apenas facilita a transferência das in- formações de rastreamento de progresso 1204 da zona 465 na base de dados remota 460 para a base de dados local 450 para permitir que o aplicativo de cliente 210 acesse as informações de rastreamento de progresso 1204. O aplicativo de cliente 210 é, dessa forma, configura- do para realizar qualquer análise necessária utilizando as informações de rastreamento de progresso 1204 para gerar valores para preencher os campos de uma GUI apresentada ao instrutor.
[0171] As Figuras 14A e 14B ilustram uma GUI 1400 do aplicativo de cliente 210, de acordo com algumas modalidades. A GUI 1400 pode ser usada para apresentar a um instrutor dados de relatório relaciona- dos a um material atribuído. A GUI 1400 pode ser apresentada em uma tela 302 do dispositivo cliente 120. Conforme mostrado na Figura 14A, a GUI 1400 é exibida em um computador tipo tablet, como o dispositivo cliente 120-2. A GUI 1400 pode incluir vários elementos como elemento gráfico, texto, ícones, campos de entrada, regiões de exibição, etc. Em algumas modalidades, a GUI 1400 é exibida em resposta à seleção de um elemento 312 para um material atribuído feita por um instrutor na GUI 300.
[0172] A GUI 1400 inclui uma primeira região de exibição 1410 e uma segunda região de exibição 1420. A primeira região de exibição 1410 apresenta informações incluídas no material, como um título do material, uma data de entrega do material, uma indicação da turma na qual o material está atribuído e instruções incluídas no material pelo instrutor. Uma segunda região de exibição 1420 apresenta informa- ções relacionadas a quaisquer trabalhos a serem entregues e/ou ativi- dades que foram anexadas ao material pelo instrutor.
[0173] Cada trabalho a ser entregue ou atividade anexado ao mate- rial e apresentado na segunda região de exibição 1420 pode ser apre- sentado também com dados de relatório relacionados ao trabalho a ser entregue ou à atividade. Os dados de relatório podem ser exibidos dentro de um ou mais elementos 1422. Por exemplo, conforme mostrado na Fi- gura 14A, uma atividade associada à aplicação 2 inclui: um primeiro ele- mento 1422-1 que mostra uma razão entre pontuações de aprovação e pontuações de reprovação para alunos que concluíram a atividade; um segundo elemento 1422-2 que mostra um tempo médio para os alunos concluírem a atividade; e um terceiro elemento 1422-3 mostra uma razão entre o número de alunos que concluíram a atividade e o número total de alunos na turma.
[0174] Além disso, é apresentado um ícone 1424 próximo ao traba- lho a ser entregue ou à atividade que permite ao instrutor visualizar in- formações mais detalhadas relacionadas aos dados de relatório. Con- forme mostrado na Figura 14B, selecionar o ícone 1424 pode fazer com que a GUI 1400 seja atualizada para mostrar informações detalhadas na segunda região de exibição 1420 próximo ao trabalho a ser entregue ou à atividade. Será reconhecido que a segunda região de exibição 1420 pode ser ajustada automaticamente para cobrir os pixels na tela 302 an- teriormente cobertos tanto pela primeira região de exibição 1410 como pela segunda região de exibição 1420. Obviamente, as extensões da se- gunda região de exibição 1420 podem permanecer as mesmas que na Figura 14A ou serem atualizados manualmente em resposta a um gesto de toque que reloca a primeira região de exibição 1410 e/ou a segunda região de exibição 1420 para cima ou para baixo em relação aos pixels da tela 302. Por exemplo, um gesto de passar o dedo pode ser usado para rolar a primeira região de exibição 1410 e/ou a segunda região de exibição 1420 para cima ou para baixo.
[0175] Conforme mostrado na Figura 14B, dados de relatório rela- cionados a cada aluno inscrito na turma podem ser apresentados na GUI 1400. Por exemplo, uma entrada 1426 das informações detalha- das inclui um nome de aluno, uma indicação de se o aluno passou ou foi reprovado na atividade, se ela foi concluída, um tempo para cada aluno realizar a atividade no aplicativo de terceiros e uma indicação de se a atividade foi concluída. Será reconhecido que as informações mostradas na Figura 14B são apenas um exemplo do tipo de informa- ções detalhadas que podem ser apresentadas na GUI 1400. Em ou- tras modalidades, as informações detalhadas podem incluir outros ti- pos de estatísticas ou informações de rastreamento de progresso não processadas (por exemplo, a divisão de cada ação que foi rastreada pelo daemon 440 com um tempo em que a ação foi recebida pelo da- emon 440 e informações relacionadas à ação). Em ainda outras moda- lidades, as informações detalhadas podem incluir representações grá- ficas dos dados de relatório, como elementos gráficos que mostram o progresso de um aluno ao longo do tempo, links para as respostas de um conjunto de problemas enviadas pelo aluno, links para o trabalho a ser entregue ou uma gravação da atividade realizada pelo aluno, etc.
[0176] Em algumas modalidades, as informações detalhadas po- dem apresentar uma divisão detalhada das informações de rastrea- mento de progresso para as subseções de um dado contexto. Por exemplo, um contexto pode descrever a estrutura de um conjunto de problemas atribuído ao aluno. As informações de rastreamento de progresso podem incluir informações relacionadas a uma resposta fornecida pelo aluno para cada problema no conjunto de problemas. Dessa forma, mesmo que as respostas para o conjunto de problemas sejam consideradas um contexto-pai, contextos-filhos para cada pro- blema no conjunto de problemas podem rastrear respostas para cada questão respondida por um aluno. Dessa forma, as informações deta- lhadas podem permitir que um instrutor visualize as respostas especí- ficas dadas para cada problema e se a resposta está certa ou errada. A GUI 1400 pode possibilitar tais representações visuais dos dados de rastreamento de progresso para que sejam facilmente visualiza- dos pelo instrutor.
[0177] Em algumas modalidades, o aplicativo de cliente 210 pode fornecer um resultado dos dados de relatório em um arquivo ou uma es- trutura de dados a ser arquivado para revisão posterior por, por exemplo, o instrutor e ou um administrador quando da determinação das notas fi- nais para cada aluno na turma.
[0178] A Figura 15 ilustra um fluxograma de um método 1500 para rastrear a atividade de um aluno em um dispositivo cliente, de acordo com algumas modalidades. O método 1500 é executado por um disposi- tivo cliente 120. Em algumas modalidades, o método 1500 pode ser im- plementado como lógica configurada para monitorar atividades associa- das a um ou mais aplicativos. A lógica pode incluir instruções, executa- das por um processador 410 do dispositivo cliente 120, para monitorar o progresso de um aluno para concluir atividades anexadas a um recurso para um material. Em algumas modalidades, o método 1500 é implemen-
tado dentro da lógica implementada pelo daemon 440.
[0179] Em 1502, informações de rastreamento de progresso são recebidas a partir de um ou mais aplicativos. Em algumas modalida- des, as informações de rastreamento de progresso incluem ao menos um dentre um identificador de aplicativo correspondente ao aplicativo que gerou as informações de rastreamento de progresso, um identifi- cador de contexto correspondente a um contexto específico associado ao aplicativo, um carimbo de data e hora indicando o tempo em que as informações de rastreamento de progresso foram geradas, ou infor- mações indicando uma operação que foi executada no aplicativo e/ou um resultado da operação. Em algumas modalidades, as informações de rastreamento de progresso são recebidas por um daemon em uma chamada de API gerada pelo aplicativo.
[0180] Em 1504, as informações de rastreamento de progresso são filtradas. Em algumas modalidades, as informações de rastrea- mento de progresso são filtradas com base em uma determinação de se o rastreamento de progresso está habilitado ou desabilitado para cada aplicativo dentre o um ou mais aplicativos instalados no disposi- tivo cliente. As informações de rastreamento de progresso são des- cartadas quando elas são recebidas de quaisquer aplicativos para os quais o rastreamento de progresso está desabilitado, e as informa- ções de rastreamento de progresso são processadas quando elas são recebidas de quaisquer aplicativos para os quais o rastreamento de progresso está habilitado. Em outras modalidades, uma lista de contextos ativos associados a um ou mais aplicativos é recebida, e as informações de rastreamento de progresso são comparadas com a lista de contextos ativos. Por exemplo, um identificador de contexto incluído nas informações de rastreamento de progresso é comparado com vários identificadores de contexto incluídos na lista de contextos ativos. As informações de rastreamento de progresso são descarta-
das quando elas correspondem a um contexto que não está incluído na lista de contextos ativos, e as informações de rastreamento de progresso são processadas quando elas correspondem a um contex- to que está incluído na lista de contextos ativos.
[0181] Em 1506, as informações de rastreamento de progresso são armazenadas em uma base de dados remota acessível a partir de uma rede. Em algumas modalidades, a base de dados remota é um serviço de armazenamento baseado em rede que usa zonas dife- rentes para armazenar tipos diferentes de dados limitados a um de- terminado escopo. Cada zona que armazena informações de rastre- amento de progresso pode ser protegida com uma criptografia base- ada em disco, e o acesso aos dados pode ser limitado a servidores confiáveis com o uso de técnicas de autenticação e assinatura de mensagens. As informações de rastreamento de progresso podem ser armazenadas em uma zona pessoal no serviço de armazenamen- to baseado em rede, sendo a zona pessoal associada a um dado identificador de usuário de uma conta de usuário associada a um aplicativo de cliente instalado no dispositivo cliente.
[0182] Em 1508, são gerados metadados associados às informa- ções de rastreamento de progresso. Os metadados podem incluir um subconjunto de informações nas informações de rastreamento de progresso, como um identificador de usuário e/ou um identificador de contexto, bem como informações como uma referência às informa- ções de rastreamento de progresso armazenadas na base de dados remota 460.
[0183] Em 1510, os metadados para as informações de rastrea- mento de progresso são transmitidos para um canal de progresso. Em algumas modalidades, o canal de progresso melhora e agrega infor- mações de rastreamento de progresso recebidas de uma pluralidade de dispositivos clientes diferentes associados a uma pluralidade de alunos diferentes em uma ou mais turmas entre uma ou mais organi- zações. O canal de progresso pode incluir vários serviços implementa- dos em vários dispositivos servidores diferentes.
[0184] A Figura 16 ilustra um fluxograma de um método 1600 para processar informações de rastreamento de progresso utilizando um ou mais serviços disponíveis em uma rede, de acordo com algumas moda- lidades. O método 1600 é executado pelo canal de progresso 250. Em algumas modalidades, o método 1600 pode ser implementado como lógica configurada para processar ao menos uma dentre informações de rastreamento de progresso ou metadados correspondentes às infor- mações de rastreamento de progresso. A lógica pode incluir instruções, executadas por um processador 410 do dispositivo servidor 110, para processamento das informações de rastreamento de progresso e/ou dos metadados. Em algumas modalidades, o método 1600 é implemen- tado dentro da lógica implementada por um ou mais serviços incluindo um serviço de acesso de entrada 1210, um serviço de enriquecimento 1220, um sistema de arquivos distribuído 1230, um serviço agregador 1240, um serviço de processamento de saída 1260 e um serviço de de- pósito 1270.
[0185] Em 1602, os metadados correspondentes a informações de rastreamento de progresso são recebidos de uma pluralidade de dis- positivos clientes. Em algumas modalidades, os metadados podem incluir uma referência a informações de rastreamento de progresso armazenadas em uma base de dados remota. Os metadados podem incluir também ao menos um dentre um identificador de turma, um identificador de usuário ou um identificador de contexto corresponden- te às informações de rastreamento de progresso.
[0186] Em 1604, os metadados são enriquecidos com informações adicionais. Em algumas modalidades, os metadados, suplementados pe- los dados adicionais, correlacionam as informações de rastreamento de progresso com um identificador de organização, um identificador de tur- ma, um identificador de serviço de diretório, um identificador de contexto e, opcionalmente, um identificador de material.
[0187] Em 1606, é gerada uma estrutura de dados que inclui um subconjunto de metadados recebidos pelo canal de progresso duran- te uma janela de rastreamento para uma determinada organização. Em algumas modalidades, um sistema de arquivos distribuído utiliza ao menos um nó de registro, que permite que todos os metadados recebidos durante uma janela de rastreamento sejam recuperados do sistema de arquivos distribuído. Um serviço classifica os metadados em estruturas de dados diferentes correspondentes a cada uma den- tre uma ou mais organizações que enviaram os metadados para o canal de progresso durante a janela de rastreamento.
[0188] Em 1608, a estrutura de dados é processada para gerar me- tadados classificados com base no identificador de turma e/ou no identi- ficador de contexto. A classificação pode ser baseada também em um identificador de serviço de diretório ou um identificador interno. A opera- ção em 1608 pode ser executada para cada estrutura de dados criada para a uma ou mais organizações.
[0189] Em 1610, informações de rastreamento de progresso corres- pondentes aos metadados classificados são recuperadas da base de da- dos remota. As referências incluídas nos metadados podem ser usadas para solicitar as informações de rastreamento de progresso a partir da base de dados remota.
[0190] Em 1612, as informações de rastreamento de progresso são armazenadas em uma memória acessível por um serviço de rela- tório. Em algumas modalidades, as informações de rastreamento de progresso são desreferenciadas do identificador de serviço de diretório ou do identificador interno e um identificador de progresso substitui o identificador de serviço de diretório ou o identificador interno nos me-
tadados associados às informações de rastreamento de progresso. O identificador de progresso e as informações de rastreamento de pro- gresso podem ser armazenados em um serviço de armazenamento baseado em rede que é acessível por um serviço de relatório. O servi- ço de armazenamento baseado em rede pode não ser acessível por um dispositivo cliente exceto, indiretamente, através do serviço de re- latório.
[0191] A Figura 17 ilustra uma vista detalhada de um dispositivo de computação 1700 exemplificador que pode ser usado para implementar os vários aparelhos e/ou métodos aqui descritos, de acordo com algumas modalidades. Em particular, a vista detalhada ilustra vários componentes que podem ser incluídos nos dispositivos de computação ilustrados nas Figuras 1 a 14 e/ou aqui descritos. Por exemplo, um ou mais dentre os dispositivos servidores 110, os dispositivos clientes 120 ou qualquer ou- tro dispositivo incluindo quaisquer dispositivos de rede e/ou dispositivos eletrônicos destinados ao consumidor podem incluir os componentes do dispositivo de computação 1700.
[0192] Conforme mostrado na Figura 17, o dispositivo de computa- ção 1700 pode incluir um processador 1702 que representa um micro- processador ou um controlador para controlar a operação geral do dispo- sitivo de computação 1700. O dispositivo de computação 1700 pode in- cluir também um dispositivo de entrada de usuário 1708 que permite a um usuário do dispositivo de computação 1700 interagir com o dispositi- vo de computação 1700. Por exemplo, o dispositivo de entrada de usuá- rio 1708 pode assumir uma variedade de formas, como um botão, tecla- do, controle circular, tela sensível ao toque, interface de entrada de áu- dio, interface de entrada visual/de captura de imagem, entrada sob a forma de dados de sensor, etc. Ainda ainda, o dispositivo de computação 1700 pode incluir uma tela 1710 (tela de exibição) que pode ser controla- da pelo processador 1702 para apresentar informações visuais ao usuá-
rio. Um barramento de dados 1716 pode facilitar a transferência de da- dos entre ao menos um dispositivo de armazenamento 1740, o proces- sador 1702 e um controlador 1713. O controlador 1713 pode ser usado para fazer interface com e controlar diferentes equipamentos através de um barramento de controle de equipamento 1714. O dispositivo de com- putação 1700 pode incluir também uma interface de rede/barramento 1711 que é acoplada a um link de dados 1712. No caso de uma conexão sem fio, a interface de rede/barramento 1711 pode incluir um transceptor sem fio.
[0193] O dispositivo de computação 1700 inclui também um disposi- tivo de armazenamento 1740, que pode compreender um único disco ou uma pluralidade de discos (por exemplo, unidades de discos rígidos), e inclui um módulo de gerenciamento de armazenamento que gerencia uma ou mais partições dentro do dispositivo de armazenamento 1740. Em algumas modalidades, o dispositivo de armazenamento 1740 pode incluir memória flash, memória semicondutora (estado sólido), ou simila- res. O dispositivo de computação 1700 pode incluir também uma memó- ria de acesso aleatório (RAM - "Random Access Memory") 1720 e uma memória somente de leitura (ROM - "Read-only Memory") 1722. A ROM 1722 pode armazenar programas, utilitários ou processos a serem exe- cutados de maneira não volátil. A RAM 1720 pode fornecer armazena- mento de dados volátil e armazena instruções relacionadas à operação do dispositivo de computação 1700.
[0194] Conforme descrito acima, um aspecto da presente tecno- logia é a coleta e uso de dados disponíveis a partir de várias fontes para rastrear o progresso de alunos na conclusão de tarefas atribuí- das. A presente invenção contempla que, em alguns casos, esses dados coletados podem incluir dados de informações pessoais que identificam de modo inequívoco ou podem ser usados para entrar em contato ou localizar uma pessoa específica. Tais dados de informa-
ções pessoais podem incluir dados demográficos, dados sobre locali- zação, números de telefone, endereços de e-mail, IDs de twitter, en- dereços residenciais, dados de registros relacionados à saúde ou ní- vel de condicionamento físico de um usuário (por exemplo, medições de sinais vitais, informações sobre medicações, informações sobre exercícios), data de nascimento, ou quaisquer outras informações de identificação ou pessoais.
[0195] A presente invenção reconhece que o uso desses dados de informações pessoais, na presente tecnologia, pode ser usado em bene- fício dos usuários. Por exemplo, os dados de informações pessoais po- dem ser usados para melhorar a experiência de aprendizado de indiví- duos que frequentam uma escola. Consequentemente, o uso desses da- dos de informações pessoais permite que instrutores adaptem suas li- ções ou atenção individual às necessidades dos alunos. Ainda, a presen- te invenção contempla ainda outros usos dos dados de informações pes- soais que beneficiam o usuário. Por exemplo, dados de saúde e condici- onamento físico podem ser usados para fornecer percepções sobre o bem-estar geral de um usuário, ou podem ser usados como retroinfor- mação positiva para indivíduos que usam a tecnologia para atingir metas de bem-estar.
[0196] A presente invenção contempla que as entidades respon- sáveis pela coleta, análise, divulgação, transferência, armazenamen- to ou outro uso desses dados de informações pessoais atenderão a políticas de privacidade e/ou práticas de privacidade bem estabeleci- das. Em particular, essas entidades precisam implementar e usar consistentemente políticas e práticas de privacidade que sejam de modo geral reconhecidas como atendendo ou excedendo os requisi- tos comerciais ou governamentais para manter privados e seguros os dados de informações pessoais. Tais políticas devem ser facilmente acessíveis pelos usuários, e devem ser atualizadas conforme as mu-
danças na coleta e/ou uso dos dados. As informações pessoais de usuários devem ser coletadas para usos legítimos e razoáveis da en- tidade e não compartilhados ou vendidos fora do escopo de tais usos legítimos. Além disso, tal coleta/compartilhamento deve ocorrer ape- nas após o consentimento expresso dos usuários. Ainda, essas enti- dades devem considerar tomar quaisquer medidas necessárias para salvaguardar e proteger o acesso a esses dados de informações pessoais e garantir que outras pessoas com acesso aos dados de informações pessoais adiram às suas políticas e procedimentos de privacidade. Ainda, essas entidades podem submeter-se a uma ava- liação por terceiros para certificar sua conformidade com políticas e práticas de privacidade amplamente aceitas. Além disso, as políticas e práticas devem ser adaptadas para os tipos específicos de dados de informações pessoais sendo coletados e/ou acessados e adapta- das às leis aplicáveis e padrões, inclusive considerações específicas de jurisdição. Por exemplo, nos EUA, a coleta ou o acesso a certos dados de saúde pode ser regulado por leis federais e/ou estaduais, como o Health Insurance Portability and Accountability Act (HIPAA - Lei de Portabilidade e Responsabilidade de Seguro Saúde); ao passo que em outros países os dados de saúde podem estar sujeitos a ou- tras regulações e políticas e devem ser utilizados adequadamente. Portanto, diferentes práticas de privacidade devem ser mantidas para diferentes tipos de dados pessoais em cada país.
[0197] Apesar do supracitado, a presente invenção também con- templa modalidades nas quais os usuários bloqueiam seletivamente o uso de, ou o acesso a, dados de informações pessoais. Ou seja, a presente invenção contempla que podem ser fornecidos elementos de hardware e/ou software a fim de impedir ou bloquear o acesso a esses dados de informações pessoais. Por exemplo, no caso de serviços de rastreamento de progresso, a presente tecnologia pode ser configura-
da para permitir que os usuários selecionem a opção de "aceitar" ou "rejeitar" em participar na coleta de dados de informações pessoais durante o cadastro para acesso aos serviços ou em qualquer tempo depois disso. Em um outro exemplo, os usuários podem escolher não fornecer informações de rastreamento de progresso para certos aplica- tivos de terceiros. Em ainda outro exemplo, os usuários podem preferir limitar o escopo dos dados que são coletados ou proibir inteiramente a coleta de informações de rastreamento de progresso. Além de forne- cer as opções de "aceitar" e "rejeitar", a presente invenção contempla ainda o fornecimento de notificações relativas ao acesso ou uso de informações pessoais. Por exemplo, um usuário pode ser notificado após o download de um aplicativo que seus dados de informações pessoais serão acessados e então ser lembrado novamente logo an- tes de os dados de informações pessoais serem acessados pelo apli- cativo.
[0198] Ademais, é a intenção da presente invenção que os dados de informações pessoais sejam gerenciados e manuseados de modo a mi- nimizar os riscos de acesso ou uso não intencional ou não autorizado. O risco pode ser minimizado limitando-se a coleta de dados e excluindo-se os dados quando não forem mais necessários. Além disso, e quando aplicável, inclusive em certos aplicativos relacionados à saúde, a "desi- dentificação" de dados pode ser usada para proteger a privacidade de um usuário. A desidentificação pode ser facilitada, quando adequado, mediante a remoção de identificadores específicos (por exemplo, data de nascimento, etc.), controle da quantidade ou especificidade de dados armazenados (por exemplo, coletar dados no nível de cidade em vez de no nível de endereço), controlar a maneira como os dados são armaze- nados (por exemplo, agregando-se dados entre usuários) e/ou com o uso de outros métodos.
[0199] Portanto, embora a presente invenção cubra amplamente o uso de dados de informações pessoais para implementar uma ou mais várias modalidades descritas, a presente invenção também con- templa que as várias modalidades podem ser implementadas também sem a necessidade de acessar tais dados de informações pessoais. Ou seja, as várias modalidades da presente tecnologia não são tor- nadas inoperáveis devido à falta de todos ou de uma porção desses dados de informações pessoais. Por exemplo, o rastreamento de progresso pode ser implementado com base em dados de informa- ções não pessoais ou uma quantidade mínima de informações pes- soais, como outras informações não pessoais disponíveis ao canal de rastreamento de progresso, ou informações publicamente disponí- veis.
[0200] Os vários aspectos, modalidades, implementações ou recur- sos das modalidades descritas podem ser usados separadamente ou em qualquer combinação. Vários aspectos das modalidades descritas po- dem ser implementados por software, hardware ou uma combinação de hardware e software. As modalidades descritas podem também ser in- corporadas como código legível por computador em uma mídia não tran- sitória legível por computador. A mídia não transitória legível por compu- tador é qualquer dispositivo de armazenamento de dados que pode ar- mazenar dados que podem então ser lidos por um sistema de computa- dor. Exemplos da mídia não transitória legível por computador incluem memória somente de leitura, memória de acesso aleatório, CD-ROMs, HDDs, DVDs, fita magnética e dispositivos ópticos de armazenamento de dados. A mídia não transitória legível por computador pode também ser distribuída por sistemas de computação acoplados à rede, de modo que o código legível por computador seja armazenado e executado de manei- ra distribuída.
[0201] A descrição supracitada, para fins de explicação, utilizou no- menclatura específica para fornecer um entendimento completo das mo-
dalidades aqui descritas.
Entretanto, será evidente para o versado na técnica que os detalhes específicos não são imprescindíveis para a práti- ca das modalidades descritas.
Dessa forma, as descrições supracitadas de modalidades específicas são apresentadas para propósitos ilustrati- vos e de descrição.
Elas não se destinam a ser totalmente abrangentes ou limitar as modalidades descritas às formas precisas aqui descritas.
Será evidente para o versado na técnica que muitas modificações e vari- ações são possíveis em vista dos ensinamentos aqui apresentados.

Claims (20)

REIVINDICAÇÕES
1. Método para rastrear a atividade de um aluno em um dis- positivo cliente, caracterizado por o método incluir, por um processo de segundo plano executando no dispositivo cliente, as etapas de: receber informações de rastreamento de progresso relacio- nadas a atividades de aluno a partir de um ou mais aplicativos no disposi- tivo cliente; filtrar as informações de rastreamento de progresso para ge- rar informações de rastreamento de progresso filtradas; armazenar as informações de rastreamento de progresso filtradas em uma base de dados remota; gerar metadados associados às informações de rastreamento de progresso filtradas; e transmitir os metadados para ao menos um serviço acessível pelo dispositivo cliente através de uma rede.
2. Método, de acordo com a reivindicação 1, caracterizado por cada aplicativo no um ou mais aplicativos implementar ao menos uma porção de uma estrutura de software que faz com que o aplicati- vo gere chamadas de interface de programação de aplicativo (API) para o processo de segundo plano em resposta a operações execu- tadas dentro do aplicativo.
3. Método, de acordo com a reivindicação 1, caracterizado por a filtragem das informações de rastreamento de progresso compre- ender: determinar se o rastreamento de progresso está habilitado ou desabilitado para cada um dentre o um ou mais aplicativos; e descartar as informações de rastreamento de progresso quando as informações de rastreamento de progresso forem recebidas a partir de quaisquer aplicativos para os quais o rastreamento de progresso está desabilitado, ou processar as informações de rastreamento de progresso quando as informações de rastreamento de progresso forem recebi- das a partir de quaisquer aplicativos para os quais o rastreamento de progresso está habilitado para gerar as informações de rastreamento de progresso filtradas.
4. Método, de acordo com a reivindicação 1, caracterizado por a filtragem das informações de rastreamento de progresso compre- ender: receber uma lista de contextos ativos associados ao um ou mais aplicativos; comparar um identificador de contexto incluído nas informa- ções de rastreamento de progresso com a lista de contextos ativos; e descartar as informações de rastreamento de progresso quando o identificador de contexto não estiver incluído na lista de contex- tos ativos, ou processar as informações de rastreamento de progresso quando o identificador de contexto estiver incluído na lista de contex- tos ativos para gerar as informações de rastreamento de progresso filtradas.
5. Método, de acordo com a reivindicação 1, caracterizado por as informações de rastreamento de progresso armazenadas na base de dados remota serem protegidas com o uso de criptografia em disco para cada zona na base de dados remota.
6. Método, de acordo com a reivindicação 1, caracterizado por a base de dados remota ser um serviço de armazenamento ba- seado em rede dividido em uma pluralidade de zonas que armaze- nam dados diferentes, cada zona limitada em escopo a qualquer combinação de ao menos um dentre um identificador de organização, um identificador de turma, um identificador de usuário, um identifica- dor de contexto ou um identificador de material.
7. Método, de acordo com a reivindicação 6, caracterizado por as informações de rastreamento de progresso serem armazenadas em uma zona pessoal no serviço de armazenamento baseado em re- de, sendo a zona pessoal associada a um dado identificador de usuá- rio de uma conta de usuário associada a um aplicativo de cliente insta- lado no dispositivo cliente.
8. Método, de acordo com a reivindicação 1, caracterizado por os metadados incluírem uma referência às informações de rastrea- mento de progresso na base de dados remota, bem como ao menos um dentre um identificador de turma, um identificador de usuário ou um iden- tificador de contexto.
9. Método, de acordo com a reivindicação 8, caracterizado por o identificador de contexto estar incluído nos metadados.
10. Dispositivo de computação configurado para processar in- formações de rastreamento de progresso utilizando um ou mais serviços disponíveis em uma rede, caracterizado por o dispositivo de computação compreender: meios para receber metadados correspondentes a informa- ções de rastreamento de progresso a partir de uma pluralidade de dispo- sitivos clientes; meios para gerar uma estrutura de dados que inclui um subconjunto dos metadados recebidos durante uma janela de rastre- amento para uma determinada organização identificada por um iden- tificador de organização; meios para processar a estrutura de dados para gerar meta- dados classificados com base em um identificador de turma e em um identificador de contexto; e meios para armazenar as informações de rastreamento de progresso correspondentes aos metadados classificados em uma memória acessível por um serviço.
11. Dispositivo de computação, de acordo com a reivindica- ção 10, caracterizado por compreender ainda: meios para enriquecer os metadados mediante inclusão de informações adicionais.
12. Dispositivo de computação, de acordo com a reivindica- ção 11, caracterizado por as informações adicionais incluírem ao menos um dentre o identificador de organização, um identificador de serviço de diretório ou um identificador de material.
13. Dispositivo de computação, de acordo com a reivindi- cação 10, caracterizado por o um ou mais serviços incluírem ao me- nos um dentre um serviço de acesso de entrada, um serviço de enri- quecimento, um sistema de arquivos distribuídos, um serviço agrega- dor, um serviço de processamento de saída e um serviço de depósi- to.
14. Dispositivo servidor configurado para rastrear o pro- gresso de alunos aos quais foram atribuídos um ou mais materiais digitais, caracterizado por o dispositivo servidor compreender: pelo menos um processador; e ao menos uma memória para armazenar instruções que, quando executadas pelo ao menos um processador, fazem com que o dispositivo servidor implemente serviços para rastrear o progresso de alunos na conclusão do um ou mais materiais digitais, sendo que os serviços incluem: um serviço de materiais que possibilita que o um ou mais ma- teriais digitais sejam criados e ligados a contextos associados a um ou mais aplicativos instalados no ao menos um dispositivo cliente, sendo que cada aplicativo no um ou mais aplicativos implementa ao menos uma porção de uma estrutura de software, e um canal de progresso que inclui uma pluralidade de serviços configurados para processar informações de rastreamento de progresso geradas pelo um ou mais aplicativos instalados no ao menos um disposi- tivo cliente.
15. Dispositivo servidor, de acordo com a reivindicação 14, caracterizado por o canal de progresso incluir um primeiro serviço confi- gurado para: receber metadados correspondentes a informações de rastreamento de progresso; "desreferenciar" um identificador de usuário incluído nos metadados mediante substituição do identificador de usuário por um identificador de serviço de diretório ou um identificador interno; determinar se o rastreamento de progresso está habilitado ou desabilitado para um dentre o identificador de usuário, o identifi- cador de serviço de diretório ou o identificador interno; e filtrar os metadados com base na determinação.
16. Dispositivo servidor, de acordo com a reivindicação 15, caracterizado por o canal de progresso incluir um segundo serviço confi- gurado para: enriquecer os metadados com ao menos um dentre um identificador de organização, o identificador de serviço de diretório, o identificador interno ou um identificador de material.
17. Dispositivo servidor, de acordo com a reivindicação 15, caracterizado por o canal de progresso incluir um segundo serviço confi- gurado para: recuperar um subconjunto de metadados correspondente a uma janela de rastreamento a partir de um sistema de arquivos distri- buídos que inclui ao menos um nó de registro; gerar uma estrutura de dados que inclui o subconjunto de metadados associado a um identificador de organização específico incluído no subconjunto de metadados; armazenar a estrutura de dados em um serviço de armaze-
namento; e transmitir uma referência correspondente à estrutura de da- dos para dentro de uma fila.
18. Dispositivo servidor, de acordo com a reivindicação 15, caracterizado por o canal de progresso incluir um segundo serviço confi- gurado para: processar uma estrutura de dados para gerar metadados classificados com base em ao menos um dentre um identificador de turma, um identificador de material, um identificador de contexto, o identificador de usuário, o identificador de serviço de diretório ou o identificador interno.
19. Dispositivo servidor, de acordo com a reivindicação 15, caracterizado por o canal de progresso incluir um segundo serviço confi- gurado para: associar as informações de rastreamento de progresso a um identificador de progresso associado a um dentre o identificador de usuá- rio, o identificador de serviço de diretório ou o identificador interno; e armazenar as informações de rastreamento de progresso e o identificador de progresso em um serviço de armazenamento baseado em rede.
20. Dispositivo servidor, de acordo com a reivindicação 14, caracterizado por cada dispositivo cliente incluir um daemon configu- rado para sincronizar dados armazenados em uma base de dados local no dispositivo cliente com uma base de dados remota de modo que os dados possam ser acessados por um segundo dispositivo cli- ente.
BR112020016783-5A 2018-03-26 2019-03-07 Estrutura de software para rastreamento de progresso em um ambiente de sala de aula BR112020016783A2 (pt)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201862648361P 2018-03-26 2018-03-26
US62/648,361 2018-03-26
US16/258,161 2019-01-25
US16/258,161 US12052320B2 (en) 2018-03-26 2019-01-25 Software framework for progress tracking in a classroom setting
PCT/US2019/021228 WO2019190716A1 (en) 2018-03-26 2019-03-07 Software framework for progress tracking in a classroom setting

Publications (1)

Publication Number Publication Date
BR112020016783A2 true BR112020016783A2 (pt) 2020-12-15

Family

ID=67985915

Family Applications (1)

Application Number Title Priority Date Filing Date
BR112020016783-5A BR112020016783A2 (pt) 2018-03-26 2019-03-07 Estrutura de software para rastreamento de progresso em um ambiente de sala de aula

Country Status (8)

Country Link
US (1) US12052320B2 (pt)
EP (1) EP3724845A4 (pt)
JP (3) JP7014915B2 (pt)
KR (1) KR102526031B1 (pt)
CN (1) CN111788600A (pt)
AU (3) AU2019241882A1 (pt)
BR (1) BR112020016783A2 (pt)
WO (1) WO2019190716A1 (pt)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102592053B1 (ko) * 2016-07-04 2023-10-23 삼성전자주식회사 유저 인터페이스 제공 방법 및 이를 지원하는 전자 장치
CN111369848B (zh) * 2020-02-14 2023-01-20 广州开得联智能科技有限公司 基于课件内容互动的方法、装置、存储介质和电子设备
US11805176B1 (en) * 2020-05-11 2023-10-31 Apple Inc. Toolbox and context for user interactions
US20230036686A1 (en) * 2021-07-28 2023-02-02 Lenovo (Singapore) Pte. Ltd. Method and device for monitoring electronic devices
US20230245236A1 (en) * 2022-02-01 2023-08-03 eCU Technology, LLC Managing The Display Of Applications For Financial Institutions

Family Cites Families (34)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5577186A (en) 1994-08-01 1996-11-19 Mann, Ii; S. Edward Apparatus and method for providing a generic computerized multimedia tutorial interface for training a user on multiple applications
JP3745320B2 (ja) 2002-08-09 2006-02-15 欽也 玉木 教育指導支援方法および支援プログラム
US7703389B2 (en) 2003-08-14 2010-04-27 Mclemore John D Cooking apparatus with cooking characteristic monitoring system
CN1808520A (zh) 2005-01-17 2006-07-26 富士通株式会社 学习程序、学习方法及学习装置
US20070122790A1 (en) 2005-10-24 2007-05-31 Sperle Robin U Monitoring progress of external course
JP2007264027A (ja) 2006-03-27 2007-10-11 Nec Corp 学習システムおよびその履歴情報管理方法
US20080254432A1 (en) 2007-04-13 2008-10-16 Microsoft Corporation Evaluating learning progress and making recommendations in a computerized learning environment
US8137112B2 (en) 2007-04-12 2012-03-20 Microsoft Corporation Scaffolding support for learning application programs in a computerized learning environment
US8251704B2 (en) 2007-04-12 2012-08-28 Microsoft Corporation Instrumentation and schematization of learning application programs in a computerized learning environment
US20090035733A1 (en) 2007-08-01 2009-02-05 Shmuel Meitar Device, system, and method of adaptive teaching and learning
US20090198542A1 (en) 2008-02-01 2009-08-06 D Amore Tianyu L Distributing premium content with advertising sponsorship
US9269274B1 (en) 2010-09-22 2016-02-23 Amazon Technologies, Inc. Course content and assignment distribution
US8950215B2 (en) 2010-10-06 2015-02-10 Apple Inc. Non-contact polishing techniques for reducing roughness on glass surfaces
IN2014MN00687A (pt) * 2011-09-13 2015-07-03 Monk Akarshala Design Private Ltd
US20130344462A1 (en) * 2011-09-29 2013-12-26 Emily K. Clarke Methods And Devices For Edutainment Specifically Designed To Enhance Math Science And Technology Literacy For Girls Through Gender-Specific Design, Subject Integration And Multiple Learning Modalities
US20140099624A1 (en) 2012-05-16 2014-04-10 Age Of Learning, Inc. Mentor-tuned guided learning in online educational systems
KR101319666B1 (ko) * 2013-02-27 2013-10-17 주식회사 위두커뮤니케이션즈 전자서적과 연동되는 게임의 제공 장치
US20140272889A1 (en) 2013-03-15 2014-09-18 Career Education Center Computer implemented learning system and methods of use thereof
US20150199910A1 (en) * 2014-01-10 2015-07-16 Cox Communications, Inc. Systems and methods for an educational platform providing a multi faceted learning environment
US20150206448A1 (en) * 2014-01-22 2015-07-23 AlvaEDU, Inc. On-line education system with synchronous lectures
US9368042B2 (en) 2014-02-19 2016-06-14 Pearson Education, Inc. Educational-app engine for representing conceptual understanding using student populations' electronic response latencies
US9754503B2 (en) * 2014-03-24 2017-09-05 Educational Testing Service Systems and methods for automated scoring of a user's performance
US20160027318A1 (en) 2014-07-23 2016-01-28 Amitabh Rao Motivational and Practice Aid App
CN105574630A (zh) 2014-10-14 2016-05-11 北大方正集团有限公司 在线课程的管理方法及管理系统
US20160321937A1 (en) 2015-04-30 2016-11-03 Fawaz A. ALROUQI Educational systems
CA2990952A1 (en) * 2015-07-03 2017-01-12 Intersective Pty Ltd A system and a method for monitoring progress of a learner through an experiential learning cycle
US10163358B2 (en) * 2015-09-23 2018-12-25 Chethan Yadav Method and system for student project management
CN105405081A (zh) 2015-11-09 2016-03-16 英业达科技有限公司 记录学习进度以提供接续学习的系统及其方法
CN105513443A (zh) 2015-12-08 2016-04-20 英业达科技有限公司 依学习历程更新学习记录以回复学习进度的系统及方法
US10607498B2 (en) 2015-12-31 2020-03-31 Dropbox, Inc. Releasing assignments to students
US10319251B2 (en) * 2016-09-14 2019-06-11 Scriyb LLC Networked activity monitoring via electronic tools in an online group learning course and regrouping students during the course based on the monitored activity
US20190318644A1 (en) * 2016-11-23 2019-10-17 Nelson Education Ltd. End to end educational system and method
US10395554B2 (en) * 2017-02-28 2019-08-27 Information Systems Audit and Control Association, Inc. Scoring of user operations performed on a computer in a computerized learning system
US10475349B2 (en) * 2017-03-10 2019-11-12 SmartNoter Inc. System and method of producing and providing user specific educational digital media modules

Also Published As

Publication number Publication date
AU2024203453A1 (en) 2024-06-13
US20190297155A1 (en) 2019-09-26
JP2021518940A (ja) 2021-08-05
CN111788600A (zh) 2020-10-16
AU2022203160A1 (en) 2022-06-02
EP3724845A4 (en) 2021-09-15
EP3724845A1 (en) 2020-10-21
WO2019190716A1 (en) 2019-10-03
KR102526031B1 (ko) 2023-04-25
JP7431869B2 (ja) 2024-02-15
JP2022068154A (ja) 2022-05-09
JP2024056770A (ja) 2024-04-23
AU2019241882A1 (en) 2020-08-06
JP7014915B2 (ja) 2022-02-01
KR20200104922A (ko) 2020-09-04
US12052320B2 (en) 2024-07-30

Similar Documents

Publication Publication Date Title
BR112020016783A2 (pt) Estrutura de software para rastreamento de progresso em um ambiente de sala de aula
US11948473B2 (en) Assignments for classrooms
US20180107746A1 (en) Collecting and providing customized user generated content across networks based on domain
US10607498B2 (en) Releasing assignments to students
US20230086427A1 (en) Share pools for sharing files via a storage service
Nielsen et al. Navigating ethical issues with electronic health records in developmental-behavioral pediatric practice
WO2015118418A1 (en) Capturing and managing knowledge from social networking interactions
Johnson Toward usable access control for end-users: A case study of facebook privacy settings
Marques Monitoring: An intervention to improve team results in software engineering education
Saichaie et al. How we created a targeted teaching tool using blog architecture for anesthesia and critical care education–the A/e anesthesia exchange blog
Henrick et al. Moodle administration essentials
Kelly et al. Self analytics and personal digital archives in university collections
Alavi et al. Selecting an electronic data capture system
Rice Edinburgh datashare–reflections from a data repository manager
O'Malley How do Non-Majors Approach a CS1 Course?
Hu A smartphone app for substance use disorders
Adams Where is 108? Possible under-utilization of the Copyright Act’s library and archive-specific exemption from copyright infringement
Suomela Engaging Libraries with Web Archives
Stone et al. Experiences with a hybrid CS1 for non-majors
Bordeianu And They Were There-Reports of Meetings-SALALM 2010 and the final installment of reports from the 2009 Charleston Conference
Henskens et al. How do health researchers benefit from web-based survey systems
Dietrich Pedagogical integration of database visualizations for many majors: conference tutorial
Gill et al. USF web content management system
Klein The visualization of privacy filters for sharing sensor-based health data
Arceo University of the Philippines Manila Institutional Repository

Legal Events

Date Code Title Description
B350 Update of information on the portal [chapter 15.35 patent gazette]
B06W Patent application suspended after preliminary examination (for patents with searches from other patent authorities) chapter 6.23 patent gazette]
B15K Others concerning applications: alteration of classification

Free format text: AS CLASSIFICACOES ANTERIORES ERAM: G06Q 50/20 , G06F 8/30 , G06F 11/34 , G09B 5/02 , G09B 5/08

Ipc: G09B 5/14 (2006.01)