KR102526031B1 - 교실 환경에서의 진행 추적을 위한 소프트웨어 프레임워크 - Google Patents

교실 환경에서의 진행 추적을 위한 소프트웨어 프레임워크 Download PDF

Info

Publication number
KR102526031B1
KR102526031B1 KR1020207024265A KR20207024265A KR102526031B1 KR 102526031 B1 KR102526031 B1 KR 102526031B1 KR 1020207024265 A KR1020207024265 A KR 1020207024265A KR 20207024265 A KR20207024265 A KR 20207024265A KR 102526031 B1 KR102526031 B1 KR 102526031B1
Authority
KR
South Korea
Prior art keywords
progress tracking
tracking information
progress
application
delete delete
Prior art date
Application number
KR1020207024265A
Other languages
English (en)
Other versions
KR20200104922A (ko
Inventor
존 에스. 바움가르텐
제니퍼 유. 송
마린 유뱅크스
파벨 브이. 두드레노프
수감 자인
레오 리
사만 바파이
Original Assignee
애플 인크.
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 애플 인크. filed Critical 애플 인크.
Publication of KR20200104922A publication Critical patent/KR20200104922A/ko
Application granted granted Critical
Publication of KR102526031B1 publication Critical patent/KR102526031B1/ko

Links

Images

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
    • 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
    • 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
    • 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)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Human Resources & Organizations (AREA)
  • Strategic Management (AREA)
  • Economics (AREA)
  • General Health & Medical Sciences (AREA)
  • Quality & Reliability (AREA)
  • Marketing (AREA)
  • Primary Health Care (AREA)
  • Health & Medical Sciences (AREA)
  • General Business, Economics & Management (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)
  • Electrically Operated Instructional Devices (AREA)
  • Information Transfer Between Computers (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Stored Programmes (AREA)

Abstract

본 출원은 강사에 의해 생성된 과제들에 관련된 진행 추적을 가능하게 하는 클라이언트-서버 아키텍처에 관한 것이다. 유인물(hand-out)은 학생들에 의해 과제의 일부로서 수행될 제출물(hand-in)들 및/또는 활동들에 대한 플레이스홀더(placeholder)들을 특정하는 첨부물들을 포함할 수 있다. 일부 활동들은, 애플리케이션들로 하여금 클라이언트 디바이스의 백그라운드에서 실행되는 데몬에 제공되는 진행 추적 정보를 생성하게 하는 소프트웨어 프레임워크의 적어도 일부분을 구현하는 제3자 애플리케이션들을 사용하여 수행될 수 있다. 데몬 및/또는 클라이언트 애플리케이션은 강사가 진행 추적 정보를 이용할 수 있게 하기 위해 하나 이상의 네트워크 서비스들과 인터페이싱한다. 네트워크 서비스는 학생들의 그룹에 할당된 유인물들을 생성하는 데 이용되는 유인물 서비스를 포함할 수 있다. 네트워크 서비스들은 또한 복수의 클라이언트 디바이스들로부터 수신된 진행 추적 정보를 프로세싱하도록 구성된 다수의 서비스들을 포함하는 진행 파이프라인을 포함할 수 있다.

Description

교실 환경에서의 진행 추적을 위한 소프트웨어 프레임워크
설명된 실시예들은 일반적으로 교실 환경(classroom setting)에서 다양한 기술들을 구현하도록 구성된 소프트웨어 프레임워크에 관한 것이다. 보다 상세하게는, 본 실시예들은 복수의 학생들에 대한 온라인 과제들의 완료의 진행에 관련된 정보를 추적 및 보고하는 것에 관한 것이다.
텔레비전, 프로젝션 시스템, 및 테이프 데크와 같은 오디오 시청각(audio visual, AV) 디바이스들의 발명 이래로, 학군들 및 강사들은 새롭고 매력적인 방식들로 학생들에게 정보를 제공하기 위해 이들 디바이스를 이용하는 그들의 강습 계획들 내에 자료들을 통합해 오고 있다. 강사들은 교과서, 강의, 및 서면 과제로만 한정되지 않았다. 정보화 시대의 도래로, 인터넷은 교실에서 새로운 지평을 열었다. 강사들은 이제 매력적이고 생산적인 상호작용적 강습 계획들을 생성하기 위해 거의 무제한의 정보 리소스로부터 이끌어낼 수 있다.
그러나, 이러한 강습 계획들을 개발할 때 강사들에게 이용가능한 도구들은 제한된다. 예를 들어, 위키피디아® 기사는 특정 주제에 관한 유용한 배경 자료를 제공할 수 있다. 그럼에도 불구하고, 강사는 기사를 학생들과 공유하는 좋은 옵션을 갖지 않을 수 있다. 강사는 기사를 종이 유인물(hand-out)들 상에 인쇄할 수 있는데, 이는 그러한 자료들을 학생들에게 배포하는 전통적인 방식이었다. 그러나, 이러한 방법은 낭비적이며, 온라인으로 제시되는 바와 같은 기사의 상호작용적 요소들(예컨대, 애니메이션, 하이퍼링크 등) 중 일부를 잃게 된다. 대안적으로, 강사는 가정에서 또는 학교에 의해 제공된 컴퓨팅 디바이스 상에서 보도록 그들의 학생들 각각에게 기사에 대한 하이퍼링크를 이메일로 보내줄 수 있다. 그러한 방법들은 학생들이 기사 내에 포함된 상호작용 요소들과 상호작용하도록 적절한 컨텍스트 내에서 기사를 볼 수 있게 하지만, 강사는 각각의 학생이 하이퍼링크를 클릭했는지 여부 또는 심지어 각각의 학생이 실제로 전체 기사를 다 읽었는지 여부를 추적할 방법이 없다.
본지는 강사에 의해 생성된 과제들에 관련된 진행 추적을 가능하게 하는 클라이언트-서버 아키텍처에 관한 다양한 실시예들을 설명한다. 유인물은 학생들에 의해 과제의 일부로서 수행될 제출물(hand-in)들 및/또는 활동들에 대한 플레이스홀더(placeholder)들을 특정하는 첨부물들을 포함할 수 있다. 일부 활동들은, 애플리케이션들로 하여금 클라이언트 디바이스의 백그라운드에서 실행되는 데몬에 제공되는 진행 추적 정보를 생성하게 하는 소프트웨어 프레임워크의 적어도 일부분을 구현하는 제3자 애플리케이션들을 사용하여 수행될 수 있다. 데몬 및/또는 클라이언트 애플리케이션은 강사가 진행 추적 정보를 이용할 수 있게 하기 위해 하나 이상의 네트워크 서비스들과 인터페이싱한다. 네트워크 서비스는 학생들의 그룹에 할당된 유인물들을 생성하는 데 이용되는 유인물 서비스를 포함할 수 있다. 네트워크 서비스들은 또한 복수의 클라이언트 디바이스들로부터 수신된 진행 추적 정보를 프로세싱하도록 구성된 다수의 서비스들을 포함하는 진행 파이프라인을 포함할 수 있다.
일부 실시예들에서, 클라이언트 디바이스는 프로세서, 메모리, 및 디스플레이를 포함한다. 메모리는 운영 체제, 클라이언트 애플리케이션, 데몬, 및 하나 이상의 제3자 애플리케이션들을 포함할 수 있으며, 그러한 애플리케이션들은 소프트웨어 프레임워크의 적어도 일부분을 구현하는 적어도 하나의 진행 애플리케이션을 포함한다. 소프트웨어 프레임워크는 진행 애플리케이션으로 하여금, 진행 애플리케이션이 클라이언트 애플리케이션 및/또는 데몬에 제공하는 하나 이상의 컨텍스트들에 관련된 진행 추적 정보를 생성할 수 있게 한다. 컨텍스트는 일반적으로, 클라이언트 애플리케이션이 진행 애플리케이션 내에서 학생에 의해 완료될 수 있는 활동들을 정의할 수 있도록, 진행 애플리케이션의 적어도 일부분의 구조를 정의한다.
일부 실시예들에서, 데몬은 백그라운드 프로세스로서 실행되며, 하나 이상의 애플리케이션들로부터 진행 추적 정보를 수신하고, 진행 추적 정보를 필터링하고, 진행 추적 정보를 원격 데이터베이스에 저장하고, 진행 추적 정보와 연관된 메타데이터를 생성하고, 메타데이터를 적어도 하나의 서비스로 송신하도록 구성된다. 데몬은 또한 클라이언트 디바이스 상에 로컬로 저장된 리소스의 버전들을 원격 데이터베이스에 저장된 버전들과 조정하는 동기화 메커니즘을 구현할 수 있다. 동기화 메커니즘은 리소스가 2개 이상의 클라이언트 디바이스들 상에서 액세스될 수 있게 한다.
일부 실시예들에서, 소프트웨어 프레임워크는 진행 애플리케이션들로 하여금 진행 추적 정보를 포함하는 데몬에 송신되는 API 호출들을 생성하게 한다. 데몬은 진행 추적이 하나 이상의 진행 애플리케이션들에 대해 인에이블되는지 또는 디스에이블되는지 여부에 기초하여 진행 추적 정보를 필터링하도록 구성될 수 있다. 대안적으로, 데몬은 활성 컨텍스트들의 목록에 기초하여 진행 추적 정보를 필터링하도록 구성될 수 있다.
일부 실시예들에서, 원격 데이터베이스는 상이한 데이터를 저장하는 복수의 구역들로 배분되는 네트워크-기반 저장 서비스이고, 각각의 구역은 조직 식별자, 수업 식별자, 사용자 식별자, 컨텍스트 식별자, 또는 유인물 식별자 중 적어도 하나의 임의의 조합으로 범위가 한정된다. 진행 추적 정보에 대응하는 메타데이터는 데몬에 의해 생성되고 진행 파이프라인으로 송신된다. 메타데이터는 원격 데이터베이스 내의 진행 추적 정보에 대한 참조뿐만 아니라, 수업 식별자, 유인물 식별자, 사용자 식별자, 또는 컨텍스트 식별자 중 적어도 하나를 포함한다.
일부 실시예들에서, 진행 파이프라인은 파이프라인 아키텍처로 구조화된 다수의 서비스들을 포함한다. 진행 파이프라인은 온-램프 서비스(on-ramp service)를 포함할 수 있으며, 온-램프 서비스는: 진행 추적 정보에 대응하는 메타데이터를 수신하고; 메타데이터에 포함된 사용자 식별자를 디렉토리 서비스 식별자 또는 내부 식별자로 대체함으로써 사용자 식별자를 역참조하고(de-reference); 진행 추적이 사용자 식별자, 디렉토리 서비스 식별자, 또는 내부 식별자 중 하나에 대해 인에이블되는지 또는 디스에이블되는지 여부를 결정하고; 결정에 기초하여 메타데이터를 필터링하도록 구성된다. 진행 파이프라인은 조직 식별자, 디렉토리 서비스 식별자, 사용자 식별자, 또는 유인물 식별자 중 적어도 하나로 메타데이터를 보강하도록(enrich) 구성된 보강 서비스(enrichment service)를 포함할 수 있다. 진행 파이프라인은 집계기 서비스(aggregator service)를 포함할 수 있으며, 집계기 서비스는: 적어도 하나의 저널 노드(journal node)를 포함하는 분산 파일 시스템으로부터 추적 윈도우와 대응하는 메타데이터의 서브세트를 검색하고, 메타데이터의 서브세트에 포함된 특정 조직 식별자와 연관된 메타데이터의 서브세트를 포함하는 데이터 구조를 생성하고, 데이터 구조에 대응하는 참조를 큐 내로 푸시하도록 구성된다. 진행 파이프라인은 수업 식별자, 유인물 식별자, 컨텍스트 식별자, 사용자 식별자, 디렉토리 서비스 식별자, 또는 내부 식별자 중 적어도 하나에 기초하여 분류된 메타데이터(sorted metadata)를 생성하기 위해 데이터 구조를 프로세싱하도록 구성된 오프-램프 서비스(off-ramp service)를 포함할 수 있다. 진행 파이프라인은 디파짓 서비스(deposit service)를 포함할 수 있으며, 디파짓 서비스는: 진행 추적 정보를, 사용자 식별자 또는 디렉토리 서비스 식별자 중 하나와 연관된 진행 식별자와 연관시키고; 진행 추적 정보 및 진행 식별자를 네트워크-기반 저장 서비스에 저장하도록 구성된다.
클라이언트-서버 아키텍처 및/또는 소프트웨어 프레임워크는, 개별적으로 또는 조합하여, 학습 경험을 향상시키기 위해 강사들 및 학생들이 하나 이상의 제3자 애플리케이션들의 기능을 통합하는 상호작용적 강습 계획들을 사용하여 상호작용하게 할 수 있다. 본 발명의 다른 양태들 및 이점들은 설명되는 실시예들의 원리들을 예로서 예시하는 첨부 도면들과 함께 취해지는 하기의 상세한 설명으로부터 명백하게 될 것이다.
본 발명의 내용은 단지 본 명세서에 설명된 주제의 일부 양태들에 대한 기본적인 이해를 제공하도록 일부 예시적인 실시예들을 요약하기 위한 목적으로 제공될 뿐이다. 따라서, 전술된 특징들은 단지 예시일 뿐이고 본 명세서에 설명된 주제의 범주 또는 기술적 사상을 어떤 방식으로든 한정하도록 해석되어서는 안 된다는 것을 이해할 것이다. 본 명세서에 설명된 주제의 다른 특징들, 양태들 및 이점들은 다음의 상세한 설명, 도면들 및 청구범위로부터 명백해질 것이다.
본 개시내용은 첨부 도면들과 함께 다음의 상세한 설명에 의해 용이하게 이해될 것이며, 도면에서, 유사한 도면 부호들은 유사한 구조적 요소들을 지정한다.
도 1은 일부 실시예들에 따른, 교실 환경 내에서 동작하도록 설계된 네트워크 환경을 도시한다.
도 2는 일부 실시예들에 따른, 교실 환경에서의 클라이언트 디바이스들에 대한 진행 추적을 가능하게 하도록 구현된 클라이언트-서버 아키텍처를 도시한다.
도 3은 일부 실시예들에 따른, 클라이언트 애플리케이션의 그래픽 사용자 인터페이스를 도시한다.
도 4는 일부 실시예들에 따른, 유인물 서비스와 클라이언트 애플리케이션 및/또는 데몬 사이의 클라이언트-서버 관계를 도시한다.
도 5는 일부 실시예들에 따른, 데몬에 의해 구현되는 동기화 메커니즘을 도시한다.
도 6a 내지 도 6e는 일부 실시예들에 따른, 클라이언트 애플리케이션의 그래픽 사용자 인터페이스를 도시한다.
도 7은 일부 실시예들에 따른, 유인물 서비스와, 교실 내 복수의 학생들과 연관된 다수의 클라이언트 애플리케이션(들) 및/또는 데몬(들) 사이의 클라이언트-서버 관계를 도시한다.
도 8a 내지 도 8c는 일부 실시예들에 따른, 학생과 연관된 클라이언트 디바이스 상의 클라이언트 애플리케이션에 의해 구현되는 그래픽 사용자 인터페이스를 도시한다.
도 9는 일부 실시예들에 따른, 제출물 서비스와, 교실 내 복수의 학생들에 대한 다수의 클라이언트 애플리케이션(들) 및/또는 데몬(들) 사이의 클라이언트-서버 관계를 도시한다.
도 10은 일부 실시예들에 따른, 진행 파이프라인과 클라이언트 애플리케이션 및/또는 데몬 사이의 클라이언트-서버 관계를 도시한다.
도 11은 일부 실시예들에 따른, 데몬에 의한 진행 추적 정보의 필터링을 도시한다.
도 12는 일부 실시예들에 따른 진행 파이프라인을 도시한다.
도 13은 일부 실시예들에 따른, 보고서 서비스와 클라이언트 애플리케이션 및/또는 데몬 사이의 클라이언트-서버 관계를 도시한다.
도 14a 및 도 14b는 일부 실시예들에 따른, 클라이언트 애플리케이션의 그래픽 사용자 인터페이스를 도시한다.
도 15는 일부 실시예들에 따른, 클라이언트 디바이스 상에서 학생 활동을 추적하기 위한 방법의 흐름도이다.
도 16은 일부 실시예들에 따른, 네트워크를 통해 이용가능한 하나 이상의 서비스들을 이용하여 진행 추적 정보를 프로세싱하기 위한 방법의 흐름도이다.
도 17은 일부 실시예들에 따른, 본 명세서에
설명된 다양한 장치 및/또는 방법들을 구현하는 데 사용될 수 있는 예시적인 컴퓨팅 디바이스의 상세도를 도시한다.
본 출원에 따른 방법들 및 장치의 대표적인 응용예들이 이 섹션에 설명된다. 이 예들은 단지 맥락을 부가하고 설명된 실시예들의 이해에 도움을 주기 위해 제공되어 있다. 따라서, 설명된 실시예들이 이들의 구체적인 상세한 설명의 일부 또는 전부 없이도 실시될 수 있다는 것이 본 기술 분야의 통상의 기술자에게 명백할 것이다. 다른 경우들에서, 잘 알려진 공정 단계들은 설명된 실시예들을 불필요하게 불명료하게 하지 않기 위해 상세히 설명되지 않았다. 다른 응용예들도 가능하며, 따라서 이하의 예들은 제한하는 것으로 취해져서는 안 된다.
하기의 상세한 설명에서는, 설명의 일부를 형성하고 설명된 실시예들에 따른 특정 실시예들이 예시로서 도시되어 있는 첨부 도면들이 참조된다. 이러한 실시예들은 본 기술 분야의 통상의 기술자가 설명된 실시예들을 실행할 수 있게 하도록 충분히 상세하게 설명되지만, 이러한 예들은 제한하는 것이 아니어서, 다른 실시예들이 사용될 수 있으며 설명된 실시예들의 기술적 사상 및 범주를 벗어남이 없이 변경이 이루어질 수 있음이 이해된다.
디지털 교실은 학생들에게 제공된 컴퓨팅 디바이스들 상에 설치된 상호작용 애플리케이션들의 풍부한 환경 내에서 학습할 새로운 기회들을 학생들에게 제공한다. 디바이스들은 학생들이 브라우저를 통해 액세스되거나 특수화된 애플리케이션들을 통해 제공되는 정보와 온라인으로 상호작용하게 할 수 있지만, 이들 활동에 대한 이득들은 보통 이들 활동을 추적하는 어려운 특성으로 인해 잃게 된다. 결과적으로, 이들 자료를 통합형 교실 아키텍처 내에 통합하기 위한 새로운 기술들이 요구된다.
교실 환경은 강사가 강사에 의해 용이하게 모니터링될 수 있는 이러한 애플리케이션들을 사용하여 학생들에게 활동들을 할당할 수 있게 하는 다수의 디바이스들 및 애플리케이션들을 강사들 및 학생들에게 제공할 수 있다. 강사는 소프트웨어 프레임워크를 구현하는 하나 이상의 제3자 애플리케이션들에 의해 제공되는 컨텍스트들에 의해 정의된 활동들을 통합하는, 학생들에게 할당할 유인물들을 생성한다. 제3자 애플리케이션들은 이러한 컨텍스트들과 연관된 활동들을 완료하는 학생들의 진행을 추적하고, 디바이스의 백그라운드 프로세스에 진행 추적 정보를 제공하도록 구성된다. 백그라운드 프로세스 및/또는 클라이언트 애플리케이션은 진행 추적 정보를 프로세싱하도록 설계된 하나 이상의 네트워크 서비스들과 인터페이싱할 수 있다. 프로세싱된 진행 추적 정보는 유인물을 할당받은 학생들 각각의 진행을 보여주는 강사에게 디스플레이할 보고서 데이터를 생성하기 위해 질의될 수 있다.
이들 및 다른 실시예들이 도 1 내지 도 17을 참조하여 아래에 논의된다. 그러나, 본 기술 분야의 통상의 기술자들은 이러한 도면들에 대하여 본 명세서에서 제공되는 상세한 설명이 단지 설명의 목적을 위한 것일 뿐이며, 제한적인 것으로 해석되지 않아야 한다는 것을 쉽게 인식할 것이다.
도 1은 일부 실시예들에 따른, 교실 환경 내에서 동작하도록 설계된 네트워크 환경(100)을 도시한다. 네트워크 환경(100)은 네트워크(150)를 통해 통신하도록 구성된 다수의 별개이고 구별되는 컴퓨팅 디바이스들을 포함한다. 네트워크 환경(100)은 서버 디바이스들(110) 및 클라이언트 디바이스들(120)을 포함한다. 도 1에 도시된 바와 같이, 클라이언트 디바이스들(120)은 랩톱 컴퓨터들(120-1, 120-5), 태블릿 컴퓨터들(120-2, 120-3, 120-4), 및 모바일 디바이스들(120-6)을 포함할 수 있지만, 이들로 제한되지 않는다. 네트워크 환경(100)은 데스크톱 컴퓨터, 웨어러블 디바이스(예컨대, 스마트 워치), 개인 휴대 정보 단말기 등과 같은 다른 유형의 클라이언트 디바이스들(120)을 포함할 수 있다는 것이 이해될 것이다.
이 문서 전체에 걸쳐 다음 용어들이 사용될 수 있다. 수업은 특정 과목 또는 활동을 배우기 위해 정기적으로 만나는 개인들의 그룹을 지칭한다. 수업은 한 명 이상의 강사들 및 수업에 등록된 다수의 학생들을 포함할 수 있다. 교실 환경은 수업과 연관된 사용자들의 그룹에 의해 이용되는 관련 디바이스들의 그룹을 지칭한다. 학교는 강사들의 그룹에 의해 가르쳐지는 다수의 수업들의 관리적 모음을 지칭한다. 학군은 하나 이상의 학교들을 관리하는 기관을 지칭한다.
일부 실시예들에서, 강사는 하나 이상의 디바이스들을 이용하여 수업 내에서 학생들에게 자료들을 배포한다. 도 1에 도시된 바와 같이, 강사는 클라이언트 디바이스(120-1)와 같은 랩톱 컴퓨터 또는 클라이언트 디바이스(120-2)와 같은 태블릿 컴퓨터를 이용하여 학생들을 위한 자료들을 생성할 수 있다. 일부 실시예들에서, 랩톱 컴퓨터 및/또는 태블릿 컴퓨터는 학생들을 위한 상호작용적 과제들을 생성하도록 구성된 애플리케이션들을 포함한다. 과제들은 제1 서버 디바이스(110-1)로부터 이용가능한 웹사이트들로의 하이퍼링크들 또는 제2 서버 디바이스(110-2) 상에 저장된 문서들과 같은, 네트워크(150)를 통해 이용가능한 자료들로의 링크들을 포함할 수 있다. 애플리케이션들은 또한 강사가 학생들에게 과제들을 용이하게 배포하게 할 수 있다. 학생들은 클라이언트 디바이스(120-3, 120-4)와 같은 태블릿 컴퓨터들, 클라이언트 디바이스(120-5)와 같은 랩톱 컴퓨터, 및/또는 클라이언트 디바이스(120-6)와 같은 모바일 디바이스를 이용하여 과제들에 액세스하고 각각의 과제에 포함된 자료들을 볼 수 있다.
일부 실시예들에서, 제3 서버 디바이스(110-3)는 다양한 클라이언트 디바이스들(120) 상에 포함된 애플리케이션들에 의해 이용되는 하나 이상의 서비스들을 호스팅한다. 예를 들어, 제3 서버 디바이스(110-3)는 과제를 정의하는 데이터 구조들 또는 파일들을 네트워크-기반 저장 리소스에 업로드하기 위한 서비스를 호스팅할 수 있다. 다른 예로서, 제3 서버 디바이스(110-3)는 어느 클라이언트 디바이스들(120)이 특정 교실 환경에 등록되는지를 추적하는 서비스를 호스팅할 수 있다. 또 다른 예로서, 제3 서버 디바이스(110-3)는 특정 과제와 대응하는 각각의 학생의 진행을 추적하는 서비스를 호스팅할 수 있다. 일부 실시예들에서, 애플리케이션(들)에 의해 이용되는 서비스들은 하나 초과의 서버 디바이스(110) 상에서 호스팅될 수 있다. 또한, 서비스들은 상이한 서비스 제공자들에 의해 호스팅될 수 있다. 예를 들어, 제1 서비스 제공자에 의해 유지되는 제1 서버 디바이스(110)는 네트워크-기반 저장 서비스를 호스팅하도록 구성될 수 있고, 제2 서비스 제공자에 의해 유지되는 제2 서버 디바이스(110-2)는 학교 관리 서비스를 호스팅하도록 구성될 수 있다.
교실 환경 내에서 다양한 클라이언트 디바이스들(120)에 의해 실행되는 애플리케이션들에 대한 소프트웨어 프레임워크의 설명이 아래에 기재된다. 또한, 본 명세서에 설명된 애플리케이션들에 의해 이용되고 하나 이상의 서버 디바이스(110) 상에서 호스팅되는 다양한 서비스들의 설명이 아래에 기재된다.
도 2는 일부 실시예들에 따른, 교실 환경에서의 클라이언트 디바이스들(120)에 대한 진행 추적을 가능하게 하도록 구현된 클라이언트-서버 아키텍처(200)를 도시한다. 클라이언트-서버 아키텍처(200)는 클라이언트 디바이스(120) 상에 구현되고 네트워크(150)를 통해 액세스가능한 서버 디바이스들(110) 상에 구현된 다수의 서비스들과 상호작용하도록 구성된 클라이언트 애플리케이션(205)을 포함한다. 클라이언트-서버 아키텍처(200)는 강사로 하여금, 클라이언트 디바이스(120) 상에 설치된 하나 이상의 제3자 애플리케이션들에 의해 제공되는 풍부한 상호작용적 자료들을 포함할 뿐만 아니라 강사가 수업 내의 과제들의 따라잡으려는 학생들의 노력을 모니터링할 수 있도록 끊김없는 진행 추적을 통합하는 과제들을 생성할 수 있게 한다.
일부 실시예들에서, 클라이언트 애플리케이션(205)은 클라이언트 디바이스(120)에 포함된 프로세서에 의해 실행되도록 구성된 이진 실행파일이다. 이진 실행파일은 타깃 운영 체제를 실행하도록 설계된 목표 하드웨어 플랫폼과 같은 특정 동작 환경 내에서 작동하도록 설계될 수 있다. 결과적으로, 클라이언트 애플리케이션(205)은 상이한 동작 환경들에 대해 컴파일된 소스 코드의 다수의 버전들을 사용하여 구현될 수 있다. 예를 들어, 클라이언트 애플리케이션(205)의 제1 버전은 랩톱 컴퓨터(120-1)를 위해 설계될 수 있고, 클라이언트 애플리케이션(205)의 제2 버전은 태블릿 컴퓨터(120-2)를 위해 설계될 수 있다.
일부 실시예에서, 클라이언트 애플리케이션(205)은 네트워크(150)를 통해 하나 이상의 서비스들과 접속하도록 설계된다. 서비스들은 유인물 서비스(220), 제출물 서비스(230), 학교 관리 서비스(240), 진행 파이프라인(250), 아이덴티티 서비스(260), 및 보고서 서비스(270)를 포함할 수 있지만, 이들로 제한되지 않는다. 클라이언트 애플리케이션(205)은 서비스에 의해 구현된 애플리케이션 프로그래밍 인터페이스(application programming interface, API)를 통해 서비스에 액세스하도록 구성될 수 있다. 예를 들어, 웹-기반 서비스는 클라이언트 애플리케이션(205)이 서비스와 연관된 리소스들에 액세스하고/하거나 그 리소스들에 대해 동작할 수 있게 하는 SOAP(simple object access protocol) 또는 REST(representational state transfer protocol)를 사용하여 API를 구현할 수 있다. API는 클라이언트 애플리케이션(205)이 서비스로 데이터를 송신하고/하거나 서비스로부터 데이터를 수신할 수 있게 할 수 있다. API 호출들은 또한 서비스로 하여금 다양한 동작들을 수행하고/하거나 추가 API 호출들을 사용하여 추가 서비스들을 호출하게 할 수 있다.
다른 실시예들에서, 클라이언트 애플리케이션(205)은 클라이언트 디바이스(120)의 브라우저 내에서 디스플레이되는 웹-기반 애플리케이션이다. 클라이언트 애플리케이션(205)은 웹사이트와 연관된 서버로부터 요청된 일련의 리소스들(예컨대, 하이퍼텍스트 마크업 언어(HTML) 문서, 이미지, 스크립트 등)을 포함할 수 있다. 브라우저는 리소스들을 수신하고, 리소스들을 해석하여 클라이언트 디바이스(120)의 디스플레이 상에 웹사이트의 표현을 디스플레이한다. 따라서, 클라이언트 애플리케이션(205)은 클라이언트 애플리케이션(205)이 상이한 운영 체제들을 실행하는 복수의 상이한 클라이언트 디바이스들(120) 상에 디스플레이될 수 있다는 점에서 플랫폼-독립적이다.
일부 실시예들에서, 클라이언트 애플리케이션(205)은 API 게이트웨이(210)를 통해 하나 이상의 서비스들과 인터페이싱한다. API 게이트웨이(210)는 서버 디바이스(110)에 의해 구현되고, 클라이언트 디바이스들(120)로부터 수신된 API 호출들을 클라이언트-서버 아키텍처(200) 내의 다양한 서비스들로 리다이렉팅한다. 다른 실시예들에서, API 게이트웨이(210)는 생략되거나 선택적으로 우회되고, 클라이언트 디바이스들(120)은 API 호출들을 서비스들에 직접 송신한다.
일부 실시예들에서, 클라이언트 애플리케이션(205)은 강사가 수업에 대한 유인물들을 생성할 수 있게 한다. 유인물은 수업 내의 학생들에게 게시되도록 의도된 과제에 관련된 정보를 포함하는 파일 또는 데이터 구조를 지칭한다. 유인물은 다음을 포함하는 다수의 필드들을 포함할 수 있다: 유인물 식별자, 과제의 제목, 과제를 완료하는 방법에 관한 학생들을 위한 텍스트-기반 지시들을 포함하는 과제의 본문, 과제에 대한 마감일, 및 과제와 연관된 첨부물들의 목록. 유인물들은 특정 클라이언트 디바이스(120) 상에서 로컬로 생성되고 저장될 수 있다. 첨부물들은 파일들(예컨대, 문서, 이미지, 비디오 등), 학생이 제출해야 하는 파일에 대한 플레이스홀더들, 및 학생이 과제의 일부로서 완료해야 하는 활동들을 포함할 수 있다. 활동들은 수업 키트 소프트웨어 프레임워크의 일부분을 구현하는 제3자 애플리케이션들을 사용하여 수행된다. 활동들의 예들은 디지털 책 또는 교과서의 챕터를 읽는 것, 퀴즈를 풀거나 한 세트의 문제들에 답하는 것, 상호작용적 게임을 재생하거나 디지털 실험을 수행하는 것과 같은 태스크를 수행하는 데 소비된 시간을 추적하는 것 등을 포함할 수 있지만, 이들로 제한되는 것은 아니다.
일부 실시예들에서, 클라이언트-서버 아키텍처(200)는 유인물 서비스(220)를 포함한다. 유인물 서비스(220)는 유인물들을 관리하도록 구성된다. 일부 실시예들에서, 유인물 서비스(220)는 하나의 클라이언트 디바이스(120) 상에서 생성된 유인물들을 다른 클라이언트 디바이스(120)와 동기화하여 강사가 다수의 디바이스들 상에서 작업할 수 있도록 구성된다. 일부 실시예들에서, 유인물 서비스(220)는 유인물들이 학생들의 목록에 게시될 수 있도록 구성된다. 유인물을 게시하는 것은 유인물 내의 정보를 별개의 클라이언트 디바이스(120) 상에서 학생들에 의해 보이도록 이용가능게 만드는 것 뿐만 아니라, 유인물들에 대한 첨부물들에 관련된 다양한 백엔드 동작들을 처리하는 것을 지칭한다.
일부 실시예들에서, 클라이언트-서버 아키텍처(200)는 또한 제출물 서비스(230)를 포함할 수 있다. 제출물은 파일 또는 데이터 구조에 대한 플레이스홀더를 지칭하는데, 이는 학생이 과제를 완료하기 위해 제출할 파일 또는 데이터 구조를 생성하도록 지시받음을 나타낸다. 학생은 파일 또는 데이터 구조를 생성하고 파일 또는 데이터 구조를 제출물 서비스(230)에 제출하여 과제를 완료하기 위한 요건을 충족시킬 수 있다.
일부 실시예들에서, 클라이언트-서버 아키텍처(200)는 또한 수업들의 구조에 관련된 학군에 대한 관리 정보를 관리하도록 구성된 학교 관리 서비스(240)를 포함할 수 있다. 예를 들어, 학교 관리 서비스(240)는 어떤 강사가 복수의 수업들 각각에 할당되는지를 나타내는 레코드들을 유지할 수 있다. 레코드들은 또한 어떤 학생들이 복수의 수업들 각각에 등록되는지를 나타낼 수 있다. 각각의 강사 또는 학생에는 각각 강사 식별자 또는 학생 식별자가 할당될 수 있다. 학군에 의해 생성된 각각의 수업은 수업 식별자와 연관될 수 있다. 이어서, 수업에 등록된 학생들에 대한 학생 식별자들의 명단을 열거하는 별개의 레코드가 각각의 수업 식별자에 대해 생성될 수 있다. 일부 실시예들에서, 관계형 데이터베이스는 강사 식별자들 및/또는 학생 식별자들을 하나 이상의 테이블들 내의 수업 식별자들과 연관시킨다. 관계형 데이터베이스는 다양한 수업들의 구조를 식별하는 정보를 반환하기 위해 구조화 질의 언어(Structured Query Language, SQL) 또는 일부 다른 유형의 질의 언어를 사용하여 질의될 수 있다.
일부 실시예들에서, 학교 관리 서비스(240)는 학군에 대한 관리자가 수업들을 생성하고 수업에 등록된 학생들을 특정할 수 있게 하는 관리 인터페이스를 포함한다. 관리 인터페이스는, 예컨대, 각각의 수업에 대한 명단들을 변경하기 위해 관리자가 크리덴셜들을 제공할 것을 요구하는 웹-기반 인터페이스일 수 있다. 다른 실시예들에서, 학교 관리 서비스(240)는 학군이 클라이언트-서버 아키텍처(200)와 별도로 유지하는 별개이고 구별되는 학교 정보 시스템으로부터 데이터를 다운로드하기 위한 인터페이스를 포함한다. 수업들 및 명단들은 학교 정보 시스템으로부터 자동으로 다운로드될 수 있다.
일부 실시예들에서, 클라이언트-서버 아키텍처(200)는 또한 진행 파이프라인(250)을 포함할 수 있다. 진행 파이프라인(250)은 학생들이 강사들에 의해 게시된 유인물들에 설명된 과제들을 완료함에 따라 진행 추적에 관련된 정보를 관리하기 위한 보안 아키텍처를 제공한다. 학생들의 클라이언트 디바이스들(120)은 클라이언트 디바이스들(120) 상에 설치된 하나 이상의 제3자 애플리케이션들에 관련된 활동들을 모니터링하도록 구성된 백그라운드 프로세스(즉, 데몬)를 포함할 수 있다. 데몬은 하나 이상의 게시된 유인물들에 특정된 과제들을 완료함에 있어서 학생들에 의해 이루어진 진행을 추적하고, 각각의 학생의 진행에 관련된 정보를 진행 파이프라인(250)으로 송신한다. 진행 파이프라인(250)은 진행 정보를 집계하고 저장하여, 강사가 수업에서 한 명 이상의 학생들에 대한 포괄적인 보고서들을 볼 수 있게 한다.
일부 실시예들에서, 진행 파이프라인(250)은 상이한 서버 디바이스들(110) 상에서 실행되는 다수의 별개의 서비스들로서 구현되고, 파이프라인형 방식으로 데이터 흐름에서 진행 정보를 프로세싱하도록 구조화된다. 다른 실시예들에서, 진행 파이프라인(250)은 단일 서버 디바이스(110) 상에서 실행되는 다수의 서비스들로 구현될 수 있다.
일부 실시예들에서, 클라이언트-서버 아키텍처(200)는 또한 아이덴티티 서비스(260)를 포함할 수 있다. 아이덴티티 서비스(260)는 특정 클라이언트 디바이스들(120)에 관련된 데이터가 교실 환경 내의 특정 사람들(예컨대, 강사들 또는 학생들)과 연관될 수 있게 한다. 일부 실시예들에서, 아이덴티티 서비스(260)는 다양한 사용자 식별자들 또는 디바이스 식별자들을, 클라이언트-서버 아키텍처(200)의 서버 측으로 범위가 한정된 디렉토리 서비스 식별자와 연관시킨다. 아이덴티티 서비스(260)의 사용은 특정 범위(예를 들어, 교실 환경) 밖에서 이용되는 임의의 식별자들로부터 데몬에 의해 수집된 개인 식별 정보를 연관해제함으로써 데이터의 무결성을 보호한다. 따라서, 사용자가 시험들에서 점수를 매기는 방법과 같은 데이터는 학생이 동일한 서비스 제공자에 의해 제공된 음악 공유 서비스 상에서 어떤 종류의 음악을 듣고 싶어하는지와 같은 상기 범위 밖의 다른 정보에 결부될 수 없다. 그러한 개인 식별 정보의 무결성은, 대부분의 학생들이 미성년자이고 소정 연령의 취약한 사용자들의 데이터를 보호할 때 고려되는 특별한 고려사항들이 있을 수 있다는 점을 고려하면, 특히 중요할 수 있다.
일부 실시예들에서, 디렉토리 서비스 식별자는 특정 서비스 제공자에 의해 하나 이상의 디바이스의 사용자와 연관된 정적 식별자이다. 디렉토리 서비스 식별자는 사용자를 특정 사용자 계정과 연관시키기 위해 클라이언트 디바이스에 의해 사용되는 사용자 식별자와 연관될 수 있다. 디렉토리 서비스 식별자는 특정 사용자 계좌의 사용자와 연관되고 클라이언트 디바이스들에 노출되는 외부 식별자와 연관될 수 있다. 디렉토리 서비스 식별자는 특정 사용자에 대한 내부 식별자와 연관될 수 있다. 내부 식별자는 디렉토리 서비스 식별자로부터 연관해제될 수 있고, 이어서 새로운 내부 식별자는 디렉토리 서비스 식별자와 연관될 수 있다. 일부 실시예들에서, 내부 식별자를 새로운 내부 식별자로 대체하는 것은, 하나 이상의 서버 디바이스들(110)로부터 상기 데이터를 삭제할 필요 없이, 소정 저장된 데이터와 특정 사용자 또는 사용자 계정 사이의 연관성을 끊는 데 이용될 수 있다.
일부 실시예들에서, 클라이언트-서버 아키텍처(200)는 또한, 다수의 학생들에 의해 완료된 활동들의 진행에 관련된 집계된 데이터가 컴파일되고 클라이언트 디바이스(120)에 제공되어 강사에 의해 검토될 수 있게 하는 보고서 서비스(270)를 포함할 수 있다. 보고서 서비스(270)는 또한 진행 정보에 관련된 통계 데이터를 생성하기 위해 복수의 학생들로부터 수신된 진행 정보를 분석할 수 있다. 예를 들어, 보고서 서비스(270)는 얼마나 많은 학생들이 특정 활동을 완료했는지에 관련된 통계치를 생성할 수 있다. 보고서 서비스(270)는 또한 활동들에 관련된 결과들(예컨대, 퀴즈 활동으로부터의 올바르게 답변된 질문들의 수, 퀴즈를 완료하기 위한 시간 등)을 추적할 수 있다. 다른 실시예에서, 클라이언트 애플리케이션(205)은 보고서 서비스(270)로부터 개별 학생들에 관한 보고서 데이터를 수신하고, 클라이언트 애플리케이션(205)은 보고서 데이터를 집계하고/하거나 수업에 대한 통계치를 계산한다.
클라이언트 애플리케이션(205)은 클라이언트-서버 아키텍처(200) 내의 설명된 서비스들 중 일부 또는 전부와 상호작용하도록 구성될 수 있다는 것이 이해될 것이다. 예를 들어, 클라이언트 애플리케이션(205)은 유인물 서비스(220), 제출물 서비스(230), 진행 파이프라인(250), 및 보고서 서비스(270)에 대한 호출들을 생성하도록 구성될 수 있다. 일부 실시예들에서, 클라이언트 애플리케이션(205)은 학교 관리 서비스(240) 및/또는 아이덴티티 서비스(260)와 같은 서비스들의 서브세트와 상호작용하도록 구성되지 않는다. 대신에, 다른 서비스들은 클라이언트 애플리케이션(205)으로부터 호출을 수신하는 것에 응답하여 이들 서비스에 대한 호출들을 생성할 수 있다.
도 3은 일부 실시예들에 따른, 클라이언트 애플리케이션(205)의 GUI(300)를 도시한다. GUI(300)는 클라이언트 디바이스(120)의 디스플레이(302) 상에서 강사에게 제시될 수 있다. 도 3에 도시된 바와 같이, GUI(300)는 클라이언트 디바이스(120-2)와 같은 태블릿 컴퓨터 상에 디스플레이된다. GUI(300)는 그래픽, 텍스트, 아이콘, 형상, 입력 필드, 출력 필드, 디스플레이 영역 등을 포함하는 다수의 요소들을 포함할 수 있다.
일부 실시예들에서, GUI(300)는 제1 디스플레이 영역(310), 제2 디스플레이 영역(320), 및 제3 디스플레이 영역(330)을 포함한다. 제1 디스플레이 영역(310)은 강사에 의해 이전에 생성된 유인물의 표현들을 디스플레이하는 데 이용된다. 제2 디스플레이 영역(320)은 특정 강사와 연관된 수업들의 표현들을 디스플레이하는 데 이용된다. 도 3에 도시된 바와 같이, 제1 디스플레이 영역(310)은 디스플레이(302)에 포함된 픽셀들의 제1 부분을 점유하고, 제2 디스플레이 영역(320)은 디스플레이(302)에 포함된 픽셀들의 제2 부분을 점유한다.
제1 디스플레이 영역(310)은 요소들(312)이 사용자 계정과 연관된 별개이고 구별되는 유인물들을 표현함을 나타내는 헤더를 포함한다. 유인물들은 강사, 관리자, 또는 다른 역할들과 연관된 계정들에 의해 생성될 수 있다. 일부 실시예들에서, 각각의 요소(312)는 유인물의 제목, 유인물과 연관된 마감일에 대한 디스크립터, 및 얼마나 많은 학생들이 유인물을 완료하였는지의 표시를 포함하는 박스에 의해 정의된다. 예를 들어, 제1 요소(312-1)는 3월 12일의 마감일을 갖고 모든 학생들에 의해 완료된 "식물상과 동물상(Flora & Fauna)" 과제에 대한 제1 유인물과 연관되고; 제2 요소(312-2)는 3월 15일의 마감일을 갖고 유인물을 할당받은 22명의 학생들 중 7명에 의해서만 완료된 "시험 준비" 과제에 대한 제2 유인물과 연관된다. 다른 실시예들에서, 요소들(312)은 상이한 형태들을 취할 수 있다는 것이 이해될 것이다. 예를 들어, 요소들(312)은 마감일 및/또는 완료 표시자를 생략할 수 있다. 대안적으로, 요소들(312)은 마감일 및/또는 완료 표시자에 더하여 또는 그 대신에 정보를 포함할 수 있다. 또한, 요소들(312)은 유인물에 할당된 상이한 활동들을 표현하는 이미지 또는 아이콘들과 같은 그래픽들을 포함할 수 있다. 일부 경우들에서, 그래픽들은, 예컨대, 요소(312)의 배경으로서 유인물에 첨부된 이미지들의 슬라이드 쇼를 보여주거나 또는 비디오를 재생함으로써, 애니메이션화될 수 있다.
제2 디스플레이 영역(320)은 요소들(322)이 특정 강사에 대한 사용자 계정과 연관된 별개이고 구별되는 수업들을 표현함을 나타내는 헤더를 포함한다. 일부 실시예들에서, 각각의 요소(322)는 수업의 제목 및 수업에 할당된 유인물들의 수에 대한 디스크립터를 포함하는 박스에 의해 정의된다. 예를 들어, 제1 요소(322-1)는 2개의 유인물들이 할당된 "과학 A" 수업과 연관되고; 제2 요소(322-2)는 3개의 유인물들이 할당된 "수학 A" 수업과 연관되고; 제3 요소(322-3)는 0개의 유인물이 할당된 "수학 B" 수업과 연관된다. 다른 실시예들에서, 요소들(322)은 상이한 형태들을 취할 수 있다는 것이 이해될 것이다. 예를 들어, 요소들(322)은 수업에 할당된 유인물들의 수에 대한 표시자를 생략할 수 있다. 대안적으로, 요소들(322)은 수업의 제목 및 수업에 할당된 유인물들의 수에 대한 표시자에 더하여 또는 그 대신에 정보를 포함할 수 있다. 예를 들어, 요소들(322)은 수업에 등록된 학생들의 수를 포함할 수 있다. 또한, 요소들(322)은 수업에 관련된 특정 과목 또는 학과를 나타내도록 코딩된 이미지 또는 배경색과 같은 그래픽들을 포함할 수 있다.
일부 실시예들에서, 강사는 클라이언트 디바이스(120)의 입력 인터페이스를 사용하여 특정 수업(또는 다수의 수업들)을 선택할 수 있다. 예를 들어, 강사는 터치 인터페이스를 사용하여, 강사와 연관된 이용가능한 수업들 중 하나와 연관된 요소(322)를 선택할 수 있다. 특정 요소(322)의 선택 시, 선택된 요소(322)는 활성화되고, 제1 디스플레이 영역(310) 내의 요소들(312)은 제2 디스플레이 영역(320) 내의 선택된 요소(322)에 의해 표현되는 수업과 연관된 유인물들을 반영하도록 업데이트될 수 있다. 선택된 요소(322)(예컨대, 현재 활성화된 요소)는 요소(322)가 활성임을 나타내기 위해 하이라이트될 수 있다. 하이라이팅은 요소의 크기를 증가시키고, 요소(322)와 연관된 색상을 변경하거나 요소(322)의 경계의 색상 또는 굵기(weight)를 변경하고, 선택된 요소(322) 주위에 박스를 디스플레이하는 것 등에 의해 구현될 수 있다. 도 3에 도시된 바와 같이, 제1 요소(322-1)는 제2 요소(322-2) 및 제3 요소(322-3)보다 더 큰 것으로서 활성화되고 도시된다.
일부 실시예들에서, 제1 디스플레이 영역(310) 및/또는 제2 디스플레이 영역(320) 내에는, 디스플레이(302)의 범위들 내에서 수업들 모두 및/또는 특정 수업에 대해 할당된 유인물들 모두를 제시하기에는, 불충분한 공간이 있을 수 있다는 것이 이해될 것이다. 그러한 경우들에서, 클라이언트 디바이스(205)의 사용자는 추가 요소들을 디스플레이하기 위해 터치 제스처들과 같은 입력 커맨드들을 사용할 수 있다. 예를 들어, 일부 요소들이 디스플레이되지 않음을 나타내는 아이콘이 디스플레이될 수 있다. 추가 요소들은 사용자가 아이콘을 선택하는 것에 응답하여 제1 디스플레이 영역(310) 또는 제2 디스플레이 영역(320)에 디스플레이될 것이다. 다른 예에서, 사용자가 수평으로 스크롤하는 스와이프 터치 제스처를 사용하여 추가 요소들을 디스플레이하는 동안 다른 요소들은 특정 디스플레이 영역 내에서 이동되거나 그로부터 제거될 수 있다.
제3 디스플레이 영역(330)이 디스플레이(302)의 상부 에지에 근접하게 위치된다. 제3 디스플레이 영역(330)은 클라이언트 애플리케이션(205)의 사용자가 사용자 계정에 로그인하거나, 특정 수업에 대한 새로운 유인물들을 생성하거나, 또는 클라이언트 디바이스(120) 상에 로컬로 그리고/또는 서버 디바이스(110) 상에 원격으로 저장된 이전에 생성된 유인물들을 편집할 수 있게 하는 요소들을 포함한다. 일부 실시예들에서, 제3 디스플레이 영역(330)은 숨겨지고, 수직 스와이프 터치 제스처를 사용하여 제3 디스플레이 영역(330)이 숨김해제되게 하는 것과 같이 사용자 입력에 응답하여 디스플레이될 수 있다.
제1 아이콘(332)은 제3 디스플레이 영역(330)의 좌측에 근접하게 디스플레이된다. 제1 아이콘(332)은, 사용자에 의해 선택될 때, 클라이언트 애플리케이션(205)으로 하여금 사용자에게 강사와 연관된 사용자 계정에 로그인하기 위해 크리덴셜들을 입력할 것을 프롬프트하게 할 수 있다. 일부 실시예들에서, 제1 디스플레이 영역(310) 및 제2 디스플레이 영역(320)은 사용자가 제1 아이콘(332)을 사용하여 특정 사용자 계정에 로그인할 때까지 숨겨진다. 일부 실시예들에서, 클라이언트 애플리케이션(205)의 시작 시에, 사용자에게 사용자 계정에 로그인하기 위해 크리덴셜들을 입력할 것을 프롬프트하는 별개의 인터페이스가 사용자에게 디스플레이된다. GUI(300)는, 사용자가 특정 사용자 계정에 성공적으로 로그인했을 때에만, 디스플레이(302) 상에 디스플레이된다. 이어서, 제1 아이콘(332)은 사용자 계정에서 로그아웃하고/하거나 상이한 사용자 계정에 로그인하는 데 사용될 수 있다.
제2 아이콘(334)은 제3 디스플레이 영역(330)의 우측에 근접하게 디스플레이된다. 제2 아이콘(334)은, 사용자에 의해 선택될 때, 클라이언트 애플리케이션(205)으로 하여금 새로운 유인물에 관련된 정보를 저장하기 위해 클라이언트 디바이스(120)의 파일 시스템에서 파일 또는 데이터 구조를 생성하게 할 수 있다. 일부 실시예들에서, 새로운 파일 또는 데이터 구조는 제2 디스플레이 영역(320)에서 선택된 활성 수업과 자동으로 연관된다. 이어서, 강사는 상이한 GUI를 사용하여 파일 또는 데이터 구조에 정보를 추가할 수 있으며, 이는 도 6a 내지 도 6e를 참조하여 아래에서 더 상세히 설명된다.
제3 아이콘(336)은 제3 디스플레이 영역(330)의 우측에 근접하게 디스플레이된다. 제3 아이콘(336)은, 사용자에 의해 선택될 때, 클라이언트 애플리케이션(205)으로 하여금 이전에 생성된 유인물에 대한 파일 또는 데이터 구조에 저장된 정보를 검색하게 할 수 있다. 일부 실시예들에서, 제1 디스플레이 영역(310) 내의 요소들(312) 중 하나는 선택 기준들에 기초하여 자동으로, 또는 사용자에 의해 제공된 입력에 응답하여 수동으로 활성화된다. 예를 들어, 요소(312)는, 수업을 표현하는 요소(322)가 활성화될 때 특정 수업에 대해 저장된 모든 유인물들의 유인물에 대한 마감일과 현재 날짜 사이의 가장 작은 차이에 기초하여 자동으로 활성화될 수 있다. 대안적으로, 요소(312)는 특정 요소(312)에 대응하는 디스플레이(302)의 영역에서 터치 제스처 입력(예컨대, 탭 입력)에 응답하여 활성화되도록 수동으로 선택될 수 있다. 도 3에 명시적으로 도시되지는 않았지만, 제1 디스플레이 영역(310) 내의 선택된 요소(312)(예컨대, 현재 활성화된 요소)는 선택된 요소(312)가 활성임을 나타내기 위해 하이라이트될 수 있다. 제3 아이콘(336)을 선택하는 것에 응답하여, 상이한 GUI - 도 6a 내지 도 6e를 참조하여 아래에서 더 상세히 설명됨 - 는 클라이언트 디바이스(120)에 의해 디스플레이되고, 활성 요소(312)와 연관된 파일 또는 데이터 구조로부터의 데이터로 채워질 수 있다.
일부 실시예들에서, 제1 디스플레이 영역(310)은 준비되고 있는 유인물들뿐만 아니라 학생들의 목록에 게시된 유인물들에 대한 표현들을 포함한다. 일부 경우들에서, 요소들(312)은 요소(312)에 의해 표현되는 유인물이 게시되었는지 또는 아직 게시되지 않았는지(즉, 강사에 의해 여전히 준비되고 있는지)의 표시를 포함할 수 있다.
전술되고 도 3에 도시된 GUI(300)는 클라이언트 애플리케이션(205)을 위해 설계된 GUI의 예시적인 실시예일 뿐이라는 것이 이해될 것이다. 다른 실시예들에서, 클라이언트 애플리케이션(205)에 대한 GUI는 다른 형태들을 취할 수 있다. GUI의 외관 및 느낌은 또한 특정 운영 체제 또는 목표 환경과 연관된 표준 디스플레이 요소들에 대응할 수 있다. 또한, 또 다른 실시예들에서, 클라이언트 애플리케이션(205)은 클라이언트 디바이스(120)의 브라우저 내에 디스플레이되는 웹-기반 애플리케이션이다. 그러한 실시예들에서, GUI(300)는 하나 이상의 하이퍼텍스트 마크업 언어(HTML) 문서들에 포함된 복수의 HTML 요소들을 포함할 수 있다. 이러한 요소들의 표현은 클라이언트 디바이스(120)에서의 브라우저 애플리케이션의 구현, 및 일부 경우들에서, 브라우저 애플리케이션과 연관된 사용자 선호도들에 의존할 수 있다.
도 4는 일부 실시예들에 따른, 유인물 서비스(220)와 클라이언트 애플리케이션(205) 및/또는 데몬(440) 사이의 클라이언트-서버 관계를 도시한다. 유인물 서비스(220)는 강사가 유인물들을 생성하고 강사와 연관된 수업에 등록된 학생들의 목록에 유인물들을 할당하기 위한 수단을 제공한다. 전술된 바와 같이, 클라이언트 애플리케이션(205)은 사용자에게 사용자 계정과 연관된 크리덴셜들을 제공할 것을 프롬프트하도록 구성된다. 사용자 계정이 강사와 연관되는 경우, 클라이언트 애플리케이션(205)은 강사가 클라이언트 디바이스(120)의 메모리(420) 내에서 유인물들에 대한 파일들 또는 데이터 구조들을 생성할 수 있게 한다. 일부 실시예들에서, 이러한 파일들 또는 데이터 구조들은 네트워크-기반 저장 서비스에 동기화될 수 있는데, 이는 강사가 다수의 클라이언트 디바이스들(120)로부터의 유인물에 관련된 정보에 액세스할 수 있게 한다.
도 4에 도시된 바와 같이. 클라이언트 디바이스(120)는 프로세서(410), 디스플레이(302), 및 메모리 (420)를 포함한다. 메모리(420)는 운영 체제(430), 클라이언트 애플리케이션(205), 데몬(440), 및 로컬 데이터베이스(445)를 포함한다. 데몬(440)은 소정 태스크들을 수행하기 위해 클라이언트 애플리케이션(205)이 데몬(440)과 비동기적으로 통신할 수 있게 하는 API를 구현하는 백그라운드 프로세스이다. 이들 태스크 중 하나는 로컬 데이터베이스(445)에 파일을 생성하도록 동작한다.
일부 실시예들에서, 데몬(440)은 로컬 데이터베이스(450)를 유지한다. 일부 실시예들에서, 강사는 클라이언트 애플리케이션(205)을 사용하여 유인물을 위한 새로운 파일 또는 데이터 구조를 생성할 수 있다. 클라이언트 애플리케이션(205)은 데몬(440)에 의해 유지되는 로컬 데이터베이스(450)에서 유인물에 대한 파일 또는 데이터 구조를 생성하도록 데몬(440)에 요청한다. 강사는 GUI(600)를 사용하여 유인물에 대한 파일 또는 데이터 구조를 채울 수 있으며, 이는 도 6a 내지 도 6e를 참조하여 아래에서 더 상세히 논의된다.
일부 실시예들에서, 데몬(440)은 로컬 데이터베이스(450) 내의 파일들 또는 데이터 구조들을 원격 데이터베이스(460)에 동기화하도록 구성된다. 원격 데이터베이스(460)는 다수의 서버 디바이스들(110) 상에서 구현되는 클라우드-기반 데이터베이스 서비스와 같은 분산 데이터베이스일 수 있다. 데몬(440)은, 로컬 데이터베이스(450) 내의 파일들 또는 데이터 구조들을 파일들 및 데이터 구조들의 원격 버전들과 동기화하여, 파일들 또는 데이터 구조들이 다수의 클라이언트 디바이스들(120)을 사용하여 액세스되고/되거나 수정될 수 있도록 하기 위해, 원격 데이터베이스(460)와 인터페이싱한다. 동기화 메커니즘은 도 5를 참조하여 아래에서 보다 상세히 설명된다.
일단 유인물이 원격 데이터베이스(460)에 동기화되면, 이어서 강사는 클라이언트 애플리케이션(205)의 상이한 버전을 사용하여 상이한 클라이언트 디바이스(120)로 전환하고, 새로운 클라이언트 디바이스(120)를 사용하여 원격 서버(110) 상에 저장된 유인물의 버전에 액세스할 수 있다. 새로운 클라이언트 디바이스(120) 상에 저장된 리소스의 로컬 사본에 대한 임의의 변화들은 원격 데이터베이스(460)에 동기화되어, 원격 데이터베이스 상의 유인물의 버전을 업데이트할 것이다. 이어서, 이러한 변화들은 이전의 클라이언트 디바이스(120) 상의 클라이언트 애플리케이션(205)으로 푸시되어, 초기 클라이언트 디바이스(120) 상의 로컬 데이터베이스(450) 내의 로컬 리소스의 사본을 업데이트한다.
예를 들어, 강사는 랩톱 컴퓨터(120-1) 상에서 클라이언트 애플리케이션(205)을 열고 랩톱 컴퓨터(120-1)의 메모리에 저장된 유인물의 로컬 버전을 생성할 수 있다. 랩톱 컴퓨터(120-1) 상의 데몬(440)은 유인물의 로컬 버전의 사본을 원격 데이터베이스(460)로 송신하여, 유인물을 원격 데이터베이스(460)에 저장된 유인물의 버전과 동기화한다. 이어서, 강사는 태블릿 컴퓨터(120-2) 상에서 별개의 클라이언트 애플리케이션(205)을 열고 강사의 사용자 계정에 대한 크리덴셜들을 제공한다. 태블릿 컴퓨터(120-2) 상에서 클라이언트 애플리케이션(205)을 여는 것은, 데몬(440)으로 하여금 원격 데이터베이스(460) 상에 저장된 유인물의 원격 버전을 태블릿 컴퓨터(120-2)의 메모리로 다운로드하게 하며, 여기서 태블릿 컴퓨터(120-2) 상의 클라이언트 애플리케이션(205)은 유인물의 로컬 사본에 액세스하고 태블릿 컴퓨터(120-2)의 메모리에서 유인물의 로컬 사본을 수정할 수 있다. 유인물의 로컬 사본에 대한 임의의 수정은 원격 데이터베이스(460) 상에 저장된 유인물의 버전이 최신이 되도록 원격 데이터베이스(460)로 다시 동기화될 수 있다. 다음번에 강사가 랩톱 컴퓨터(120-1) 상에서 클라이언트 애플리케이션(205)을 열 때, 클라이언트 애플리케이션(205)은 데몬(440)으로 하여금 원격 데이터베이스(460)로부터 유인물의 현재 버전을 요청하게 할 것이며, 이는 원격 데이터베이스(460) 상에 저장된 유인물의 버전을 랩톱 컴퓨터(120-1) 내의 데몬(440)으로 송신하여 유인물의 로컬 버전으로서 랩톱 컴퓨터(120-1)의 메모리에 저장한다.
일부 실시예들에서, 유인물 서비스(220)는 서버 디바이스(110)의 프로세서에 의해 실행되도록 구성되는, 서버 디바이스(110)의 메모리에 저장된 명령어들의 세트로서 구현된다. 유인물 서비스(220)는 강사들 및 학생들과 연관된 클라이언트 디바이스들(120) 사이의 유인물들의 배포를 관리한다. 일부 실시예들에서, 유인물 서비스(220)는 원격 데이터베이스(460)를 사용하여 유인물들의 배포를 구현한다. 유인물 서비스(220)는 원격 데이터베이스(460)에 구역들(465)을 생성한다. 각각의 구역(465)은 특정 수업으로 범위가 한정된다. 대안적으로, 각각의 구역(465)은 학생들의 그룹으로 범위가 한정된다. 강사와 연관된 각각의 수업은 상이한 그룹의 학생들과 연관될 수 있다.
강사는 클라이언트 디바이스의 로컬 데이터베이스(450)에 유인물들을 생성할 수 있다. 유인물들은 원격 데이터베이스(460)에서 강사에 대한 개인 구역(465-1)에 동기화된다. 특정 유인물이 준비되고 학생들의 그룹에 할당될 준비가 되면, 강사는 클라이언트 애플리케이션(205)을 이용하여 유인물을 게시하여 학생들의 그룹에 유인물을 할당할 수 있다. 클라이언트 애플리케이션(205)은 유인물을 게시하도록 유인물 서비스(220)에 요청한다. 이어서, 유인물 서비스(220)는 유인물의 사본이, 유인물에 특정된 학생들의 그룹으로 범위가 한정된 원격 데이터베이스(460) 내의 새로운 구역(465-2)에 복사되게 한다. 새로운 구역(465-2)의 범위 내의 학생들 각각은 새로운 구역(465-2)에 가입되어, 학생들의 그룹 내의 학생들 각각에 의해 제어되는 클라이언트 디바이스(120) 내의 데몬(440)이 게시된 유인물의 사본을 학생에 대한 클라이언트 디바이스(120)의 로컬 메모리에 동기화하도록 한다.
유인물 서비스(220)는 또한 원격 데이터베이스(460)에 저장된 유인물에 대한 리소스를 식별하는 데 이용될 수 있는 유인물 식별자들을 생성한다는 것이 이해될 것이다. 일부 실시예들에서, 유인물 식별자는 유인물이 게시될 때 생성된다. 다른 실시예들에서, 유인물 식별자는 유인물이 생성될 때 생성된다. 이어서, 유인물에 대한 리소스는 유인물이 게시될 때 새로운 구역(465-2)으로 복사되고 강사에 대한 개인 구역(465-1)으로부터 삭제된다.
도 5는 일부 실시예들에 따른, 데몬(440)에 의해 구현되는 동기화 메커니즘을 도시한다. 도 5에 도시된 바와 같이, 데몬(440)은 네트워크(150)를 통해, 원격 데이터베이스(460)에 대한 프론트-엔드를 제공하는 데이터베이스 서비스(510)와 인터페이싱하도록 구성된다. 데이터베이스 서비스(510)는 서버 디바이스(110) 상에서 구현될 수 있다. 일부 실시예에서, 원격 데이터베이스(460)는 특정 조직 또는 학군의 범위로 제한된다. 따라서, 원격 데이터베이스(460) 내에 저장된 모든 정보는 특정 학군에 대한 것이다. 그러한 실시예들에서, 데이터베이스 서비스(510)는 상이한 조직들 또는 학군들에 대한 다수의 원격 데이터베이스들(460)을 관리하도록 구성된다. 다양한 실시예들에서, 원격 데이터베이스(460)는 서비스 제공자에 의해 관리되는 클라우드-기반 분산 데이터베이스 서비스이다.
일부 실시예들에서, 데이터베이스 서비스(510)는 원격 데이터베이스(460) 내에 구현되는 복수의 상이한 구역들(465)에 파일들을 저장하도록 구성된다. 학군 내의 각각의 강사 및/또는 학생은 원격 데이터베이스(460) 내의 개인 구역으로서 상이한 구역(465)을 할당받을 수 있다. 개인 구역들(465)은 특정 사용자 계정과 연관된 파일들 또는 데이터 구조들을 저장할 수 있다. 또한, 학군에 의해 생성된 각각의 수업은 수업과 연관된 모든 학생들 및 강사들과 리소스들을 공유하기 위해 수업 구역(465)을 할당받을 수 있다. 대안적인 실시예들에서, 구역들(465)은 수업의 서브세트이거나 2개 이상의 수업들에 등록될 수 있는 학생들 및/또는 강사들의 그룹들에 대해 생성될 수 있다. 수업 구역들(465)은 특정 수업과 연관된 학생들 및/또는 다른 강사들에게 유인물을 게시하는 데 이용될 수 있다. 구역들(465)은 조직, 수업, 또는 개인(예컨대, 강사 또는 학생)으로 범위가 한정될 수 있다. 구역들(465)은 또한 상이한 데이터에 대해 이용될 수 있다.
일부 실시예들에서, 데이터베이스 서비스(510)는 각각의 구역(465)의 범위 내의 사용자들(예컨대, 강사들 및/또는 학생들)의 목록을 나타내는 각각의 구역(465)에 대한 가입들을 유지한다. 데이터베이스 서비스(510)는 구역(465) 내의 리소스가 업데이트될 때마다 구역(465)에 가입된 사용자들에 대한 클라이언트 디바이스들(120) 각각에 통지들을 푸시할 수 있다. 특정 클라이언트 디바이스(120) 상의 데몬(440)은 통지를 수신하고, 업데이트된 리소스들을 구역(465)으로부터 다운로드하여 로컬 데이터베이스(450) 내의 리소스(522)의 로컬 사본들을 업데이트할 것이다.
클라이언트-서버 아키텍처(200) 내의 하나 이상의 서비스들에 의해 요구되는 일부 기능을 구현하기 위하여 동기화 메커니즘을 이용하기 위해 상이한 유형의 구역들이 생성될 수 있다는 것이 이해될 것이다. 예를 들어, 구역들은 유인물들, 제출물들, 제3자 애플리케이션들과 연관된 북마크된 컨텍스트들, 수업에 대한 명단 정보, 진행 추적 정보 등을 저장하도록 생성될 수 있다. 또한, 전술된 구역들 각각은 단일 사용자(즉, 개인 구역으로서) 또는 다수의 사용자들로 범위가 한정될 수 있다. 예를 들어, 유인물 구역(465)은 유인물에 관련된 데이터(예컨대, 첨부물들, 학생들에 의해 업로드된 제출물들에 대한 리소스들 등)를 저장하도록 생성되고, 유인물에서 식별된 학생들의 그룹으로 범위가 한정될 수 있다. 진행 구역(465)은 다수의 학생들에 대한 진행 정보를 저장하도록 생성된다. 진행 구역(465)은 수업, 또는 수업에 대해 게시된 특정 유인물로 범위가 한정될 수 있다. 명단 영역(465)은 조직에 대한 수업 구조에 관련된 데이터를 저장하도록 생성된다. 명단 구역(465)은 조직으로 범위가 한정될 수 있다.
도 6a 내지 도 6e는 일부 실시예들에 따른, 클라이언트 애플리케이션(205)의 GUI(600)를 도시한다. GUI(600)는 강사가 수업에 할당하기 위해 준비하고 있는 유인물에 저장된 정보를 편집하는 데 사용될 수 있다. GUI(600)는 클라이언트 디바이스(120)의 디스플레이(302) 상에서 제시될 수 있다. 도 6a에 도시된 바와 같이, GUI(600)는 클라이언트 디바이스(120-2)와 같은 태블릿 컴퓨터 상에 디스플레이된다. GUI(600)는 그래픽, 텍스트, 아이콘, 형상, 입력 필드, 디스플레이 영역 등을 포함하는 다수의 요소들을 포함할 수 있다. 일부 실시예들에서, GUI(600)는 강사가 GUI(300) 내의 제2 아이콘(334) 또는 제3 아이콘(336)을 선택하는 것에 응답하여 디스플레이된다.
GUI(600)는 제1 디스플레이 영역(610), 제2 디스플레이 영역(620), 및 제3 디스플레이 영역(630)을 포함한다. 제1 디스플레이 영역(610)은 특정 수업 또는 학생들의 그룹에 대한 강사에 의해 생성된 유인물에 관련된 정보를 디스플레이하는 데 이용된다. 제2 디스플레이 영역(620)은 유인물에 대한 첨부물들을 디스플레이하는 데 이용된다. 도 6에 도시된 바와 같이, 제1 디스플레이 영역(610)은 디스플레이(302)에 포함된 픽셀들의 제1 부분을 점유하고, 제2 디스플레이 영역(620)은 디스플레이(302)에 포함된 픽셀들의 제2 부분을 점유한다. 제3 디스플레이 영역(630)은 디스플레이(302)에 포함된 픽셀들의 제3 부분을 점유한다. 일부 실시예들에서, 제3 디스플레이 영역(630)은 숨겨질 수 있고, 제3 디스플레이 영역(630)은 제3 디스플레이 영역(630)이 디스플레이(302)의 상부 에지에 근접하게 나타나게 하기 위해 스와이프 터치 제스처를 사용하는 것과 같은 사용자 입력에 응답하여 디스플레이된다.
도 6a에 도시된 바와 같이, 제1 디스플레이 영역(610)은 유인물을 할당받을 학생들의 그룹을 나타내기 위한 인터페이스를 포함한다. 인터페이스는 라벨(예컨대, "받는 사람:"), 사용자 인터페이스 요소(612), 및 사용자 인터페이스 요소(614)를 보여준다. 강사는 사용자 인터페이스 요소(612) 내에 학생(들)에 대한 식별자를 타이핑하거나 또는 사용자 인터페이스 요소(614)를 선택하고 목록으로부터 학생들의 그룹을 선택함으로써 유인물을 할당받을 학생들의 그룹을 특정할 수 있다.
일부 실시예들에서, 사용자 인터페이스 요소(614)를 선택하는 것은 클라이언트 애플리케이션(205)으로 하여금 클라이언트 애플리케이션(205)에 로그인된 강사와 연관된 수업들에 대한 명단 데이터를 요청하게 한다. 명단 데이터는 강사와 연관된 임의의 수업들에 등록된 모든 학생들에 대한 식별자들을 포함한다. 클라이언트 애플리케이션(205)은 학교 관리 서비스(240)로부터 식별자들의 목록을 요청할 수 있다. 대안적으로, 클라이언트 애플리케이션(205)은 클라이언트 디바이스(120)의 로컬 메모리(420)로부터 식별자들의 목록을 검색할 수 있다. 예를 들어, 명단 서비스는, 원격 데이터베이스(460)의 명단 구역(465)에 명단 데이터를 저장하는 학교 관리 서비스(240)로부터 명단 데이터를 주기적으로 요청할 수 있다. 명단 구역(465)은 특정 수업으로 범위가 한정될 수 있고, 강사는 강사와 연관된 그러한 수업들에 대한 명단 구역들(465)에 가입될 수 있다. 따라서, 동기화 메커니즘을 통해, 데몬(440)은 클라이언트 디바이스(120)의 로컬 데이터베이스(450) 내로 명단 데이터를 다운로드할 것이며, 여기서 그것은 클라이언트 애플리케이션(205)에 의해 액세스될 수 있다.
제1 디스플레이 영역(610)은 또한 학생들이 유인물에 첨부된 활동들을 완료하고 유인물에 할당된 임의의 제출물들을 제출하기 위한 마감일을 나타내기 위한 인터페이스를 포함한다. 인터페이스는 라벨(예컨대, "마감일:") 및 사용자 인터페이스 요소(616)를 보여준다. 사용자 인터페이스 요소(616)는 과제를 완료하기 위한 날짜(예컨대, 기간)를 디스플레이할 수 있다. 사용자 인터페이스 요소(616)를 선택하는 것은 강사가 날짜를 선택하도록 하는 캘린더의 표현이 디스플레이되게 할 수 있다.
제1 디스플레이 영역(610)은 또한 유인물의 제목 및 본문을 변경하기 위해 강사에 의해 편집될 수 있는 다수의 텍스트 필드들을 포함한다. 예를 들어, 도 6a에 도시된 바와 같이, 강사는 유인물에 대한 "식물상과 동물상"의 제목을 특정하고, 과제를 완료하는 방법에 관해 학생들에게 제공된 한 세트의 지시들을 작성하였다.
제2 디스플레이 영역(620)은 제1 아이콘(622) 및 제2 아이콘(624)으로 지칭되는 한 쌍의 사용자 인터페이스 요소들을 포함한다. 제1 아이콘(622)은 유인물에 제출물에 대한 플레이스홀더를 추가하기 위해 강사에 의해 선택될 수 있다. 제2 아이콘(624)은 유인물에 활동을 추가하기 위해 강사에 의해 선택될 수 있다. 유인물에 대한 임의의 첨부물들이 제1 아이콘(622) 및 제2 아이콘(624) 아래에 열거될 수 있다. 도 6a에 도시된 바와 같이, 현재 이 유인물에 첨부된 제출물들 또는 활동들에 대한 플레이스홀더는 없다.
도 6b에 도시된 바와 같이, 유인물에 제출물에 대한 플레이스홀더를 첨부하는 것은 제2 디스플레이 영역(620)의 박스(640)를 다수의 사용자 인터페이스 요소들로 채운다. 예를 들어, 제1 사용자 인터페이스 요소(642)는 제출물이 편집되게 하기 위한 옵션들을 가능하게 하고, 제2 사용자 인터페이스 요소(644)는 제출물에 관련된 정보를 디스플레이하고, 제3 사용자 인터페이스 요소(646)는 사용자가 제출물에 대한 더 상세한 정보를 디스플레이하는 것을 가능하게 하고, 제4 사용자 인터페이스 요소(648)는 사용자가 유인물에 대한 첨부물들을 재순서화하거나 제출물에 대한 플레이스홀더를 유인물로부터 삭제(예컨대, 첨부해제)하는 것을 가능하게 한다. 일부 실시예들에서, 제2 사용자 인터페이스 요소(644)는 제출물에 대한 리소스의 표현의 썸네일 이미지, 및 제출물에 관련된 정보를 제공하는 썸네일 이미지 옆에 위치된 텍스트를 포함한다. 예를 들어, 텍스트는 제출물의 제목, 및 제출물에 대해 생성될 리소스의 유형을 나타낼 수 있다. 이 정보는 생략될 수 있거나, 본 명세서에 설명된 정보 대신에 추가 정보가 포함될 수 있다는 것이 이해될 것이다.
도 6a로 돌아가면, 제2 아이콘(624)을 선택하는 것은 클라이언트 애플리케이션(205)으로 하여금 강사가 유인물에 활동을 첨부할 수 있게 하는 사용자 인터페이스 요소들을 포함하는 인터페이스를 디스플레이하게 한다. 활동들의 유형들은 제3자 애플리케이션으로 완료되는 활동, 첨부물을 보거나 편집함으로써 수행되는 활동, 브라우저 애플리케이션 내에서 북마크 또는 링크와 연관된 네트워크 리소스를 봄으로써 완료되는 활동, 및 멀티미디어 파일(예컨대, 이미지(들), 비디오(들) 등)을 봄으로써 완료되는 활동을 포함할 수 있다.
도 6c에 도시된 바와 같이, 박스(650)는 사용자가 GUI(600) 내의 제2 아이콘(624)을 선택하는 것에 응답하여 디스플레이될 수 있다. 박스(650)는 강사가 애플리케이션 활동을 유인물과 연관시킬 수 있게 하는 제1 사용자 인터페이스 요소(652)를 포함한다. 예를 들어, 제3자 애플리케이션은 학생에게 퀴즈를 제시하고 학생이 퀴즈에 포함된 질문들에 대답할 것을 프롬프트하도록 구성될 수 있다. 다른 예로서, 제3자 애플리케이션은 태스크(예컨대, 프로그램에 대한 소스 코드를 작성하는 것, 게임하는 것, 이미지들을 외국어로 된 단어들과 매칭하는 것 등)를 수행하기 위해 학생이 따라야 하는 지시들을 포함하는 학생에 대한 상호작용적 강습을 제공할 수 있다. 또 다른 예로서, 제3자 애플리케이션은 책 또는 교과서의 하나 이상의 섹션들을 읽도록 학생에게 디지털 책 또는 교과서에 대한 텍스트를 제시할 수 있다.
박스(650)는 강사가 유인물에 파일을 첨부할 수 있게 하는 제2 사용자 인터페이스 요소(654)를 포함한다. 파일은 문서, 스프레드시트, 프레젠테이션(예컨대, 슬라이드 데크), 소스 코드, 또는 클라이언트 디바이스(120) 상의 애플리케이션으로 볼 수 있는 임의의 다른 유형의 파일을 포함할 수 있다. 첨부 파일은 강사가 전형적으로 학생에 의해 읽혀지거나 보여지는 자료들을 배포할 수 있게 한다. 일부 실시예들에서, 강사는 단일 파일이 수업 내의 모든 학생들 사이에서 공유되는지 여부 - 협업 옵션으로 지칭됨 -, 또는 파일의 복제품(clone)들(예컨대, 사본들)이 각각의 학생과 개별적으로 공유되는지 여부를 특정할 수 있다. 강사는 또한 파일과 연관된 허가들을 특정하여, 첨부된 파일을 읽기 전용으로 만들거나 학생이 파일을 편집하도록 판독 기록 액세스를 허용할 수 있다.
박스(660)는 강사가 북마크 또는 링크를 유인물에 첨부할 수 있게 하는 제3 사용자 인터페이스 요소(666)를 포함한다. 북마크 또는 링크는 인터넷과 같은 네트워크를 통해 액세스가능한 리소스에 대한 URL(uniform resource locator)을 특정하는 하이퍼링크를 지칭한다. 링크는 학생들이 강습에 적절할 수 있는 웹 사이트들을 볼 수 있게 할 수 있다.
박스(650)는 강사가 유인물에 멀티미디어 파일을 첨부할 수 있게 하는 제4 사용자 인터페이스 요소(658)를 포함한다. 멀티미디어 파일은 사진, 슬라이드 쇼, 비디오, 또는 가상 현실 데이터 또는 3차원 모델과 같은 다른 유형의 멀티미디어를 포함할 수 있다. 이어서, 멀티미디어 파일들은 이미지 뷰어 애플리케이션과 같은 클라이언트 디바이스(120) 상에 설치된 애플리케이션을 사용하여 학생에 의해 보여질 수 있다.
사용자가 제3자 애플리케이션과 연관된 활동을 유인물에 첨부하기 위해 제1 사용자 인터페이스 요소(652)를 선택할 때, 박스(650)는 도 6d에 도시된 바와 같이 박스(660)로 대체될 수 있다. 박스(660)는 애플리케이션들의 목록으로부터 활동에 대한 제3자 애플리케이션을 선택하는 능력을 강사에게 제공한다.
일부 실시예들에서, 박스(660)는 이용가능한 애플리케이션들의 목록으로부터 임의의 애플리케이션을 선택하기 위한 제1 사용자 인터페이스 요소(662)를 포함한다. 그러나, 일부 경우들에서, 일부 제3자 애플리케이션들은 제3자 애플리케이션으로 하여금 제3자 애플리케이션 내의 활동들을 완료하는 학생들의 진행을 추적하기 위한 하나 이상의 서비스들에 진행 데이터를 제공할 수 있게 하는 수업 키트 소프트웨어 프레임워크의 적어도 일부분을 구현할 수 있다. 수업 키트 소프트웨어 프레임워크의 적어도 일부분을 구현하는 이러한 제3자 애플리케이션들은 본 명세서에서 진행 애플리케이션들로 지칭될 수 있다. 소프트웨어 프레임워크의 적어도 일부분을 구현하는 진행 애플리케이션들은 제1 사용자 인터페이스 요소(662) 아래에서 개별 사용자 인터페이스 요소들에 별도로 열거될 수 있다. 예를 들어, 제2 사용자 인터페이스 요소(664)는 강사가 제1 진행 애플리케이션에 대한 활동을 첨부할 수 있게 하고, 제3 사용자 인터페이스 요소(666)는 강사가 제2 진행 애플리케이션에 대한 활동을 첨부할 수 있게 하고, 제4 사용자 인터페이스 요소(668)는 강사가 제3 진행 애플리케이션에 대한 활동을 첨부할 수 있게 한다.
일부 실시예들에서, 제3자 애플리케이션은 제3자 애플리케이션 내에 상호작용적 특징부들을 구축하기 위한 수단을 제공하는 수업 키트 소프트웨어 프레임워크의 적어도 일부분을 구현한다. 예를 들어, 수업 키트 소프트웨어 프레임워크는 소프트웨어 개발자가 애플리케이션과 연관된 컨텍스트를 정의할 수 있게 한다. 본 명세서에 사용되는 바와 같이, 컨텍스트는 애플리케이션의 구조를 설명하는 메타데이터를 지칭한다. 예를 들어, 디지털 교과서는 챕터들, 섹션들, 페이지들, 문제 세트들, 및 디지털 교과서 내의 유사한 구조를 정의하는 컨텍스트를 사용하여 설명될 수 있다. 일반적으로, 컨텍스트는 활동이 제3자 애플리케이션에 대해 정의될 수 있게 하는 메타데이터를 정의한다.
컨텍스트는 또한 애플리케이션 내에서의 활동의 진행이 추적될 수 있게 한다. 예를 들어, 디지털 교과서 예를 다시 참조하면, 강사는 교과서의 챕터를 읽는 것에 관련된 활동을 정의할 수 있다. 컨텍스트는 강사가 활동을 정의할 때 강사가 할당하기를 원하는 디지털 교과서 내의 특정 챕터 또는 섹션을 특정할 수 있게 한다. 따라서, GUI(600)를 사용하여 활동을 특정할 때, 클라이언트 애플리케이션(205)은 제3자 애플리케이션 내에서 어떤 활동들이 완료될 수 있는지를 결정하기 위해 컨텍스트를 참고할 수 있다.
일부 실시예들에서, 강사는 하나 이상의 제3자 애플리케이션들과 연관된 이용가능한 컨텍스트들의 목록을 수동으로 검색하고, 강사가 다양한 유인물들에 할당하고 싶어하는 컨텍스트들의 세트를 선택할 수 있다. 컨텍스트들의 세트는, 강사가 그러한 컨텍스트들과 연관된 활동들을 유인물에 첨부할 수 있도록, 메모리(420)에 저장되고 클라이언트 애플리케이션(205)과 연관될 수 있다.
다른 실시예들에서, 클라이언트 디바이스(120) 상에 설치된 각각의 진행 애플리케이션은 진행 애플리케이션에 의해 제공되는 이용가능한 컨텍스트들을 데몬(440)에 통지할 수 있다. 강사는 클라이언트 애플리케이션(205)을 이용하여, 하나 이상의 진행 애플리케이션들에 의해 게시된 이용가능한 컨텍스트들의 목록를 브라우징하고 선호(favorite) 컨텍스트들로서 다수의 컨텍스트들을 선택할 수 있다. 예를 들어, 박스(660)에서 제1 사용자 인터페이스 요소(662)를 선택함으로써, 강사는 클라이언트 디바이스(120) 상에 설치된 진행 애플리케이션들에 의해 제공되는 모든 이용가능한 컨텍스트들을 브라우징할 수 있다. 이어서 강사는 특정 컨텍스트들을 강사의 선호 컨텍스트들로서 선택할 수 있다. 강사에 의해 선호하는 것으로서 선택된 이용가능한 컨텍스트들의 서브세트는 클라이언트 디바이스(120)의 로컬 데이터베이스(450)에 저장될 수 있다. 강사에 의해 선택된 선호 컨텍스트들은 또한 강사로 범위가 한정되는 원격 데이터베이스(460) 내의 개인 구역(465)에 동기화될 수 있다. 이어서, 박스(660) 내의 추가 사용자 인터페이스 요소들은 특정 선호 컨텍스트에 대응하는 각각의 사용자 인터페이스 요소와 함께 디스플레이될 수 있다. 이어서, 강사는 유인물에 첨부할 특정한 선호 컨텍스트를 선택할 수 있다.
도 6e에 도시된 바와 같이, 제2 사용자 인터페이스 요소(654)를 선택하는 것은 클라이언트 애플리케이션(205)으로 하여금, 강사가 첨부 파일과 연관된 옵션들을 특정할 수 있게 하는 2개의 사용자 인터페이스 요소들을 포함하는 박스(670)를 디스플레이하게 한다. 일부 실시예들에서, 옵션들은 공유된 파일에 대한 허가들 뿐만 아니라 파일이 협업적인지 여부를 포함한다. 예를 들어, 도 6e에 도시된 바와 같이, 사용자 인터페이스 요소(672)는 강사가 파일이 협업적인지 여부를 나타낼 수 있게 한다. 이 옵션은 파일이 복수의 사용자들 사이에서 단일 리소스로서 공유되는지 여부 또는 파일의 사본이 각각의 사용자와 개별적으로 공유되는지 여부를 결정한다. 사용자 인터페이스 요소(674)는 강사가 파일에 대한 리소스에 대한 허가들을 변경할 수 있게 한다. 리소스가 읽기 전용인 경우, 학생은 리소스를 편집할 수 없을 것이지만; 리소스가 읽기-쓰기인 경우, 학생은 파일을 편집할 수 있다.
도 6e에 명시적으로 도시되지 않은 추가 사용자 인터페이스 요소들이 박스(670) 내에 포함될 수 있다는 것이 이해될 것이다. 예를 들어, 다른 사용자 인터페이스 요소들은 강사가 유인물에 첨부하기 위해 로컬 메모리(420)에 저장된 파일을 특정하도록 할 수 있다.
도 7은 일부 실시예들에 따른, 유인물 서비스(220)와, 교실 내 복수의 학생들과 연관된 다수의 클라이언트 애플리케이션(들)(205) 및/또는 데몬(들)(440) 사이의 클라이언트-서버 관계를 도시한다. 도 7에 도시된 바와 같이, 수업은 수업에 등록된 L명의 학생들을 포함할 수 있으며, 각각의 학생은 하나 이상의 클라이언트 디바이스들(120)에 대한 액세스를 갖는다. 전술한 바와 같이, 유인물 서비스(220)는 강사에 의해 제어되는 복수의 상이한 클라이언트 디바이스들(120)을 사용하여 유인물들을 생성 및 관리할 수 있게 하도록 구성된다. 또한, 유인물 서비스(220)는 또한 학생들의 그룹과 연관된 복수의 추가 클라이언트 디바이스들(120)에 포함된 클라이언트 애플리케이션(205)에 유인물들을 배포하는 것을 돕도록 구성된다.
일부 실시예들에서, 강사는 유인물을 준비하는 것을 마치고, 이어서 유인물을 학생들의 그룹에 할당하여 보고 완료하도록 유인물을 게시할 수 있다. 유인물 서비스(220)는 원격 데이터베이스(460) 내의, 유인물에 특정된 학생들의 그룹으로 범위가 한정된, 유인물 구역(465)으로 유인물을 복사한다. 강사가 유인물을 게시하는 것에 응답하여, 유인물 서비스(220)는 다양한 경로들(710)을 통해 학생들과 연관된 클라이언트 디바이스들(120) 각각에, 원격 데이터베이스(460) 내의 유인물 구역(465)이 업데이트되었음을 통지한다. 경로(710)는 특정 클라이언트 디바이스(120)의 네트워크 인터페이스에 대한 목적지 어드레스와 연관된 네트워크 경로를 지칭할 수 있다.
통지는 클라이언트 디바이스들(120) 각각에 포함된 데몬(440)에 의해 수신될 수 있다. 이어서, 데몬(440)은 유인물 구역(465)으로부터의 데이터를 클라이언트 디바이스(120) 내의 로컬 데이터베이스(450)로 다운로드한다. 일부 실시예들에서, 유인물 서비스(220)는 수업 내의 학생들에 대한 사용자 식별자들을 검색하기 위해 학교 관리 서비스(240)를 이용한다. 사용자 식별자들은, 별개의 통지 서비스를 사용하여, 주어진 수업 내의 학생과 연관된 클라이언트 디바이스들(120) 각각에 통지들을 송신하는 데 이용될 수 있다.
일부 실시예들에서, 학생들의 그룹은 학교 관리 서비스(240)에 의해 식별될 수 있으며, 이는 유인물 서비스(220)로부터 요청을 수신하는 것에 응답하여, 특정 수업에 등록된 학생들에 대한 식별자들의 목록을 반환하도록 구성된다. 다른 실시예들에서, 명단 서비스는 학교 관리 서비스(240)와 인터페이싱하여, 조직으로 범위가 한정되는 원격 데이터베이스(460)의 명단 구역(465)에 명단 데이터를 생성할 수 있다. 이어서, 유인물 서비스(220)는 학교 관리 서비스(240)로부터 직접 명단 데이터를 얻는 대신에 원격 데이터베이스(460)로부터의 명단 데이터에 액세스할 수 있다.
유인물을 게시하기 위한 요청에 응답하여, 유인물 서비스(220)는 강사로 범위가 한정된 개인 구역(465)으로부터 수업 내의 학생들의 그룹으로 범위가 한정된 유인물 구역(465)으로 유인물을 복사할 수 있다. 일단 유인물의 사본이 유인물 구역(465)에 저장되면, 유인물 서비스(220)는 유인물 구역(465)에 가입된 학생들과 연관된 임의의 클라이언트 디바이스에 변경의 통지를 송신한다. 유인물 구역(465)과 연관된 학생의 클라이언트 디바이스(120)에 포함된 데몬(440)은 유인물 서비스(220)로부터의 통지를 수신하는 것에 응답하여 유인물 구역(465)에 저장된 유인물의 사본을 클라이언트 디바이스(120)의 로컬 메모리로 자동으로 다운로드할 것이다. 이어서, 유인물은 학생에 대한 클라이언트 디바이스(120)의 클라이언트 애플리케이션(205)에 의해 보여져, 학생이 활동들을 완료하고/하거나 유인물에 첨부된 자료들을 볼 수 있도록 할 수 있다.
도 8a 내지 도 8c는 일부 실시예들에 따른, 학생과 연관된 클라이언트 디바이스(120) 상의 클라이언트 애플리케이션(210)에 의해 구현되는 GUI(800)를 도시한다. GUI(800)는 GUI(600)와는 상이하다. 클라이언트 애플리케이션(210)은 사용자가 강사 대신에 학생과 연관된 사용자 계정에 로그인하는 것에 응답하여 GUI(800)를 디스플레이하도록 구성될 수 있다. GUI(800)는 학생이 수업에 대한 강사에 의해 학생들의 그룹에 할당된 수업에 대한 유인물을 볼 수 있게 한다.
일부 실시예들에서, GUI(800)는 제1 디스플레이 영역(810), 제2 디스플레이 영역(820), 및 제3 디스플레이 영역(830)을 포함한다. 제1 디스플레이 영역(810)은 특정 수업에 대한 학생에게 할당된 유인물의 표현들을 디스플레이하는 데 이용된다. 제2 디스플레이 영역(820)은 학생이 등록된 수업들의 표현들을 디스플레이하는 데 이용된다. 도 8a에 도시된 바와 같이, 제1 디스플레이 영역(810)은 디스플레이(302)에 포함된 픽셀들의 제1 부분을 점유하고, 제2 디스플레이 영역(820)은 디스플레이(302)에 포함된 픽셀들의 제2 부분을 점유한다.
제1 디스플레이 영역(810)은 요소들(812)이 선택된 수업 내의 학생에 할당된 별개이고 구별되는 유인물들을 표현함을 나타내는 헤더를 포함한다. 일부 실시예들에서, 각각의 요소(812)는 유인물의 제목, 유인물과 연관된 마감일에 대한 디스크립터, 및 학생이 유인물을 완료하였는지의 표시를 포함하는 박스에 의해 정의된다. 예를 들어, 제1 요소(812-1)는 3월 12일의 마감일을 갖고 학생에 의해 완료된 "식물상과 동물상" 과제에 대한 제1 유인물과 연관되고; 제2 요소(812-2)는 3월 15일의 마감일을 갖고 학생에 의해 완료되지 않은 "시험 준비" 과제에 대한 제2 유인물과 연관된다. 다른 실시예들에서, 요소들(812)은 상이한 형태들을 취할 수 있다는 것이 이해될 것이다. 예를 들어, 요소들(812)은 마감일 및/또는 완료 표시자를 생략할 수 있다. 대안적으로, 요소들(812)은 마감일 및/또는 완료 표시자에 더하여 또는 그 대신에 정보를 포함할 수 있다. 또한, 요소들(812)은 유인물 내에 할당된 상이한 활동들을 표현하는 이미지 또는 아이콘들과 같은 그래픽들을 포함할 수 있다. 일부 경우들에서, 그래픽들은, 예컨대, 요소(812)의 배경으로서 유인물에 첨부된 이미지들의 슬라이드 쇼를 보여주거나 또는 비디오를 재생함으로써, 애니메이션화될 수 있다.
제2 디스플레이 영역(820)은 요소들(822)이 학생이 등록된 별개이고 구별되는 수업들을 표현함을 나타내는 헤더를 포함한다. 학생은 제1 디스플레이 영역(810) 내의 수업에 대한 강사에 의해 학생에게 어떤 유인물들이 할당되었는지를 보기 위해 특정 요소(822)를 선택할 수 있다. 일부 실시예들에서, 각각의 요소(822)는 수업의 제목 및 수업 내의 학생에 할당된 유인물들의 수에 대한 디스크립터를 포함하는 박스에 의해 정의된다. 예를 들어, 제1 요소(822-1)는 2개의 유인물들이 예정되어 있는(due) "과학 A" 수업과 연관되고; 제2 요소(822-2)는 0개의 유인물이 예정되어 있는 "수학 A" 수업과 연관되고; 제3 요소(822-3)는 1개의 유인물이 예정되어 있는 "영어 A" 수업과 연관된다. 다른 실시예들에서, 요소들(822)은 상이한 형태들을 취할 수 있다는 것이 이해될 것이다. 예를 들어, 요소들(822)은 수업 내의 학생에 할당된 유인물들의 수에 대한 표시자를 생략할 수 있다.
일부 실시예들에서, 학생은 클라이언트 디바이스(120)의 입력 인터페이스를 사용하여 특정 수업을 선택할 수 있다. 예를 들어, 학생은 터치 인터페이스를 사용하여, 학생이 등록된 이용가능한 수업들 중 하나와 연관된 요소(822)를 선택할 수 있다. 요소(822)의 선택 시, 요소(822)는 활성화되고, 제1 디스플레이 영역(810) 내의 요소들(812)은 제2 디스플레이 영역(820) 내의 선택된 요소(822)에 의해 표현되는 수업과 연관된 유인물들을 반영하도록 업데이트될 수 있다. 선택된 요소(822)(예컨대, 현재 활성화된 요소)는 요소(822)가 활성임을 나타내기 위해 하이라이트될 수 있다. 하이라이팅은 요소의 크기를 증가시키고, 요소(822) 또는 요소(822)의 경계와 연관된 색상을 변경하고, 선택된 요소(822) 주위에 박스를 디스플레이하는 것 등에 의해 구현될 수 있다. 도 8a에 도시된 바와 같이, 제1 요소(822-1)는 제2 요소(822-2) 및 제3 요소(822-3)보다 더 큰 것으로서 활성화되고 도시된다.
제3 디스플레이 영역(830)이 디스플레이(302)의 상부 에지에 근접하게 위치된다. 제3 디스플레이 영역(830)은 클라이언트 애플리케이션(210)의 사용자가 학생에 대한 사용자 계정에 로그인할 수 있게 하는 요소들을 포함한다. 일부 실시예들에서, 제3 디스플레이 영역(830)은 숨겨지고, 수직 스와이프 터치 제스처를 사용하여 제3 디스플레이 영역(830)이 숨김해제되게 하는 것과 같이 사용자 입력에 응답하여 디스플레이될 수 있다.
제1 아이콘(832)이 제3 디스플레이 영역(830)의 좌측에 근접하게 디스플레이된다. 제1 아이콘(832)은, 사용자에 의해 선택될 때, 클라이언트 애플리케이션(210)으로 하여금 사용자에게 학생에 대한 사용자 계정에 로그인하기 위해 크리덴셜들을 입력할 것을 프롬프트하게 할 수 있다. 일부 실시예들에서, 제1 디스플레이 영역(810) 및 제2 디스플레이 영역(820)은 사용자가 제1 아이콘(832)을 사용하여 특정 사용자 계정에 로그인할 때까지 숨겨진다. 일부 실시예들에서, 클라이언트 애플리케이션(210)의 시작 시에, 사용자에게 사용자 계정에 로그인하기 위해 크리덴셜들을 입력할 것을 프롬프트하는 별개의 인터페이스가 사용자에게 디스플레이된다. GUI(800)는, 사용자가 특정 사용자 계정에 성공적으로 로그인했을 때에만, 디스플레이(302) 상에 디스플레이된다. 이어서, 제1 아이콘(832)은 사용자 계정에서 로그아웃하고/하거나 상이한 사용자 계정에 로그인하는 데 사용될 수 있다.
특정 수업에서의 유인물을 표현하는 특정 요소(812)를 선택하는 것은, 도 8b에 도시된 바와 같이, GUI(800)가 유인물을 표현하는 데이터로 업데이트되게 한다. 제1 디스플레이 영역(840)은 유인물에 포함된 정보, 예컨대 유인물의 제목, 유인물에 대한 마감일, 유인물이 할당된 수업의 표시, 및 강사에 의해 유인물에 포함된 지시들을 제시한다. 제2 디스플레이 영역(850)은 강사에 의해 유인물에 첨부된 임의의 제출물들 및/또는 활동들에 관련된 정보를 제시한다.
제2 디스플레이 영역(850) 내의 활동을 선택하는 것은 상이한 애플리케이션에서 활동을 열 것이다. 활동이 특정 파일 유형의 첨부물인 경우, 첨부물을 보기 위해 그 파일 유형에 대응하는 애플리케이션이 열릴 것이다. 활동이 북마크 또는 링크인 경우, 웹 브라우저 애플리케이션이 열릴 것이고, 북마크 또는 링크에서 URL에 의해 특정된 리소스가 검색될 것이다. 활동이 멀티미디어 파일인 경우, 멀티미디어 파일을 보기 위해 멀티미디어 애플리케이션이 열릴 것이다. 그러나, 활동이 진행 애플리케이션과 연관되는 경우(예컨대, 활동이 진행 애플리케이션에 의해 제공되고 강사에 의해 선호 컨텍스트로서 선택된 컨텍스트와 연관되는 경우), 활동을 완료하기 위해 진행 애플리케이션이 열릴 것이다. 일부 실시예들에서, 진행 애플리케이션은 활동을 완료할 때 학생의 진행을 추적하도록 수업 키트 소프트웨어 프레임워크의 적어도 일부분을 구현한다.
도 8c에 도시된 바와 같이, 제1 진행 애플리케이션에 대한 GUI(860)가 디스플레이(302) 상에서 학생에게 제시된다. GUI(860)는 픽셀 데이터로서 제시되는 정보의 형태로 출력을 제공할 수 있다. 도 8c에 도시된 바와 같이, 제1 진행 애플리케이션에 대한 GUI(860)는 학생이 특정 과목을 학습하는 것을 돕는 텍스트 및 그래픽들을 제공할 수 있다. GUI(860)는 요소들을 포함할 수 있으며, 요소들 중 일부는 상호작용적일 수 있다. 예를 들어, 학생은 나무의 이미지를 선택하여 나무들에 관한 더 상세한 정보를 디스플레이할 수 있다. 도 8c에 도시된 제3자 소프트웨어는 단지 예시적인 목적을 위해 도시되고 소프트웨어의 설계가 임의의 특정 유형의 학습 소프트웨어로 제한되지 않는다는 것이 이해될 것이다. 실제로, 수업 키트 소프트웨어 프레임워크를 구현할 수 있는 소프트웨어의 종류들은 광범위하다.
도 9는 일부 실시예들에 따른, 제출물 서비스(230)와, 교실 내 복수의 학생들에 대한 다수의 클라이언트 애플리케이션(들)(210) 및/또는 데몬(들)(440) 사이의 클라이언트-서버 관계를 도시한다. 도 9에 도시된 바와 같이, 수업은 수업에 등록된 L명의 학생들을 포함할 수 있으며, 각각의 학생은 하나 이상의 클라이언트 디바이스(120)에 대한 액세스를 갖는다. 제출물 서비스(230)는 학생들의 대응하는 그룹들에 할당된 하나 이상의 유인물들에 포함된 제출물들을 관리하는 것을 돕도록 구성된다.
일부 실시예들에서, 제출물에 대한 플레이스홀더를 포함하는 유인물이 게시될 때, 유인물 내의 플레이스홀더는 학생이 제출물에 대응하는 파일을 제출하도록 요구된다는 것을 나타낸다. 또한, 학생은 클라이언트 디바이스(120) 상의 하나 이상의 애플리케이션들을 사용하여 제출물에 대한 파일을 생성한다. 이어서, 학생은 클라이언트 애플리케이션(205)을 사용하여 제출물을 제출할 수 있다. 대안적으로, 클라이언트 애플리케이션(205)은 학생이 제3자 애플리케이션으로부터 제출물을 제출할 수 있게 하는 제3자 애플리케이션(예컨대, 애플리케이션 확장)에 추가된 GUI 요소를 생성할 수 있다.
일부 실시예들에서, 학생에 의해 생성된 문서는 학생이 상이한 클라이언트 디바이스들(120)로부터 문서에 액세스할 수 있도록 원격 데이터베이스(460)의 개인 구역(465-1)에 동기화될 수 있다. 학생이 문서를 제출물로서 제출할 것을 선택할 때, 제출물 서비스는 학생으로 범위가 한정된 개인 구역(465-1)으로부터, 수업, 및 선택적으로 제출물에 대응하는 특정 유인물로 범위가 한정된 제출물 구역(465-2)으로 문서를 복사할 수 있다. 학생에 대한 개인 구역(465-1)으로부터 제출물 구역(465-2)으로 문서를 이동시킴으로써, 강사는 문서를 볼 수 있다. 일부 실시예들에서, 문서는 또한 학생으로 범위가 한정된 개인 구역(465-1)으로부터 삭제되고, 학생은 제출물 구역(465-2)에 저장된 문서의 사본에 대한 판독 전용 액세스를 승인받는다. 결과적으로, 문서가 제출물로서 제출되면, 학생은 더 이상 문서를 편집할 수 없다.
일부 실시예들에서, 특정 유인물과 연관된 학생들의 그룹은 학교 관리 서비스(240)에 의해 식별될 수 있으며, 이는 제출물 서비스(230)로부터 요청을 수신하는 것에 응답하여, 특정 수업에 등록된 학생들에 대한 식별자들의 목록을 반환하도록 구성된다. 다른 실시예들에서, 명단 서비스는 학교 관리 서비스(240)와 인터페이싱하여, 조직으로 범위가 한정되는 원격 데이터베이스(460)의 구역(465)에 명단 데이터를 생성할 수 있다. 이어서, 제출물 서비스(230)는 학교 관리 서비스(240)로부터 직접 명단 데이터를 얻는 대신에 원격 데이터베이스(460)로부터의 명단 데이터에 액세스할 수 있다.
도 10은 일부 실시예들에 따른, 진행 파이프라인(250)과 클라이언트 애플리케이션(210) 및/또는 데몬(440) 사이의 클라이언트-서버 관계를 도시한다. 교실 환경 내에서 수업 키트 소프트웨어 프레임워크의 이득들을 완전히 실현하기 위해, 연관된 클라이언트 디바이스들(120)을 사용하여 각각의 학생의 활동을 추적하기 위한 수단이 요구된다. 데몬(440) 및 진행 파이프라인(250)은 수업 키트 소프트웨어 프레임워크의 적어도 일부를 구현하는 임의의 제3자 애플리케이션들에 그러한 기능을 제공한다.
도 10에 도시된 바와 같이, 클라이언트 디바이스(120)는 프로세서(410), 및 소프트웨어 및 데이터를 포함하는 메모리(420)를 포함한다. 클라이언트 디바이스(120)의 메모리(420)는 운영 체제(430), 클라이언트 애플리케이션(210), 데몬(440), 및 하나 이상의 진행 애플리케이션들(1010)을 포함한다. 데몬(440)은 수업 키트 소프트웨어 프레임워크를 통해 진행 애플리케이션들(1010)과 통신하기 위해 API를 구현한다.
일부 실시예들에서, 하나 이상의 진행 애플리케이션들(1010) 각각은 진행 애플리케이션(1010)에 의해 제공된 하나 이상의 컨텍스트들과 연관된 진행을 추적하기 위해 수업 키트 소프트웨어 프레임워크의 적어도 일부분을 구현한다. 수업 키트 소프트웨어 프레임워크는 진행 애플리케이션(1010)에 대한 소스 코드에 추가된 소스 코드, 진행 애플리케이션(1010)에 의해 이용되는 함수들의 라이브러리에 대한 소스 코드, 및 진행 애플리케이션(1010)에 대한 소스 코드에 링크될 수 있는 컴파일된 함수들의 라이브러리 중 적어도 하나를 포함한다. 소프트웨어 프레임워크는 클라이언트 디바이스(120)의 백그라운드에서 실행되는 데몬(440)에 대한 API 호출들을 생성하는, 진행 애플리케이션(1010)의 소스 코드에 포함된 함수들을 제공한다. API 호출들은 진행 애플리케이션(1010)에서 사용자에 의해 수행되는 동작들에 관련된 진행 추적 정보를 포함한다.
소프트웨어 개발자는 진행 애플리케이션(1010) 내에서 진행 추적 기능을 구현하기 위해 진행 애플리케이션(1010)에 대한 소스 코드 내에서 API 호출들을 구현할 수 있다. 예를 들어, 문서 보기 애플리케이션에서, 소스 코드는 사용자가 새로운 페이지로 내비게이팅할 때마다 사용자가 문서의 특정 페이지를 읽었음을 나타내는 API 호출을 생성하도록 구성될 수 있다. 소프트웨어 개발자는 또한, 강사가 진행 애플리케이션(1010)을 이용하는 클라이언트 애플리케이션(210) 내의 유인물들에 첨부된 활동들을 생성할 수 있게 하기 위해, 진행 애플리케이션(1010)의 구조를 특정하는 진행 애플리케이션(1010)에 대한 하나 이상의 컨텍스트들을 정의할 수 있다. 각각의 컨텍스트는 표준 언어(예컨대, 미리정의된 키워드들) 및/또는 포맷을 사용하여 진행 애플리케이션(1010)의 구조를 정의하는 데이터 구조이다.
단일 진행 애플리케이션(1010)이 하나 초과의 컨텍스트와 연관될 수 있다는 것이 이해될 것이다. 예를 들어, 상이한 파일들 또는 데이터 구조들에 저장된 다수의 교과서들을 보기 위해 교과서 애플리케이션이 구현될 수 있다. 상이한 컨텍스트가 상이한 교과서들 각각에 대해 정의될 수 있다. 각각의 컨텍스트는 교과서의 제목, 교과서의 저자, 교과서의 개정판, 교과서 내의 챕터들의 수, 교과서의 각각의 챕터의 설명을 포함하는 교과서에 대한 목차, 각각의 챕터에 포함된 섹션들의 설명, 각각의 섹션에 포함된 각각의 페이지의 설명, 각각의 챕터 또는 섹션 내의 문제 세트들의 설명 등을 정의하는 것과 같이, 대응하는 교과서의 특정 레이아웃을 정의할 수 있다. 이어서, 강사는 이러한 컨텍스트들을 사용하여 특정 컨텍스트와 연관된 특정 활동들을 선택하고, 이러한 선택된 활동들을 수업 내의 학생들에 할당된 유인물들에 첨부할 수 있다.
데몬(440)은 진행 애플리케이션(1010)으로부터 API 호출들을 수신하도록 구성된다. API 호출들은 진행 애플리케이션(1010) 내에서 생성된 진행 추적 정보를 포함할 수 있다. 일부 실시예들에서, 진행 추적은 인에이블되거나 디스에이블될 수 있다. 데몬(440)은 진행 추적이 디스에이블될 때 진행 애플리케이션들(1010)로부터 수신된 진행 추적 정보를 무시하도록 구성된다. 그러나, 진행 추적이 인에이블되는 경우, 데몬(440)은 진행 추적 정보를 프로세싱하도록 구성된다. 일부 실시예들에서, 데몬(440)은 하나 이상의 진행 애플리케이션들(1010)로부터 수신된 집계 진행 추적 정보를 프로세싱하기 전에, 둘 이상의 API 호출들로부터 수신된 진행 추적 정보를 집계한다.
일부 실시예들에서, 진행 추적은 개별 진행 애플리케이션들(1010)에 대해 인에이블되거나 디스에이블될 수 있다. 따라서, 제1 애플리케이션에 대한 진행 추적은 인에이블될 수 있는 반면, 제2 애플리케이션에 대한 진행 추적은 디스에이블될 수 있다. 따라서, 데몬(440)은 진행 추적이 디스에이블되는 임의의 애플리케이션들로부터의 임의의 진행 추적 정보를 필터링하고, 진행 추적이 인에이블되는 애플리케이션들에 대한 진행 추적 정보만을 프로세싱하도록 구성된다.
일부 실시예들에서, 클라이언트 디바이스(120) 상에 설치된 모든 진행 애플리케이션들(1010)에 대한 진행 추적은 클라이언트 애플리케이션(210)의 설치 시에 자동으로 인에이블된다. 따라서, 클라이언트 디바이스(120)의 사용자는 진행 추적 정보가 수집되는 것을 방지하기 위해 클라이언트 디바이스(120) 또는 클라이언트 디바이스(120) 상에 설치된 개별 제3자 애플리케이션들에 대한 진행 추적을 디스에이블하도록 요구되며, 이는 동의하지 않음(opt-out) 정책으로 지칭될 수 있다. 다른 실시예들에서, 클라이언트 디바이스(120) 상에 설치된 모든 제3자 애플리케이션들(1010)에 대한 진행 추적은 클라이언트 애플리케이션(210)의 설치 시에 자동으로 디스에이블된다. 따라서, 클라이언트 디바이스(120)의 사용자는 진행 추적 정보가 수집되도록 허용하기 위해 클라이언트 디바이스(120) 또는 클라이언트 디바이스(120) 상에 설치된 개별 제3자 애플리케이션들에 대한 진행 추적을 인에이블하도록 요구되며, 이는 동의함(opt-in) 정책으로 지칭될 수 있다.
진행 추적 정보는 진행 애플리케이션(1010)을 사용하여 클라이언트 디바이스(120)의 사용자에 의해 완료되는 동작들을 식별하는 정보를 포함할 수 있지만, 이에 제한되지 않는다. 예를 들어, 진행 추적 정보는 사용자가 디지털 교과서의 특정 챕터를 보거나 읽었고, 진행 애플리케이션(1010)의 GUI를 통해 사용자에게 제시되는 다수의 문제들을 완료하였고, 링크를 클릭하는 것 또는 진행 애플리케이션(1010)의 상호작용 요소와 상호작용하는 것과 같은 동작을 완료하였다는 것 등을 나타내는 정보를 포함할 수 있다.
진행 추적 정보는 개인 식별 정보(personally identifying information, PII)를 포함할 수 있다. 이 PII는 민감한 것으로 간주될 수 있고, 따라서, 클라이언트 디바이스(120)로부터 서버 디바이스(110)로 송신될 때 이 정보를 보안하기 위해 데몬(440)에 의해 주의를 기울인다. 일부 실시예들에서, 특정 학생으로 범위가 한정된 진행 구역(465)은 사용자 계정과 연관된 각각의 학생에 대한 진행 추적 정보를 저장하기 위해 이용된다. 진행 추적 정보는 클라이언트 디바이스(120)의 메모리(420)에 로컬로 저장되고 암호화된다. 진행 추적 정보는 또한 원격 데이터베이스(460)의 진행 구역(465)에서 원격으로 암호화될 수 있다. 진행 추적 정보는 상이한 암호화 키들을 이용하여 로컬로 또는 원격으로 암호화될 수 있다. 또한, 데몬(440)은 원격 데이터베이스(460)로의 전송 중에 진행 추적 정보를 암호화하도록 구성될 수 있다. 전송 중 암호화에 사용되는 암호화 키는 로컬로 또는 원격으로 이용되는 암호화 키들과 상이할 수 있다. 결과적으로, 진행 추적 정보는 다양한 형태의 인증(예컨대, 생체 측정 인증, 사용자가 패스코드를 입력할 것을 요구하는 것 등)을 사용하여 로컬로 보안될 수 있고, 진행 추적 정보는 보안 전송 메커니즘으로서 상호 TLS와 같은 추가적인 인증 형태들을 사용하여 원격으로(즉, 서버 측 상에서) 보안될 수 있다.
도 11은 일부 실시예들에 따른, 데몬(440)에 의한 진행 추적 정보의 필터링을 도시한다. 일부 실시예들에서, 데몬(440)은 한 명 이상의 강사들에 의해 학생에게 할당된 하나 이상의 유인물들과 연관된 활성 컨텍스트들의 세트에 기초하여 진행 애플리케이션들(1010)로부터 수신된 진행 추적 정보를 필터링하도록 구성된다. 데몬(440)은 현재 학생(또는 수업)에 할당된 하나 이상의 유인물들의 첨부물들에 기초하여 활성 컨텍스트들의 목록(1170)을 추적할 수 있다. 일부 실시예들에서, 이미 경과된 마감일을 갖는 유인물들 내의 첨부물들은 강사에 의해 닫히고(예컨대, 비활성화되고) 활성 컨텍스트 목록(1170)으로부터 제거될 수 있다. 데몬(440)은 활성 컨텍스트들의 목록(1170)에 기초하여 진행 애플리케이션들(1010)로부터 수신된 진행 추적 정보를 필터링하도록 구성된다.
예를 들어, 제1 강사는 제1 진행 애플리케이션(1010-1)에 대한 제1 컨텍스트와 연관된 활동을 포함하는 제1 유인물을 특정 학생에 할당할 수 있고; 제2 강사는 제2 진행 애플리케이션(1010-2)에 대한 제2 컨텍스트와 연관된 활동을 포함하는 제2 유인물을 특정 학생에 할당할 수 있다. 제1 진행 애플리케이션(1010-1)에 대한 제1 컨텍스트 및 제2 진행 애플리케이션(1010-2)에 대한 제2 컨텍스트는 활성 컨텍스트들로서 간주된다. 그러나, 학생은 임의의 활성 컨텍스트들과 연관되지 않는 제3 진행 애플리케이션(1010-3)을 사용할 수 있고, 데몬(440)은 임의의 불필요한 진행 추적 데이터를 수집하는 것을 피하기 위해 제3 진행 애플리케이션(1010-3)으로부터 수신된 임의의 진행 추적 정보(1140)를 필터링하도록(예컨대, 무시하도록) 구성될 수 있다. 마찬가지로, 데몬(440)은 또한 상이한 비활성 컨텍스트와 연관되는 제1 진행 애플리케이션(1010-1) 및/또는 제2 진행 애플리케이션(1010-2)으로부터 수신된 임의의 진행 추적 정보를 필터링할 수 있다. 예를 들어, 활성 컨텍스트는 맥베스(Macbeth)의 e-북에 대한 구조를 정의할 수 있는 반면, 비활성 컨텍스트는 로미오와 줄리엣(Romeo and Juliet)의 e-북에 대한 구조를 정의할 수 있다. 진행 애플리케이션(1010)에서 로미오와 줄리엣의 e-북이 열려 있는 동안 수신된 추적 추적 정보가 필터링되고 무시되는 동안, 진행 애플리케이션(1010)에서 맥베스의 e-북이 열려 있는 동안 수신된 임의의 진행 추적 정보는 데몬(440)에 의해 프로세싱될 것이다.
도 11에 도시된 바와 같이, 제1 진행 애플리케이션(1010-1)으로부터 수신되고 제1 컨텍스트와 연관된 제1 진행 추적 정보(1110)는 데몬(440)에 의해 프로세싱되며, 여기서 제1 컨텍스트는 활성 컨텍스트들의 목록(1170) 내에 포함된다. 일부 실시예들에서, 데몬(440)은 제1 진행 추적 정보(1110)를 진행 추적 정보(1150-1)로서 로컬 데이터베이스(450) 내에 저장하고, 진행 추적 정보(1150-1)는, 동기화 메커니즘을 통해, 학생으로 범위가 한정된 원격 데이터베이스(460) 내의 진행 구역(465)으로 업로드된다. 유사하게, 제2 진행 애플리케이션(1010-2)으로부터 수신되고 제2 컨텍스트와 연관된 제2 진행 추적 정보(1120)는 데몬(440)에 의해 프로세싱되며, 여기서 제2 컨텍스트는 활성 컨텍스트들의 목록(1170) 내에 포함된다. 제2 진행 추적 정보(1120)는 로컬 데이터베이스(450) 내에 진행 추적 정보(1150-2)로서 저장된다. 또한, 진행 추적 정보(1150-2)는, 동기화 메커니즘을 통해, 학생으로 범위가 한정된 원격 데이터베이스(460) 내의 진행 구역(465)에 업로드된다.
그러나, 제2 진행 애플리케이션(1010-2)으로부터 수신되고 제3 컨텍스트와 연관된 제3 진행 추적 정보(1130)는 데몬(440)에 의해 무시되며, 여기서 제3 컨텍스트는 활성 컨텍스트들의 목록(1170) 내에 포함되지 않는다. 유사하게, 제3 진행 애플리케이션(1010-3)으로부터 수신되고 제4 컨텍스트와 연관된 제4 진행 추적 정보(1140)는 또한 데몬(440)에 의해 무시되며, 여기서 제4 컨텍스트는 활성 컨텍스트들의 목록(1170) 내에 포함되지 않는다.
데몬(440)은 또한 암호화된 진행 추적 정보(1150)와 연관된 메타데이터(1160)를 생성한다. 메타데이터(1160)는 원격 데이터베이스(460) 내의 암호화된 진행 추적 정보(1150)에 대한 참조뿐만 아니라 진행 추적 정보와 연관된 컨텍스트에 대한 컨텍스트 식별자를 포함할 수 있다. 일부 실시예들에서, 메타데이터(1160)는 진행 파이프라인(250)에 의해 이용될 수 있는 추가 정보, 예컨대, 수업 식별자, 컨텍스트에 대응하는 유인물 식별자, 진행 추적 정보(1150)를 생성한 진행 애플리케이션(1010)에 대응하는 애플리케이션 식별자, 또는 클라이언트 디바이스(120) 상의 사용자 계정에 로그인한 사용자와 연관된 사용자 식별자를 포함한다. 결과적으로, 진행 파이프라인(250)은 PII를 포함할 수 있는 실제 진행 추적 정보를 프로세싱하지 않는다. 대신에, 진행 파이프라인(250)은 단지 진행 추적 정보와 연관된 메타데이터(1160)를 프로세싱하고, 실제 진행 추적 정보는 원격 데이터베이스(460)의 개인 진행 구역(465)에 암호화되고 저장된 상태로 유지된다.
다른 실시예들에서, 실제 진행 추적 정보는, 메타데이터(1160)보다는 진행 파이프라인(250)에 암호화되거나 암호화되지 않은 상태로 제공될 수 있다는 것이 이해될 것이다. 그러나, 이들 실시예는 진행 추적 정보에 포함된 PII에 대한 더 적은 보안을 제공할 수 있다.
활성 컨텍스트의 수신은 데몬(440)이 그 특정 컨텍스트에 관련된 진행을 추적하도록 암시적으로 인가한다는 것이 이해될 것이다. 일단 컨텍스트가 활성 컨텍스트 목록(1170)으로부터 제거되면, 암시적 인가가 철회되고, 따라서, 데몬은 그 컨텍스트와 연관된 진행을 추적하지 않는다.
도 12는 일부 실시예들에 따른 진행 파이프라인(250)을 도시한다. 진행 파이프라인(250)은 하나 이상의 서버 디바이스들(110) 상에서 구현된다. 일부 실시예들에서, 진행 파이프라인(250)의 각각의 컴포넌트는 상이한 서버 디바이스(110) 상에서 구현된다. 일부 경우들에서, 진행 파이프라인(250)의 특정 컴포넌트는 본 명세서에서 클러스터로 지칭될 수 있는 서버 노드들의 클러스터 상에서 구현된다.
도 12에 도시된 바와 같이, 진행 파이프라인(250)은 네트워크(150)를 통해 하나 이상의 클라이언트 디바이스들(120) 상에 포함된 데몬(들)(440)으로부터 진행 추적 메타데이터(1202)를 수신한다. 진행 파이프라인(250)은 네트워크 어드레스와 연관된 하나 이상의 서비스들로서 구현될 수 있다. 네트워크 어드레스로 전송된 메시지들은 대응하는 서비스에 의해 프로세싱된다.
일부 실시예들에서, 온-램프 서비스(1210)는 하나 이상의 데몬(들)(440)으로부터 진행 추적 메타데이터(1202)를 수신한다. 진행 추적 메타데이터(1202)는 특정 학생에 대한 진행 추적 정보(1150)에 관련된 정보를 포함한다. 일부 실시예들에서, 진행 추적 메타데이터(1202)는 클라이언트 애플리케이션(210)에 대한 사용자 계정과 연관된 사용자 식별자 및 진행 추적 정보(1150)와 대응하는 특정 컨텍스트에 대한 컨텍스트 식별자를 포함한다.
일부 실시예들에서, 온-램프 서비스(1210)는 특정 사용자에 대해 진행 추적이 인에이블되는지 여부를 확인하도록 구성된다. 학교 관리 서비스(240)를 통해 관리자는 주어진 학생에 대한 진행을 추적하기 위한 인가와 관련하여 특정 학생에 대한 선호도를 변경할 수 있다. 온-램프 서비스(1210)는 특정 클라이언트 디바이스(120)의 데몬(440)에서 상기 변경이 수신되기 전에 주어진 학생의 인가 선호도의 상태의 변경에 관한 통지를 수신할 수 있다. 결과적으로, 데몬(440)은, 전역적으로 학생이 진행 추적을 디스에이블한 후에도 주어진 학생에 대한 진행 추적 정보를 계속해서 수집할 수 있다. 따라서, 온-램프 서비스(1210)는 원격 데이터베이스(460)에 저장된 플래그들의 세트에 기초하여 진행 파이프라인(250)에 의해 수신된 진행 추적 메타데이터에 대한 게이트-키핑 기능(gate-keeping function)을 수행한다.
일부 실시예들에서, 명단 서비스는 학교 관리 서비스(240)를 사용하여 특정 학군 내의 각각의 학생에 대한 인가 플래그들의 세트를 주기적으로 풀링(pulling)하고, 인가 플래그들의 세트를, 조직으로 범위가 한정되는 원격 데이터베이스(460) 내의 인가 구역(465)에 저장하도록 구성된다. 이어서, 온-램프 서비스(1210)는 진행 추적 메타데이터(1202)에 포함된 사용자 식별자를 사용하여 수신된 진행 추적 메타데이터(1202)의 각각의 항목에 대한 인가 플래그들의 세트에 질의할 수 있다.
일부 실시예들에서, 온-램프 서비스(1210)는 아이덴티티 서비스(260)를 호출하고, 진행 추적 메타데이터(1202)에서 수신된 사용자 식별자를 사용하여 디렉토리 서비스 식별자를 요청한다. 디렉토리 서비스 식별자는 사용자 계정이 생성될 때 사용자 식별자와 연관된 것으로 등록될 수 있다. 디렉토리 서비스 식별자는 사용자 계정의 수명 동안 일정하며, 클라이언트 애플리케이션(210) 및/또는 데몬(440)이 디렉토리 서비스 식별자를 결코 수신하지 않도록 클라이언트-서버 아키텍처(200)의 서버 측 내에만 사용된다. 결과적으로, 데몬(440)과 진행 파이프라인(250) 사이의 트래픽을 스누핑(snooping)하는 임의의 사람은 하나 이상의 서버들에 저장된 소정 PII를 특정 사용자에 대한 식별자와 상관시키기 위해 디렉토리 서비스 식별자를 획득할 수 없다. 아이덴티티 서비스(260)는 디렉토리 서비스 식별자를 온-램프 서비스(1210)로 반환하며, 이는 진행 추적 메타데이터(1202)에 포함된 사용자 식별자를 역참조하고 사용자 식별자를 디렉토리 서비스 식별자로 대체한다. 일부 실시예들에서, 인가 플래그들의 세트는 사용자 계정에 대한 사용자 식별자들보다는 디렉토리 서비스 식별자들과 대응한다. 결과적으로, 사용자 식별자는 온-램프 서비스(1210)가 게이트-키핑 기능을 수행하기 전에 역참조된다. 일단 온-램프 서비스(1210)가 진행 추적 메타데이터(1202)를 프로세싱하는 것을 완료하면, 진행 추적 메타데이터(1202)는 큐(1215)로 송신된다.
다른 실시예들에서, 디렉토리 서비스 식별자 대신에 내부 식별자가 이용될 수 있다. 따라서, 진행 추적 메타데이터(1202)는 디렉토리 서비스 식별자보다는 내부 식별자를 사용하여 진행 파이프라인(250) 전체에 걸쳐 추적된다. 이것은, 진행 파이프라인(250)이 단순히 내부 식별자와 디렉토리 서비스 식별자 사이의 연관을 삭제함으로써 진행 추적 정보와 특정 사용자 사이의 모든 연관들을 절단할 수 있게 한다.
일부 실시예들에서, 큐(1215)는 서버 디바이스(110) 상에 구현되는 큐 서비스이다. 큐(1215)는 온-램프 서비스(1210)와 동일한 서버 디바이스(110) 또는 상이한 서버 디바이스(110) 내에서 구현될 수 있다. 일부 실시예들에서, 큐(1215)는 아파치 ® 카프카(Apache® Kafka) 분산 스트리밍 플랫폼과 같은 분산 스트리밍 서비스로서 구현된다. 큐(1215)는 온-램프 서비스(1210) 및 보강 서비스(1220)가 비동기적으로 실행될 수 있게 한다.
일부 실시예들에서, 보강 서비스(1220)는 하나 이상의 서버 디바이스들(110) 상에서 구현된다. 보강 서비스(1220)는 큐(1215)로부터 진행 추적 메타데이터(1202)를 수신하고, 추가 정보로 진행 추적 메타데이터(1202)를 보강하도록 구성된다. 일부 실시예들에서, 보강 서비스(1220)는 진행 추적 메타데이터(1202)에 포함된 디렉토리 서비스 식별자에 기초하여 학교 관리 서비스(240)로부터 명단 데이터를 요청한다. 명단 데이터는 학생이 등록된 임의의 수업들에 대한 하나 이상의 수업 식별자들뿐만 아니라 각각의 수업에 등록된 학생들에 대한 학생 식별자들의 목록을 포함할 수 있다. 학교 관리 서비스(240)는 원시 진행 추적 메타데이터(1202) 내에서 데몬(440)에 의해 제공된 사용자 식별자보다는 학생에 대한 디렉토리 서비스 식별자를 이용할 수 있다. 다른 실시예들에서, 사용자 식별자는 내부 식별자보다는 학교 관리 서비스(240)에 질의하는 데 이용될 수 있다.
보강 서비스(1220)는 또한 원격 데이터베이스(460) 내의 대응하는 구역(465)으로부터 특정 수업에 대한 모든 활성 유인물들을 검색할 수 있다. 명단 데이터 및 유인물들은, 진행 추적 메타데이터(1202)에 이미 포함되지 않은 경우 추가 정보를 진행 추적 메타데이터(1202)에 부가하기 위해, 진행 추적 메타데이터(1202)에 포함된 수업 식별자 및 디렉토리 서비스 식별자와 상호-참조된다. 일부 실시예들에서, 보강 서비스(1220)는, 진행 추적 메타데이터(1202)가 암호화된 진행 추적 정보(1150)에 대한 참조뿐만 아니라 조직 식별자, 수업 식별자, 유인물 식별자, 및 컨텍스트 식별자를 포함하도록 보장한다.
일부 실시예들에서, 진행 추적 메타데이터(1202)는 다수의 수업 식별자들 및/또는 다수의 유인물 식별자들과 연관될 수 있다. 예를 들어, 2개의 상이한 수업들로부터의 2명의 상이한 강사들이 동일한 컨텍스트를 참조하는 2개의 상이한 유인물들에서 특정 학생에 활동을 할당하는 경우, 학생은, 하나의 수업에 대한 활동을 완료할 때, 또한 동시에 다른 수업에 대한 동일한 활동을 완료하는 것으로 여겨질 것이다. 일단 보강 서비스(1220)가 진행 추적 메타데이터(1202)를 보강하면, 보강 서비스(1220)는 보강된 진행 추적 메타데이터(1202)를 큐(1225)로 송신한다.
일부 실시예들에서, 큐(1225)는 큐(1215)와 유사하다. 큐(1225)는 보강 서비스(1220)와 동일한 서버 디바이스(110) 또는 상이한 서버 디바이스(110) 내에서 구현될 수 있다.
일부 실시예들에서, 진행 추적 메타데이터(1202)는 큐(1225)로부터 팝핑되고(popped), 분산 파일 시스템(1230)에 저장된다. 일부 실시예들에서, 분산 파일 시스템(1230)은 서버 노드들의 클러스터 상에서 구현되는 바와 같은 아파치® 하둡(Apache® Hadoop) 분산 파일 시스템(HDFS)이다. 각각의 서버 노드는 데이터가 저장될 수 있는 저가의 디스크 드라이브들의 세트를 포함한다. 일부 이벤트들에서, 분산 파일 시스템(1230)은 분산 파일 시스템(1230)에 저장된 진행 추적 메타데이터(1202)에 대한 변화들을 추적하도록 구성된 적어도 하나의 저널 노드를 포함한다. 저널 노드는 서버 노드 충돌들의 경우에 진행 추적 메타데이터(1202)의 무결성을 보호한다.
각각의 조직에 대한 데이터가 특정 조직으로 범위가 한정된 별개이고 구별되는 원격 데이터베이스들(460)에 저장되더라도, 진행 파이프라인(250)은 다수의 조직들에 의해 이용될 수 있다는 것이 이해될 것이다. 결과적으로, 분산 파일 시스템(1230)은 하나 이상의 조직들에 대한 다량의 진행 추적 메타데이터(1202)를 저장하고 있다. 집계기 서비스(1240)는 모든 진행 추적 메타데이터(1202)를 자세히 살펴보고, 조직에 의해 추적 윈도우 동안 수신된 진행 추적 메타데이터(1202)를 조직화하도록 설계된다. 일부 실시예들에서, 집계기 서비스(1240)는 대규모 데이터세트들을 프로세싱하기 위한 계산 서비스이다. 예를 들어, 집계기 서비스(1240)는 서버 노드들의 클러스터 상에서 구현되는 아파치® 스파크(Apache® Spark) 서비스로서 구현될 수 있지만, 이에 제한되지 않는다. 이어서, 진행 추적 메타데이터(1202)는 집계기 서비스(1240)에 의해 생성된 하나 이상의 스파크 잡(spark job)들에서 프로세싱된다.
일부 실시예들에서, 추적 윈도우는, 예컨대, 수 분 또는 시간일 수 있다. 예를 들어, 집계기 서비스(1240)는 10분 윈도우에 걸쳐 분산 파일 시스템(1230)에서 수신된 진행 추적 메타데이터(1202)를 분류할 수 있다. 일부 실시예들에서, 집계기 서비스(1240)는 추적 윈도우에 기초하여 설정된 타이머의 만료 시에 루틴을 실행하도록 구성된다. 일단 루틴이 실행되면, 타이머는 다음 추적 윈도우의 만료를 기다리도록 리셋된다.
일부 실시예들에서, 집계기 서비스(1240)는 분산 파일 시스템(1230)의 저널 노드(들)를 참고하여, 추적 윈도우 동안 분산 파일 시스템(1230)에 저장된 모든 진행 추적 메타데이터(1202)에 관련된 정보를 수집한다. 저널 노드는 분산 파일 시스템(1230)에 대한 변화들을 추적하고, 이전의 추적 윈도우에 걸쳐 분산 파일 시스템(1230)에 저장된 모든 진행 추적 메타데이터(1202)의 목록를 반환할 수 있다. 집계기 서비스(1240)는 추적 윈도우 동안 수신된 진행 추적 메타데이터(1202)를 풀링하고, 추적 윈도우 동안 진행 추적 메타데이터(1202)를 진행 파이프라인(250)에 제출하는 하나 이상의 조직들 내의 각각의 조직에 대한 데이터 구조들을 생성하도록 구성된다. 데이터 구조들은 본 명세서에서 큐브들로서 지칭될 수 있다.
일부 실시예들에서, 집계기 서비스(1240)는 단일 조직으로 범위가 한정된 별개이고 구별되는 큐브를 생성한다. 특정 조직 식별자에 대응하는 모든 진행 추적 메타데이터(1202)는 대응하는 큐브로 분류된다. 주어진 큐브에 저장된 진행 추적 메타데이터(1202)는 수업 식별자, 유인물 식별자, 컨텍스트 식별자, 및 학생 식별자(예컨대, 사용자 식별자, 디렉토리 서비스 식별자 등)에 의해 분류될 수 있다.
일부 실시예들에서, 큐브들은 블록 저장소(1250)에 저장된다. 일부 실시예들에서, 블록 저장소(1250)는 집계기 서비스(1240)를 구현하는 서버 디바이스(110)에 포함된 HDD일 수 있다. 다른 실시예들에서, 블록 저장소(1250)는 하나 이상의 서버 디바이스들(110)에 포함된 하나 이상의 물리적 저장 디바이스들의 세트 상에 구현된 가상 블록 저장 디바이스일 수 있다. 다른 실시예들에서, 블록 저장소(1250)는 서버 노드들의 클러스터 상에서 구현되는 아파치® 카산드라(Apache® Cassandra)와 같은 분산 데이터 서비스에 의해 대체될 수 있다. 또 다른 실시예들에서, 블록 저장소(1250)는 전술된 분산 파일 시스템(1230)과 유사한 분산 파일 시스템에 의해 대체될 수 있다.
집계기 서비스(1240)는 하나 이상의 대응하는 조직들에 대한 추적 윈도우 동안 수신된 진행 추적 메타데이터(1202)를 포함하는 하나 이상의 큐브들을 생성한다. 집계기 서비스(1240)는 각각의 큐브에 대한 참조를 큐(1245)에 추가한다. 일부 실시예들에서, 큐(1245)는 큐들(1215, 1225)과 유사하고, 오프-램프 서비스(1260)가 집계기 서비스(1240)와 비동기적으로 동작할 수 있게 한다.
일부 실시예들에서, 오프-램프 서비스(1260)는 각각의 큐브 기준이 큐(1245)로부터 팝핑됨에 따라 큐브들을 프로세싱하도록 구성된다. 일부 실시예들에서, 오프-램프 서비스(1260)는 단지 블록 저장소(1250) 내의 주어진 큐브에 저장된 진행 추적 메타데이터(1202)를 판독하고, 수업 식별자, 컨텍스트 식별자, 및/또는 진행 추적 메타데이터(1202)에 포함된 디렉토리 서비스 식별자/사용자 식별자에 기초하여 특정 수업, 컨텍스트, 및 선택적으로 학생으로 범위가 한정된 원격 데이터베이스(460) 내의 특정 구역(465)에 각각의 진행 추적 메타데이터(1202) 엔트리를 기입하도록 구성된다. 결과적으로, 오프-램프 서비스(1260)는 진행 추적 메타데이터(1202)를 큐브들보다 더 작은 입도로 분류한다.
다른 실시예들에서, 오프-램프 서비스(1260)는 진행 파이프라인(250)에서 이전 서비스들에 의해 이용된 디렉토리 서비스 아이덴티티를 대체함으로써 진행 추적 메타데이터(1202)를 역참조하고, 디렉토리 서비스 식별자를 진행 식별자로 대체한다. 진행 식별자는 아이덴티티 서비스(260) 내의 디렉토리 서비스 식별자와 연관될 수 있지만; 진행 식별자는 진행 추적 데이터(1150)와 특정 사용자 사이의 임의의 접속을 중단하기 위해 디렉토리 서비스 식별자로부터 연관해제될 수 있다. 일부 실시예들에서, 진행 식별자는 사용자가 진행 추적을 동의하지 않는 것(예컨대, 전역적으로 진행 추적을 디스에이블함)에 응답하여 폐기된다. 예를 들어, 조직에 대한 관리자는 학교 관리 서비스(240)를 사용하여 특정 학생들, 수업들, 학교들, 및/또는 전체 학군에 대한 진행 추적을 디스에이블할 수 있다. 이러한 변화들은 아이덴티티 서비스(260)로 하여금, 진행 추적을 디스에이블한 학생들에 대한 디렉토리 서비스 식별자들로부터 진행 식별자들을 연관해제하게 할 수 있다. 진행 추적 정보가 여전히 원격 데이터베이스(460) 내에 존재할 수 있지만, 진행 추적 정보는 일단 진행 식별자들과 디렉토리 서비스 식별자들 사이의 연관이 끊어지면 특정 학생과 상관될 수 없다.
일단 오프-램프 서비스(1260)가 진행 추적 메타데이터(1202)를 프로세싱하는 것을 완료하면, 진행 추적 메타데이터(1202)는 디파짓 서비스(1270)로 송신된다. 일부 실시예들에서, 디파짓 서비스(1270)는 적어도 하나의 서버 디바이스(110) 상에 구현된다. 디파짓 서비스(1270)는 진행 추적 메타데이터(1202) 엔트리에 의해 암호화된 진행 추적 정보(1150) 참조를 풀링하고, 진행 추적 정보(1150)를 진행 저장소(1280)에 저장하도록 구성된다. 일부 실시예들에서, 진행 저장소(1280)는 네트워크-기반 저장 서비스이다. 진행 추적 정보(1150)는 특정 수업 식별자, 컨텍스트 식별자, 진행 식별자, 및 (선택적으로) 유인물 식별자로 범위가 한정된, 구역들(465)과 유사한 구역들 내에 저장된다.
일부 실시예들에서, 진행 저장소(1280)는 원격 데이터베이스(460)와 별개이고 구별되며, 클라이언트-서버 아키텍처(200)의 서버 측 상에만 액세스될 수 있다. 따라서, 데몬(440)은 진행 파이프라인(250)에 의해 아카이브된(archived) 진행 추적 정보(1150)에 대한 직접 가시성을 갖지 않는다. 다른 실시예들에서, 진행 저장소(1280)는 원격 데이터베이스(460) 내의 새로운 구역들(465)에서 구현될 수 있고, 보고서 서비스(270)를 사용하여 클라이언트 디바이스들(120)에 동기화될 수 있다.
명시적으로 도시되지는 않았지만, 진행 파이프라인(250) 내의 다양한 서비스들은 프로세싱 동안 소정 문제들에 직면하게 되는 경우 서비스에 의해 프로세싱되는 특정 진행 추적 메타데이터(1202)를 재활용하도록 구성될 수 있다. 일부 실시예들에서, 재시도 큐는 각각의 서비스와 연관되고, 진행 추적 메타데이터(1202)는 나중에 프로세싱하기 위해 재시도 큐 내에 푸시될 수 있다. 예를 들어, 아이덴티티 서비스(260)와 같은 서비스는 진행 파이프라인(250)이 특정 동작을 완료하는 것을 방지하는 다운타임(downtime)을 경험하고 있을 수 있다. 그러한 경우들에서, 서비스에 의해 프로세싱되는 데이터는 다운 서비스가 이용가능할 때 나중에 프로세싱를 시도하기 위해 재시도 큐에 저장될 수 있다. 대안적으로, 서비스는 진행 추적 메타데이터(1202)를 서비스의 입력과 인터페이싱되는 큐 내로 다시 추가하도록 간단하게 구성될 수 있다. 예를 들어, 보강 서비스(1220)는 추후에 프로세싱되도록 큐(1215) 상으로 진행 추적 메타데이터(1202)를 다시 푸시하도록 구성될 수 있다.
이어서, 보고서 서비스(270)는 클라이언트 애플리케이션(210) 및/또는 데몬(440)에 제공되는 보고서 데이터를 생성하기 위한 클라이언트 애플리케이션(210) 및/또는 데몬(440)으로부터의 요청에 응답하여 진행 저장소(1280)로부터 진행 추적 정보(1204)를 풀링할 수 있다.
도 13은 일부 실시예들에 따른, 보고서 서비스(270)와 클라이언트 애플리케이션(210) 및/또는 데몬(440) 사이의 클라이언트-서버 관계를 도시한다. 클라이언트 디바이스(120)에 포함된 클라이언트 애플리케이션(210) 및/또는 데몬(440)은 서버 디바이스(110) 내의 보고서 서비스(270)와 인터페이싱한다. 유인물이 학생들의 수업에 할당된 후, 강사는 과제를 완료하는 학생들의 진행을 추적하기를 원할 수 있다. 보다 구체적으로, 클라이언트 애플리케이션(210) 내의 GUI는 특정 유인물에 관련된 진행 추적 정보의 표현을 디스플레이할 수 있다. 첨부물들, 제출물들 및/또는 활동들 각각은 학생들 각각에 대한 완료의 진행에 관련된 정보와 함께 디스플레이될 수 있다.
일부 실시예들에서, 클라이언트 애플리케이션(210)은 클라이언트 디바이스(120)의 디스플레이(302) 상에 유인물의 표현을 디스플레이하기 위한 입력을 수신한다. 입력에 응답하여, 클라이언트 애플리케이션(210)은 보고서 서비스(270)로부터 보고서를 요청한다. 본 명세서에 사용되는 바와 같이, 보고서는 진행 저장소(1280)로부터 풀링된 진행 추적 정보(1204)로부터 도출된 보고서 데이터를 포함하는 파일 또는 데이터 구조를 지칭할 수 있다.
일부 실시예들에서, 보고서 서비스(270)는 클라이언트 애플리케이션(210)으로부터 보고서에 대한 요청을 수신한다. 요청은 수업 식별자, 컨텍스트 식별자, 사용자 식별자, 및 (선택적으로) 유인물 식별자를 포함할 수 있다. 보고서 서비스(270)는 아이덴티티 서비스(260)를 이용하여 사용자 식별자에 대응하는 진행 식별자를 찾을 수 있고, 이어서, 수업 식별자, 컨텍스트 식별자, 진행 식별자, 및 (선택적으로) 유인물 식별자에 대응하는 진행 추적 정보(1204)를 검색하기 위해 진행 저장소(1280)에 질의할 수 있다.
또한, 요청은 요청과 연관된 시간 프레임을 특정할 수 있다. 예를 들어, 요청은, 질의가 진행 추적 정보를 유인물에 대한 마감일 이전의 시간, 유인물에 대한 마감일 이후의 시간, 또는 유인물에 대한 마감 일자를 포함하는 마감 일자까지의 시간으로 진행 추적 정보를 제한해야 하는지 여부를 특정할 수 있다. 본 명세서에 사용되는 바와 같이, 마감 일자는, 유인물에 첨부된 컨텍스트가 비활성화되어, 다른 유인물이 상기 컨텍스트를 포함하는 학생에 할당되지 않는 한 마감 일자 후에 그 컨텍스트에 관련된 추가 진행 추적을 차단할 수 있는 시간을 지칭할 수 있다. 결과적으로, 보고서 서비스(270)는 특정 수업 내의 학생에 대응하는 그리고 특정 유인물에서 할당된 특정 컨텍스트에 대한 진행 추적 정보(1204)의 세트를 생성한다.
일부 실시예들에서, 데몬(440)은 수업에 대한 진행 추적 정보(1204)를 집계하여, 보고서 데이터에 기초하여 수업에 대한 다양한 통계치를 계산한다. 예를 들어, 데몬(440)은 수업 내의 학생들의 총 수, 및 제출물 또는 활동을 완료한 학생들의 총 수를 계산할 수 있다. 데몬(440)은 또한 상이한 진행 추적 정보(1204)와 연관된 타임 스탬프들을 사용하여, 각각의 학생이 제출물 또는 활동을 완료하기 위한 총 시간을 계산할 수 있다(예컨대, 특정 활동 또는 제출물에 대한 모든 진행 추적 정보에 대한 제1 타임스탬프와 마지막 타임스탬프 사이의 차이를 계산함으로써). 다른 예로서, 데몬(440)은 퀴즈 또는 문제 세트에 제공된 정확한/부정확한 응답들에 기초하여 각각의 학생에 대한 점수들을 계산할 수 있다. 데몬(440)은 통과 점수들 대 낙제 점수들의 비율, 통과 점수들을 갖는 학생들의 수 대 수업 내 총 학생들 또는 낙제 점수들을 갖는 학생들의 수의 비율, 수업에 대한 평균 점수, 수업에 대한 최소 점수 및 최대 점수, 점수들의 집합의 중앙값 점수 및 표준 분포, 문자 등급들에 맵핑되는 점수들의 분포(예컨대, A 점수들의 수, B 점수들의 수 등), 및 점수들 및/또는 진행 추적 정보(1204)에 관련된 임의의 다른 관련 통계치들을 계산할 수 있다.
일부 실시예들에서, 학생은 특정 활동을 완료하기 위한 다수의 시도들을 할 수 있다. 예를 들어, 학생은 여러 번 퀴즈를 볼 수 있다. 그러한 실시예들에서, 보고서에 대한 요청은 보고서 데이터가 학생에 의해 완료된 각각의 시도에 대한 진행 추적 정보(1204)를 포함해야 하는지 또는 학생에 의해 완료된 마지막 시도에 대한 진행 추적 정보(1204)만을 포함해야 하는지를 특정할 수 있다. 진행 추적 정보가 다수의 시도들에 대한 데이터를 포함하는 경우, 데몬(440)은 평균 점수, 모든 시도들의 최고 점수, 통과 시도들 대 낙제 시도들의 비율 등과 같은 다수의 시도들에 관련된 통계치를 계산하도록 구성될 수 있다.
일부 실시예들에서, 데몬(440)은 또한, 예를 들어, 진행 추적 정보와 연관된 사용자 식별자를 학생 이름과 상관시키기 위해 원격 데이터베이스(460) 내의 명단 구역(465)으로부터 명단 정보를 다운로드하도록 구성될 수 있다.
다른 실시예들에서, 클라이언트 애플리케이션(210)은 진행 추적 정보(1204)를 집계하고/하거나 로컬 데이터베이스(450) 내의 진행 추적 정보(1204)에 관련된 통계치를 계산하는 기능을 수행하도록 구성된다. 데몬(440)은 단지 클라이언트 애플리케이션(210)이 진행 추적 정보(1204)에 액세스할 수 있게 하기 위해 원격 데이터베이스(460) 내의 구역(465)으로부터 로컬 데이터베이스(450)로 진행 추적 정보(1204)를 다운로드하는 것을 용이하게 한다. 이어서, 클라이언트 애플리케이션(210)은 강사에 제시되는 GUI의 필드들에 채우기 위한 값들을 생성하기 위해 진행 추적 정보(1204)를 사용하여 임의의 필요한 분석을 수행하도록 구성된다.
도 14a 및 도 14b는 일부 실시예들에 따른, 클라이언트 애플리케이션(210)의 GUI(1400)를 도시한다. GUI(1400)는 할당된 유인물에 관련된 보고서 데이터를 강사에 제시하는 데 사용될 수 있다. GUI(1400)는 클라이언트 디바이스(120)의 디스플레이(302) 상에서 제시될 수 있다. 도 14a에 도시된 바와 같이, GUI(1400)는 클라이언트 디바이스(120-2)와 같은 태블릿 컴퓨터 상에 디스플레이된다. GUI(1400)는 그래픽, 텍스트, 아이콘, 형상, 입력 필드, 디스플레이 영역 등을 포함하는 다수의 요소들을 포함할 수 있다. 일부 실시예들에서, GUI(1400)는 강사가 GUI(300) 내의 할당된 유인물에 대한 요소(312)를 선택하는 것에 응답하여 디스플레이된다.
GUI(1400)는 제1 디스플레이 영역(1410) 및 제2 디스플레이 영역(1420)을 포함한다. 제1 디스플레이 영역(1410)은 유인물에 포함된 정보, 예컨대 유인물의 제목, 유인물에 대한 마감일, 유인물이 할당된 수업의 표시, 및 강사에 의해 유인물에 포함된 지시들을 제시한다. 제2 디스플레이 영역(1420)은 강사에 의해 유인물에 첨부된 임의의 제출물들 및/또는 활동들에 관련된 정보를 제시한다.
유인물에 첨부되고 제2 디스플레이 영역(1420)에 제시된 각각의 제출물 또는 활동은 또한 제출물 또는 활동에 관련된 보고서 데이터와 함께 제시될 수 있다. 보고서 데이터는 하나 이상의 요소들(1422) 내에 디스플레이될 수 있다. 예를 들어, 도 14a에 도시된 바와 같이, 애플리케이션 2와 연관된 활동은: 활동을 완료한 학생들에 대한 통과 점수들 대 낙제 점수들의 비율을 디스플레이하는 제1 요소(1422-1); 학생들이 활동을 완료하기 위한 평균 시간을 디스플레이하는 제2 요소(1422-2); 및 활동을 완료한 학생들의 수 대 수업 내의 학생들의 총 수의 비율을 디스플레이하는 제3 요소(1422-3)를 포함한다.
또한, 강사가 보고서 데이터에 관련된 더 상세한 정보를 볼 수 있게 하는 아이콘(1424)은 제출물 또는 활동에 근접하게 제시된다. 도 14b에 도시된 바와 같이, 아이콘(1424)을 선택하는 것은 GUI(1400)로 하여금 제출물 또는 활동에 근접하게 제2 디스플레이 영역(1420)에 상세한 정보를 디스플레이하도록 업데이트되게 할 수 있다. 제2 디스플레이 영역(1420)은 제1 디스플레이 영역(1410) 및 제2 디스플레이 영역(1420) 둘 모두에 의해 이전에 커버된 디스플레이(302) 내의 픽셀들을 커버하도록 자동으로 조정될 수 있다는 것이 이해될 것이다. 물론, 제2 디스플레이 영역(1420)의 범위들은 도 14a에서와 동일하게 유지될 수 있거나, 디스플레이(302)의 픽셀들에 대해 위 또는 아래로 제1 디스플레이 영역(1410) 및/또는 제2 디스플레이 영역(1420)을 재위치시키는 터치 입력 제스처에 응답하여 수동으로 업데이트될 수 있다. 예를 들어, 스와이프 제스처는 제1 디스플레이 영역(1410) 및/또는 제2 디스플레이 영역(1420)을 위로 또는 아래로 스크롤하는 데 이용될 수 있다.
도 14b에 도시된 바와 같이, 수업에 등록된 각각의 개별 학생에 관련된 보고서 데이터는 GUI(1400)에 제시될 수 있다. 예를 들어, 상세한 정보의 엔트리(1426)는 학생 이름, 학생이 활동을 통과했는지 또는 낙제했는지 여부, 완료된다면 각각의 학생이 제3자 애플리케이션에서 활동을 완료하기 위한 시간, 및 활동이 완료되었는지 여부의 표시를 포함한다. 도 14b에 도시된 정보는 GUI(1400)에 제시될 수 있는 상세한 정보의 유형의 단지 일례일 뿐이라는 것이 이해될 것이다. 다른 실시예들에서, 상세한 정보는 다른 유형들의 통계치들 또는 원시 진행 추적 정보(예를 들어, 행동이 데몬(440)에 의해 수신된 시간 및 행동에 관련된 정보를 갖는, 데몬(440)에 의해 추적된 각각의 행동의 내역)를 포함할 수 있다. 또 다른 실시예들에서, 상세한 정보는 보고서 데이터의 그래픽 표현들, 예컨대 시간에 걸쳐 학생의 진행을 보여주는 그래프들 또는 차트들, 학생에 의해 제출된 문제들의 세트에 대한 답변들로의 링크, 제출물 또는 학생에 의해 수행된 활동의 기록으로의 링크들 등을 포함할 수 있다.
일부 실시예들에서, 상세한 정보는 특정 컨텍스트의 서브섹션들에 대한 진행 추적 정보의 상세한 내역을 제시할 수 있다. 예를 들어, 컨텍스트는 학생에게 할당된 문제들의 세트의 구조를 설명할 수 있다. 진행 추적 정보는 학생이 문제들의 세트 내의 각각의 문제에 제공한 답변에 관련된 정보를 포함할 수 있다. 따라서, 문제들의 세트에 대한 답변들이 부모 컨텍스트로 간주되더라도, 문제들의 세트 내의 각각의 문제에 대한 자식 컨텍스트들은 학생에 의해 제공되는 각각의 개별 질문에 대한 답변들을 추적할 수 있다. 따라서, 상세한 정보는 강사가 각각의 문제에 주어진 특정 답변들 및 답변이 정확했는지 부정확했는지 여부를 보게 할 수 있다. GUI(1400)는 진행 추적 데이터의 그러한 시각적 표현들이 강사에 의해 용이하게 보여지게 할 수 있다.
일부 실시예들에서, 클라이언트 애플리케이션(210)은, 수업 내의 각각의 학생에 대한 최종 성적들을 결정할 때 예컨대 강사 및 또는 관리자에 의한 후속 검토를 위해 아카이브될 파일 또는 데이터 구조로 보고서 데이터의 결과를 출력할 수 있다.
도 15는 일부 실시예들에 따른, 클라이언트 디바이스 상에서 학생 활동을 추적하기 위한 방법(1500)의 흐름도이다. 방법(1500)은 클라이언트 디바이스(120)에 의해 수행된다. 일부 실시예들에서, 방법(1500)은 하나 이상의 애플리케이션들과 연관된 활동을 모니터링하도록 구성된 로직으로서 구현될 수 있다. 로직은 유인물에 대한 리소스에 첨부된 활동들을 완료하기 위한 학생에 대한 진행을 모니터링하기 위한, 클라이언트 디바이스(120)의 프로세서(410)에 의해 실행되는 명령어들을 포함할 수 있다. 일부 실시예들에서, 방법(1500)은 데몬(440)에 의해 구현되는 로직 내에서 구현된다.
1502에서, 진행 추적 정보가 하나 이상의 애플리케이션들로부터 수신된다. 일부 실시예들에서, 진행 추적 정보는 진행 추적 정보를 생성한 애플리케이션에 대응하는 애플리케이션 식별자, 애플리케이션과 연관된 특정 컨텍스트에 대응하는 컨텍스트 식별자, 진행 추적 정보가 생성된 시간을 나타내는 타임 스탬프, 또는 애플리케이션 내에서 수행된 동작 및/또는 동작의 결과를 나타내는 정보 중 적어도 하나를 포함한다. 일부 실시예들에서, 진행 추적 정보는 애플리케이션에 의해 생성된 API 호출 내에서 데몬에 의해 수신된다.
1504에서, 진행 추적 정보가 필터링된다. 일부 실시예들에서, 진행 추적 정보는 클라이언트 디바이스 상에 설치된 하나 이상의 애플리케이션들 각각에 대해 진행 추적이 인에이블되는지 또는 디스에이블되는지 여부의 결정에 기초하여 필터링된다. 진행 추적 정보는 진행 추적 정보가 진행 추적이 디스에이블되는 임의의 애플리케이션들로부터 수신될 때 폐기되고, 진행 추적 정보는 진행 추적 정보가 진행 추적이 인에이블되는 임의의 애플리케이션들로부터 수신될 때 프로세싱된다. 다른 실시예들에서, 하나 이상의 애플리케이션들과 연관된 활성 컨텍스트들의 목록이 수신되고, 진행 추적 정보는 활성 컨텍스트들의 목록과 비교된다. 예를 들어, 진행 추적 정보에 포함된 컨텍스트 식별자는 활성 컨텍스트들의 목록 내에 포함된 다수의 컨텍스트 식별자들과 비교된다. 진행 추적 정보는 진행 추적 정보가 활성 컨텍스트들의 목록에 포함되지 않는 컨텍스트에 대응할 때 폐기되고, 진행 추적 정보는 진행 추적 정보가 활성 컨텍스트들의 목록에 포함되는 컨텍스트과 대응할 때 프로세싱된다.
1506에서, 진행 추적 정보는 네트워크로부터 액세스가능한 원격 데이터베이스에 저장된다. 일부 실시예들에서, 원격 데이터베이스는 특정 범위로 한정되는 상이한 유형들의 데이터를 저장하기 위해 상이한 구역들을 이용하는 네트워크-기반 저장 서비스이다. 진행 추적 정보를 저장하는 각각의 구역은 디스크-기반 암호화로 보호될 수 있고, 데이터에 대한 액세스는 인증 및 메시지 서명 기술들을 사용하는 신뢰된 서버들로 제한될 수 있다. 진행 추적 정보는 네트워크-기반 저장 서비스 내의 개인 구역에 저장될 수 있고, 개인 구역은 클라이언트 디바이스 상에 설치된 클라이언트 애플리케이션과 연관된 사용자 계정에 대한 특정 사용자 식별자와 연관된다.
1508에서, 진행 추적 정보와 연관된 메타데이터가 생성된다. 메타데이터는 원격 데이터베이스(460)에 저장된 진행 추적 정보에 대한 참조와 같은 정보뿐만 아니라 사용자 식별자 및/또는 컨텍스트 식별자와 같은 진행 추적 정보 내의 정보의 서브세트를 포함할 수 있다.
1510에서, 진행 추적 정보에 대한 메타데이터는 진행 파이프라인으로 송신된다. 일부 실시예들에서, 진행 파이프라인은 하나 이상의 조직들 중 하나 이상의 수업들에서 복수의 상이한 학생들과 연관된 복수의 상이한 클라이언트 디바이스들로부터 수신된 진행 추적 정보를 향상시키고 집계한다. 진행 파이프라인은 다수의 상이한 서버 디바이스들 상에서 구현되는 다수의 서비스들을 포함할 수 있다.
도 16은 일부 실시예들에 따른, 네트워크를 통해 이용가능한 하나 이상의 서비스들을 이용하여 진행 추적 정보를 프로세싱하기 위한 방법(1600)의 흐름도이다. 방법(1600)은 진행 파이프라인(250)에 의해 수행된다. 일부 실시예들에서, 방법(1600)은 진행 추적 정보 또는 진행 추적 정보에 대응하는 메타데이터 중 적어도 하나를 프로세싱하도록 구성된 로직으로서 구현될 수 있다. 로직은 진행 추적 정보 및/또는 메타데이터를 프로세싱하기 위한, 서버 디바이스(110)의 프로세서(410)에 의해 실행되는 명령어들을 포함할 수 있다. 일부 실시예들에서, 방법(1600)은 온-램프 서비스(1210), 보강 서비스(1220), 분산 파일 시스템(1230), 집계기 서비스(1240), 오프-램프 서비스(1260), 및 디파짓 서비스(1270)를 포함하는 하나 이상의 서비스들에 의해 구현되는 로직 내에서 구현된다.
1602에서, 진행 추적 정보에 대응하는 메타데이터가 복수의 클라이언트 디바이스들로부터 수신된다. 일부 실시예들에서, 메타데이터는 원격 데이터베이스에 저장된 진행 추적 정보에 대한 참조를 포함할 수 있다. 메타데이터는 또한 수업 식별자, 사용자 식별자, 또는 진행 추적 정보에 대응하는 컨텍스트 식별자 중 적어도 하나를 포함할 수 있다.
1604에서, 메타데이터는 추가 정보로 보강된다. 일부 실시예들에서, 추가 데이터에 의해 보완되는 메타데이터는 진행 추적 정보를 조직 식별자, 수업 식별자, 디렉토리 서비스 식별자, 컨텍스트 식별자, 및 선택적으로 유인물 식별자와 상관시킨다.
1606에서, 특정 조직에 대한 추적 윈도우 동안 진행 파이프라인에 의해 수신된 메타데이터의 서브세트를 포함하는 데이터 구조가 생성된다. 일부 실시예들에서, 분산 파일 시스템은 적어도 하나의 저널 노드를 이용하며, 이는 추적 윈도우 동안 수신된 메타데이터 모두가 분산 파일 시스템으로부터 검색될 수 있게 한다. 서비스는 메타데이터를, 추적 윈도우 동안 메타데이터를 진행 파이프라인으로 제출한 하나 이상의 조직들 각각에 대응하는 상이한 데이터 구조들로 분류한다.
1608에서, 데이터 구조는 수업 식별자 및/또는 컨텍스트 식별자에 기초하여 분류된 메타데이터를 생성하기 위해 프로세싱된다. 분류는 또한 디렉토리 서비스 식별자 또는 내부 식별자에 기초할 수 있다. 1608에서의 동작은 하나 이상의 조직들에 대해 생성된 각각의 데이터 구조에 대해 수행될 수 있다.
1610에서, 분류된 메타데이터에 대응하는 진행 추적 정보가 원격 데이터베이스로부터 검색된다. 메타데이터에 포함된 참조들은 원격 데이터베이스로부터 진행 추적 정보를 요청하는 데 이용될 수 있다.
1612에서, 진행 추적 정보는 보고서 서비스에 의해 액세스가능한 메모리에 저장된다. 일부 실시예들에서, 진행 추적 정보는 디렉토리 서비스 식별자 또는 내부 식별자로부터 역참조되고, 진행 식별자는 진행 추적 정보와 연관된 메타데이터에서 디렉토리 서비스 식별자 또는 내부 식별자를 대체한다. 진행 식별자 및 진행 추적 정보는 보고서 서비스에 의해 액세스가능한 네트워크-기반 저장 서비스에 저장될 수 있다. 네트워크-기반 저장 서비스는, 보고서 서비스를 통해 간접적으로를 제외하고는 클라이언트 디바이스에 의해 액세스가능하지 않을 수 있다.
도 17은 일부 실시예들에 따른, 본 명세서에 설명된 다양한 장치 및/또는 방법들을 구현하는 데 사용될 수 있는 예시적인 컴퓨팅 디바이스(1700)의 상세도를 도시한다. 특히, 상세도는 도 1 내지 도 14에 도시되고/되거나 본 명세서에 설명된 컴퓨팅 디바이스들에 포함될 수 있는 다양한 컴포넌트들을 도시한다. 예를 들어, 서버 디바이스들(들)(110), 클라이언트 디바이스(들)(120), 또는 임의의 네트워크 디바이스들 및/또는 소비자 전자장치들을 포함하는 임의의 다른 디바이스 중 하나 이상은 컴퓨팅 디바이스(1700)의 컴포넌트들을 포함할 수 있다.
도 17에 도시된 바와 같이, 컴퓨팅 디바이스(1700)는 컴퓨팅 디바이스(1700)의 전반적인 동작을 제어하기 위한 마이크로프로세서 또는 제어기를 나타내는 프로세서(1702)를 포함할 수 있다. 컴퓨팅 디바이스(1700)는 또한 컴퓨팅 디바이스(1700)의 사용자가 컴퓨팅 디바이스(1700)와 상호작용할 수 있게 하는 사용자 입력 디바이스(1708)를 포함할 수 있다. 예를 들어, 사용자 입력 디바이스(1708)는 버튼, 키패드, 다이얼, 터치 스크린, 오디오 입력 인터페이스, 시각/이미지 캡처 입력 인터페이스, 센서 데이터 형태의 입력 등과 같은 다양한 형태를 취할 수 있다. 게다가, 컴퓨팅 디바이스(1700)는 사용자에게 시각적 정보를 제시하도록 프로세서(1702)에 의해 제어될 수 있는 디스플레이(1710)(스크린 디스플레이)를 포함할 수 있다. 데이터 버스(1716)는 적어도 저장 디바이스(1740), 프로세서(1702), 및 제어기(1713) 사이의 데이터 전달을 용이하게 할 수 있다. 제어기(1713)는 장비 제어 버스(1714)를 통해 상이한 장비와 인터페이싱하고 그를 제어하는데 사용될 수 있다. 컴퓨팅 디바이스(1700)는 또한 데이터 링크(1712)에 결합되는 네트워크/버스 인터페이스(1711)를 포함할 수 있다. 무선 접속의 경우, 네트워크/버스 인터페이스(1711)는 무선 송수신기를 포함할 수 있다.
컴퓨팅 디바이스(1700)는 또한 단일의 디스크 또는 복수의 디스크들(예컨대, 하드 드라이브들)을 포함할 수 있는 저장 디바이스(1740)를 포함하고, 저장 디바이스(1740) 내의 하나 이상의 파티션들을 관리하는 저장 관리 모듈을 포함한다. 일부 실시예들에서, 저장 디바이스(1740)는 플래시 메모리, 반도체 (솔리드 스테이트) 메모리 등을 포함할 수 있다. 컴퓨팅 디바이스(1700)는 또한, 랜덤 액세스 메모리(RAM)(1720) 및 판독 전용 메모리(ROM)(1722)를 포함할 수 있다. ROM(1722)은 실행될 프로그램들, 유틸리티들 또는 프로세스들을 비휘발성 방식으로 저장할 수 있다. RAM(1720)은 휘발성 데이터 저장소를 제공할 수 있고, 컴퓨팅 디바이스(1700)의 동작에 관련된 명령어들을 저장한다.
전술된 바와 같이, 본 기술의 일 양태는 과제들을 완료할 때 학생들의 진행을 추적하기 위한 다양한 소스들로부터 입수가능한 데이터의 수집 및 사용이다. 본 개시내용은, 일부 경우들에 있어서, 이러한 수집된 데이터가 특정 개인을 고유하게 식별하거나 또는 그와 연락하거나 그의 위치를 확인하는 데 이용될 수 있는 개인 정보 데이터를 포함할 수 있음을 고려한다. 그러한 개인 정보 데이터는 인구통계 데이터, 위치-기반 데이터, 전화 번호들, 이메일 주소들, 트위터 ID들, 집 주소들, 사용자의 건강 또는 피트니스 레벨에 관한 데이터 또는 기록들(예컨대, 바이탈 사인(vital sign) 측정치들, 약물 정보, 운동 정보), 생년월일, 또는 임의의 다른 식별 또는 개인 정보를 포함할 수 있다.
본 개시내용은 본 기술에서의 그러한 개인 정보 데이터의 이용이 사용자들에게 이득을 주기 위해 사용될 수 있음을 인식한다. 예를 들어, 개인 정보 데이터는 학교에 다니는 개인들의 교육 경험을 향상시키는 데 사용될 수 있다. 따라서, 그러한 개인 정보 데이터의 사용은 강사들이 그들의 강습들 또는 개개인에 대한 관심을 학생들의 요구에 맞추는 것을 가능하게 한다. 게다가, 사용자에게 이득을 주는 개인 정보 데이터에 대한 다른 이용들이 또한 본 개시내용에 의해 고려된다. 예를 들어, 건강 및 피트니스 데이터는 사용자의 일반적인 웰니스(wellness)에 대한 통찰력을 제공하는 데 사용될 수 있거나, 또는 웰니스 목표를 추구하기 위한 기술을 이용하여 개인들에게 긍정적인 피드백으로서 사용될 수 있다.
본 개시내용은 그러한 개인 정보 데이터의 수집, 분석, 공개, 전달, 저장, 또는 다른 사용을 담당하는 엔티티들이 잘 확립된 프라이버시 정책들 및/또는 프라이버시 관례들을 준수할 것임을 고려한다. 특히, 그러한 엔티티들은, 대체로 개인 정보 데이터를 사적이고 안전하게 유지시키기 위한 산업적 또는 행정적 요건들을 충족시키거나 넘어서는 것으로 인식되는 프라이버시 정책들 및 관례들을 구현하고 지속적으로 이용해야 한다. 그러한 정책들은 사용자들에 의해 쉽게 액세스가능해야 하고, 데이터의 수집 및/또는 사용이 변화됨에 따라 업데이트되어야 한다. 사용자들로부터의 개인 정보는 엔티티의 적법하며 합리적인 용도들을 위해 수집되어야 하고, 이들 적법한 용도들을 벗어나서 공유되거나 판매되어서는 안 된다. 추가로, 그러한 수집/공유는 사용자들의 통지된 동의를 수신한 후에 발생해야 한다. 부가적으로, 이러한 엔티티들은, 이러한 개인 정보 데이터에 대한 액세스를 보호하고 안전하게 하며 개인 정보 데이터에 대한 액세스를 갖는 다른 사람들이 그들의 프라이버시 정책들 및 절차들을 고수한다는 것을 보장하기 위한 임의의 필요한 조처들을 취하는 것을 고려해야 한다. 게다가, 이러한 엔티티들은 널리 인정된 프라이버시 정책들 및 관례들에 대한 그들의 고수를 증명하기 위해 제3자들에 의해 그들 자신들이 평가를 받을 수 있다. 추가로, 정책들 및 관례들은 수집되고/되거나 액세스되는 특정 유형의 개인 정보 데이터에 대해 적응되고, 관할구역 특정 고려사항들을 비롯한 적용가능한 법률들 및 표준들에 적응되어야 한다. 예를 들어, 미국에서, 소정 건강 데이터의 수집 또는 그에 대한 액세스는 연방법 및/또는 주의 법, 예를 들어 미국 건강 보험 양도 및 책임 법령(Health Insurance Portability and Accountability Act, HIPAA)에 의해 통제될 수 있는 반면; 다른 국가들에서의 건강 데이터는 다른 규정들 및 정책들의 적용을 받을 수 있고 그에 따라 취급되어야 한다. 따라서, 상이한 프라이버시 관례들은 각각의 국가의 상이한 개인 데이터 유형들에 대해 유지되어야 한다.
전술한 것에도 불구하고, 본 개시내용은 또한 사용자들이 개인 정보 데이터의 사용, 또는 그에 대한 액세스를 선택적으로 차단하는 실시예들을 고려한다. 즉, 본 개시내용은 그러한 개인 정보 데이터에 대한 액세스를 방지하거나 차단하기 위해 하드웨어 및/또는 소프트웨어 요소들이 제공될 수 있다는 것을 고려한다. 예를 들어, 진행 추적 서비스들의 경우에, 본 기술은 사용자들이 서비스를 위한 등록 중 또는 이후 임의의 시간에 개인 정보 데이터의 수집 시의 참여의 "동의" 또는 "동의하지 않음"을 선택하는 것을 허용하도록 구성될 수 있다. 다른 예에서, 사용자들은 특정 제3자 애플리케이션들에 진행 추적 정보를 제공하지 않도록 선택할 수 있다. 또 다른 예에서, 사용자들은 수집되는 데이터의 범주를 제한하거나, 또는 진행 추적 정보의 수집을 전적으로 금지하도록 선택할 수 있다. "동의" 및 "동의하지 않음" 옵션들을 제공하는 것에 부가하여, 본 개시내용은 개인 정보의 액세스 또는 사용에 관한 통지들을 제공하는 것을 고려한다. 예를 들어, 사용자는 그들의 개인 정보 데이터가 액세스될 앱을 다운로드할 시에 통지받고, 이어서 개인 정보 데이터가 앱에 의해 액세스되기 직전에 다시 상기하게 될 수 있다.
또한, 의도하지 않은 또는 인가되지 않은 액세스 또는 이용의 위험을 최소화하는 방식으로 개인 정보 데이터가 관리되고 취급되어야 한다는 것이 본 개시내용의 의도이다. 데이터의 수집을 제한하고 데이터가 더 이상 필요하지 않게 되면 데이터를 삭제함으로써 위험이 최소화될 수 있다. 추가로, 그리고 소정의 건강 관련 애플리케이션들을 비롯하여, 적용가능할 때, 사용자의 프라이버시를 보호하기 위해 데이터 비식별화가 사용될 수 있다. 적절한 경우, 특정 식별자들(예컨대, 생년월일 등)을 제거함으로써, 저장된 데이터의 양 또는 특이성을 제어함으로써(예컨대, 주소 수준이라기보다는 오히려 도시 수준에서 위치 데이터를 수집함으로써), 데이터가 저장되는 방식을 제어함으로써(예컨대, 사용자들에 걸쳐 데이터를 집계함으로써), 그리고/또는 다른 방법들에 의해, 비식별화가 용이하게 될 수 있다.
따라서, 본 개시내용이 하나 이상의 다양한 개시된 실시예들을 구현하기 위해 개인 정보 데이터의 사용을 광범위하게 커버하지만, 본 개시내용은 다양한 실시예들이 또한 그러한 개인 정보 데이터에 액세스할 필요 없이 구현될 수 있다는 것을 또한 고려한다. 즉, 본 기술의 다양한 실시예들은 이러한 개인 정보 데이터의 전부 또는 일부분의 결여로 인해 동작 불가능하게 되지 않는다. 예를 들어, 진행 추적은, 비-개인 정보 데이터 또는 가장 기본적인 최소량의 개인 정보, 예컨대 진행 추적 파이프라인에 이용가능한 다른 비-개인 정보, 또는 공개적으로 이용가능한 정보에 기초하여 구현될 수 있다.
설명된 실시예들의 다양한 양태들, 실시예들, 구현들 또는 특징들은 개별적으로 또는 임의의 조합으로 사용될 수 있다. 설명된 실시예들의 다양한 양태들은 소프트웨어, 하드웨어, 또는 하드웨어와 소프트웨어의 조합에 의해 구현될 수 있다. 설명된 실시예들은 또한 비일시적 컴퓨터 판독가능 매체 상에 컴퓨터 판독가능 코드로서 구현될 수 있다. 비일시적 컴퓨터 판독가능 매체는 컴퓨터 시스템에 의해 이후 판독될 수 있는 데이터를 저장할 수 있는 임의의 데이터 저장 디바이스이다. 비일시적 컴퓨터 판독가능 매체의 예들은 판독 전용 메모리, 랜덤 액세스 메모리, CD-ROM들, HDD들, DVD들, 자기 테이프 및 광학 데이터 저장 디바이스들을 포함한다. 비일시적 컴퓨터 판독가능 매체는 또한 컴퓨터 판독가능 코드가 분산된 방식으로 저장 및 실행되도록 네트워크-결합된 컴퓨터 시스템들에 걸쳐 분산될 수 있다.
전술한 설명은, 설명의 목적들을 위해, 설명된 실시예들의 완전한 이해를 제공하기 위해 특정 명명법을 사용하였다. 그러나, 특정 상세 사항들은 설명된 실시예들을 실시하기 위해 요구되지는 않는다는 것이 당업자에게는 명백할 것이다. 따라서, 특정 실시예들에 대한 전술한 설명은 예시 및 설명의 목적을 위해 제시되어 있다. 이들은 총망라하고자 하거나 설명된 실시예들을 개시된 정확한 형태들로 제한하려고 하는 것은 아니다. 많은 수정들 및 변형들이 상기 교시 내용들에 비추어 가능하다는 것이 당업자에게 명백할 것이다.

Claims (60)

  1. 클라이언트 디바이스 상에서 학생 활동을 추적하기 위한 방법으로서, 상기 방법은, 상기 클라이언트 디바이스 상에서 실행되는 백그라운드 프로세스에 의한,
    상기 클라이언트 디바이스 상에서 실행되는 복수의 애플리케이션의 각각의 애플리케이션에 대해:
    상기 애플리케이션 내에서 수행된 학생 활동들에 관하여 상기 애플리케이션에 의해 제공될 진행 추적 정보의 각각의 구조를 정의하는 각각의 컨텍스트를 상기 애플리케이션으로부터 수신하는 단계;
    상기 복수의 애플리케이션 중 적어도 하나의 애플리케이션으로부터 각각의 진행 추적 정보를 수신하는 단계 - 상기 각각의 진행 추적 정보는 상기 적어도 하나의 애플리케이션의 각각의 컨텍스트에 따라 상기 적어도 하나의 애플리케이션에 의해 제공됨 -;
    상기 진행 추적 정보를 필터링하여 필터링된 진행 추적 정보를 생성하는 단계;
    상기 필터링된 진행 추적 정보를 원격 데이터베이스에 저장하는 단계;
    상기 필터링된 진행 추적 정보와 연관된 메타데이터를 생성하는 단계; 및
    네트워크를 통해 상기 클라이언트 디바이스에 의해 액세스가능한 적어도 하나의 서비스로 상기 메타데이터를 송신하는 단계
    를 포함하는, 방법.
  2. 제1항에 있어서, 상기 복수의 애플리케이션의 각각의 애플리케이션은, 상기 백그라운드 프로세스에 의해 공유되는 소프트웨어 프레임워크의 적어도 일부분을 구현하는, 방법.
  3. 제1항에 있어서, 상기 진행 추적 정보를 필터링하는 단계는,
    상기 복수의 애플리케이션의 각각의 애플리케이션에 대해 진행 추적이 인에이블되는지 또는 디스에이블되는지 여부를 결정하는 단계; 및
    진행 추적이 디스에이블되는 임의의 애플리케이션들로부터 상기 진행 추적 정보가 수신될 때 상기 진행 추적 정보를 폐기하거나, 또는
    상기 필터링된 진행 추적 정보를 생성하기 위해 진행 추적이 인에이블되는 임의의 애플리케이션들로부터 상기 진행 추적 정보가 수신될 때 상기 진행 추적 정보를 프로세싱하는 단계
    를 포함하는, 방법.
  4. 제1항에 있어서, 상기 진행 추적 정보를 필터링하는 단계는,
    상기 복수의 애플리케이션과 연관된 활성 컨텍스트들의 목록을 수신하는 단계;
    상기 진행 추적 정보에 포함된 컨텍스트 식별자를 상기 활성 컨텍스트들의 목록과 비교하는 단계; 및
    상기 컨텍스트 식별자가 상기 활성 컨텍스트들의 목록에 포함되지 않을 때 상기 진행 추적 정보를 폐기하거나, 또는
    상기 필터링된 진행 추적 정보를 생성하기 위해 상기 컨텍스트 식별자가 상기 활성 컨텍스트들의 목록에 포함될 때 상기 진행 추적 정보를 프로세싱하는 단계
    를 포함하는, 방법.
  5. 제1항에 있어서, 상기 원격 데이터베이스에 저장된 상기 진행 추적 정보는 상기 원격 데이터베이스 내의 각각의 구역에 대해 디스크 암호화를 사용하여 보안되는, 방법.
  6. 제1항에 있어서, 상기 원격 데이터베이스는 상이한 데이터를 저장하는 복수의 구역들로 배분되는 네트워크-기반 저장 서비스이고, 각각의 구역은 조직 식별자, 수업 식별자, 사용자 식별자, 컨텍스트 식별자, 또는 유인물(hand-out) 식별자 중 적어도 하나의 임의의 조합으로 범위가 한정되는, 방법.
  7. 제6항에 있어서, 상기 진행 추적 정보는 상기 네트워크-기반 저장 서비스 내의 개인 구역에 저장되고, 상기 개인 구역은 상기 클라이언트 디바이스 상에 설치된 클라이언트 애플리케이션과 연관된 사용자 계정에 대한 특정 사용자 식별자와 연관되는, 방법.
  8. 제1항에 있어서, 상기 메타데이터는 상기 원격 데이터베이스 내의 상기 진행 추적 정보에 대한 참조뿐만 아니라, 수업 식별자, 사용자 식별자, 또는 컨텍스트 식별자 중 적어도 하나를 포함하는, 방법.
  9. 제8항에 있어서, 상기 컨텍스트 식별자는 상기 메타데이터에 포함되는, 방법.
  10. 클라이언트 디바이스에 포함된 프로세서에 의해 실행되었을 때, 상기 클라이언트 디바이스로 하여금 상기 클라이언트 디바이스 상에 학생 활동을 추적하기 위한 백그라운드 프로세스를 구현하도록 하는 명령어들을 저장하도록 구성된 비일시적 컴퓨터 판독가능 저장 매체로서,
    상기 백그라운드 프로세스는:
    상기 클라이언트 디바이스 상에서 실행되는 복수의 애플리케이션의 각각의 애플리케이션에 대해:
    상기 애플리케이션 내에서 수행된 학생 활동들에 관하여 상기 애플리케이션에 의해 제공될 진행 추적 정보의 각각의 구조를 정의하는 각각의 컨텍스트를 상기 애플리케이션으로부터 수신하는 단계;
    상기 복수의 애플리케이션 중 적어도 하나의 애플리케이션으로부터 각각의 진행 추적 정보를 수신하는 단계 - 상기 각각의 진행 추적 정보는 상기 적어도 하나의 애플리케이션의 각각의 컨텍스트에 따라 상기 적어도 하나의 애플리케이션에 의해 제공됨 -;
    상기 진행 추적 정보를 필터링하여 필터링된 진행 추적 정보를 생성하는 단계;
    상기 필터링된 진행 추적 정보를 원격 데이터베이스에 저장하는 단계;
    상기 필터링된 진행 추적 정보와 연관된 메타데이터를 생성하는 단계; 및
    네트워크를 통해 상기 클라이언트 디바이스에 의해 액세스가능한 적어도 하나의 서비스로 상기 메타데이터를 송신하는 단계를 포함하는 단계들을 수행하도록 구성되는, 비일시적 컴퓨터 판독가능 저장 매체.
  11. 제10항에 있어서, 상기 복수의 애플리케이션의 각각의 애플리케이션은, 상기 백그라운드 프로세스에 의해 공유되는 소프트웨어 프레임워크의 적어도 일부분을 구현하는, 비일시적 컴퓨터 판독가능 저장 매체.
  12. 제10항에 있어서, 상기 진행 추적 정보를 필터링하는 단계는,
    상기 복수의 애플리케이션의 각각의 애플리케이션에 대해 진행 추적이 인에이블되는지 또는 디스에이블되는지 여부를 결정하는 단계; 및
    진행 추적이 디스에이블되는 임의의 애플리케이션들로부터 상기 진행 추적 정보가 수신될 때 상기 진행 추적 정보를 폐기하거나, 또는
    상기 필터링된 진행 추적 정보를 생성하기 위해 진행 추적이 인에이블되는 임의의 애플리케이션들로부터 상기 진행 추적 정보가 수신될 때 상기 진행 추적 정보를 프로세싱하는 단계
    를 포함하는, 비일시적 컴퓨터 판독가능 저장 매체.
  13. 제10항에 있어서, 상기 진행 추적 정보를 필터링하는 단계는,
    상기 복수의 애플리케이션과 연관된 활성 컨텍스트들의 목록을 수신하는 단계;
    상기 진행 추적 정보에 포함된 컨텍스트 식별자를 상기 활성 컨텍스트들의 목록과 비교하는 단계; 및
    상기 컨텍스트 식별자가 상기 활성 컨텍스트들의 목록에 포함되지 않을 때 상기 진행 추적 정보를 폐기하거나, 또는
    상기 필터링된 진행 추적 정보를 생성하기 위해 상기 컨텍스트 식별자가 상기 활성 컨텍스트들의 목록에 포함될 때 상기 진행 추적 정보를 프로세싱하는 단계
    를 포함하는, 비일시적 컴퓨터 판독가능 저장 매체.
  14. 제10항에 있어서, 상기 원격 데이터베이스에 저장된 상기 진행 추적 정보는 상기 원격 데이터베이스 내의 각각의 구역에 대해 디스크 암호화를 사용하여 보안되는, 비일시적 컴퓨터 판독가능 저장 매체.
  15. 제10항에 있어서, 상기 원격 데이터베이스는 상이한 데이터를 저장하는 복수의 구역들로 배분되는 네트워크-기반 저장 서비스이고, 각각의 구역은 조직 식별자, 수업 식별자, 사용자 식별자, 컨텍스트 식별자, 또는 유인물(hand-out) 식별자 중 적어도 하나의 임의의 조합으로 범위가 한정되는, 비일시적 컴퓨터 판독가능 저장 매체.
  16. 클라이언트 디바이스로서,
    적어도 하나의 프로세서; 및
    상기 적어도 하나의 프로세서에 의해 실행되었을 때, 상기 클라이언트 디바이스로 하여금 상기 클라이언트 디바이스 상에 학생 활동을 추적하기 위한 백그라운드 프로세스를 구현하도록 하는 명령어들을 저장한 적어도 하나의 메모리를 포함하고, 상기 백그라운드 프로세스는:
    상기 클라이언트 디바이스 상에서 실행되는 복수의 애플리케이션의 각각의 애플리케이션에 대해:
    상기 애플리케이션 내에서 수행된 학생 활동들에 관하여 상기 애플리케이션에 의해 제공될 진행 추적 정보의 각각의 구조를 정의하는 각각의 컨텍스트를 상기 애플리케이션으로부터 수신하는 단계;
    상기 복수의 애플리케이션 중 적어도 하나의 애플리케이션으로부터 각각의 진행 추적 정보를 수신하는 단계 - 상기 각각의 진행 추적 정보는 상기 적어도 하나의 애플리케이션의 각각의 컨텍스트에 따라 상기 적어도 하나의 애플리케이션에 의해 제공됨 -;
    상기 진행 추적 정보를 필터링하여 필터링된 진행 추적 정보를 생성하는 단계;
    상기 필터링된 진행 추적 정보를 원격 데이터베이스에 저장하는 단계;
    상기 필터링된 진행 추적 정보와 연관된 메타데이터를 생성하는 단계; 및
    네트워크를 통해 상기 클라이언트 디바이스에 의해 액세스가능한 적어도 하나의 서비스로 상기 메타데이터를 송신하는 단계를 포함하는 단계들을 수행하도록 구성되는, 클라이언트 디바이스.
  17. 제16항에 있어서, 상기 복수의 애플리케이션의 각각의 애플리케이션은, 상기 백그라운드 프로세스에 의해 공유되는 소프트웨어 프레임워크의 적어도 일부분을 구현하는, 클라이언트 디바이스.
  18. 제16항에 있어서, 상기 진행 추적 정보를 필터링하는 단계는,
    상기 복수의 애플리케이션의 각각의 애플리케이션에 대해 진행 추적이 인에이블되는지 또는 디스에이블되는지 여부를 결정하는 단계; 및
    진행 추적이 디스에이블되는 임의의 애플리케이션들로부터 상기 진행 추적 정보가 수신될 때 상기 진행 추적 정보를 폐기하거나, 또는
    상기 필터링된 진행 추적 정보를 생성하기 위해 진행 추적이 인에이블되는 임의의 애플리케이션들로부터 상기 진행 추적 정보가 수신될 때 상기 진행 추적 정보를 프로세싱하는 단계
    를 포함하는, 클라이언트 디바이스.
  19. 제16항에 있어서, 상기 진행 추적 정보를 필터링하는 단계는,
    상기 복수의 애플리케이션과 연관된 활성 컨텍스트들의 목록을 수신하는 단계;
    상기 진행 추적 정보에 포함된 컨텍스트 식별자를 상기 활성 컨텍스트들의 목록과 비교하는 단계; 및
    상기 컨텍스트 식별자가 상기 활성 컨텍스트들의 목록에 포함되지 않을 때 상기 진행 추적 정보를 폐기하거나, 또는
    상기 필터링된 진행 추적 정보를 생성하기 위해 상기 컨텍스트 식별자가 상기 활성 컨텍스트들의 목록에 포함될 때 상기 진행 추적 정보를 프로세싱하는 단계
    를 포함하는, 클라이언트 디바이스.
  20. 제16항에 있어서, 상기 원격 데이터베이스에 저장된 상기 진행 추적 정보는 상기 원격 데이터베이스 내의 각각의 구역에 대해 디스크 암호화를 사용하여 보안되는, 클라이언트 디바이스.
  21. 삭제
  22. 삭제
  23. 삭제
  24. 삭제
  25. 삭제
  26. 삭제
  27. 삭제
  28. 삭제
  29. 삭제
  30. 삭제
  31. 삭제
  32. 삭제
  33. 삭제
  34. 삭제
  35. 삭제
  36. 삭제
  37. 삭제
  38. 삭제
  39. 삭제
  40. 삭제
  41. 삭제
  42. 삭제
  43. 삭제
  44. 삭제
  45. 삭제
  46. 삭제
  47. 삭제
  48. 삭제
  49. 삭제
  50. 삭제
  51. 삭제
  52. 삭제
  53. 삭제
  54. 삭제
  55. 삭제
  56. 삭제
  57. 삭제
  58. 삭제
  59. 삭제
  60. 삭제
KR1020207024265A 2018-03-26 2019-03-07 교실 환경에서의 진행 추적을 위한 소프트웨어 프레임워크 KR102526031B1 (ko)

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 US20190297155A1 (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 (2)

Publication Number Publication Date
KR20200104922A KR20200104922A (ko) 2020-09-04
KR102526031B1 true KR102526031B1 (ko) 2023-04-25

Family

ID=67985915

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020207024265A KR102526031B1 (ko) 2018-03-26 2019-03-07 교실 환경에서의 진행 추적을 위한 소프트웨어 프레임워크

Country Status (8)

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

Families Citing this family (4)

* 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

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101319666B1 (ko) * 2013-02-27 2013-10-17 주식회사 위두커뮤니케이션즈 전자서적과 연동되는 게임의 제공 장치

Family Cites Families (21)

* 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 富士通株式会社 学习程序、学习方法及学习装置
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
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
US20140099624A1 (en) * 2012-05-16 2014-04-10 Age Of Learning, Inc. Mentor-tuned guided learning in online educational systems
US20140272889A1 (en) * 2013-03-15 2014-09-18 Career Education Center Computer implemented learning system and methods of use thereof
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 北大方正集团有限公司 在线课程的管理方法及管理系统
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 英业达科技有限公司 依学习历程更新学习记录以回复学习进度的系统及方法
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

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101319666B1 (ko) * 2013-02-27 2013-10-17 주식회사 위두커뮤니케이션즈 전자서적과 연동되는 게임의 제공 장치

Also Published As

Publication number Publication date
JP7431869B2 (ja) 2024-02-15
JP2024056770A (ja) 2024-04-23
JP2022068154A (ja) 2022-05-09
JP2021518940A (ja) 2021-08-05
WO2019190716A1 (en) 2019-10-03
AU2019241882A1 (en) 2020-08-06
JP7014915B2 (ja) 2022-02-01
BR112020016783A2 (pt) 2020-12-15
AU2022203160A1 (en) 2022-06-02
EP3724845A1 (en) 2020-10-21
CN111788600A (zh) 2020-10-16
KR20200104922A (ko) 2020-09-04
EP3724845A4 (en) 2021-09-15
US20190297155A1 (en) 2019-09-26

Similar Documents

Publication Publication Date Title
KR102526031B1 (ko) 교실 환경에서의 진행 추적을 위한 소프트웨어 프레임워크
US20230071541A1 (en) Systems and methods for providing social electronic learning
US20130031208A1 (en) Management and Provision of Interactive Content
US20230086427A1 (en) Share pools for sharing files via a storage service
US11113356B2 (en) Capturing and managing knowledge from social networking interactions
US20100257268A1 (en) Methods, Systems, and Media for Controlling Access to Applications on Mobile Devices
Takagi et al. Remote IT education for senior citizens
Lédeczi et al. Beyond CS principles: Bringing the frontiers of computing to K12
Chao Cloud database development and management
Chew et al. Integration of EBSCO Discovery Service widget into the learning spaces of LMS: A case study of Wawasan Open University
Meyer et al. A web application for recording and analyzing the clinical experiences of nursing students
Corbitt Mobile Application Development for Mindfulness Based Stress Reduction
Thompson et al. One website to rule them all: lessons learned from a series of reorganizations, integrations, and creation of one university libraries’ website from three
CHIBUEZE DEVELOPMENT OF A WEB-BASED STUDENT PROJECT MANAGEMENT SYSTEM
Barish et al. Sensing school community needs: a co-designed, personalized mental health app for high school students, parents, and staff
Turner et al. Data Archive-Zenodo
CA2658188C (en) Systems and methods for providing social electronic learning
Abari et al. Laboratory e-Notebooks: A learning object-based repository
Wink Sources of fully developed course materials on the Web
Kostis et al. A Web 3.0 Mashup to Promote the eLearning Platform “Unibook”
Hsieh et al. UCOL–Iowa City UNESCO City of Literature Mobile Application Research & Development
Shaffer et al. Automated generation and grading of programming assignments
McCracken 2011 American Library Association Conference
Renee'Davis ALEX: An efficient computer network-based education system
CA2780336A1 (en) Multi-point social media geotracker

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant