User Experience Requirements
This section contains decomposition of user stories based allowed tasks/activities in our system.
User Categories
- Programmer
- Teacher
- Student
Task Based User Stories
Task 1. Creation of collaborative teams
Relavent User Story:
- As a teacher, I want to be able to create a team and collaborate with my classmates in a group.
Reason for relavence: To assign a project to each group of students and ask them to do that as a team. Also, I want to form groups of students and consider a leader for each team. The leader is more talented in that course/topic and is responsible for answering his/her teammates’ questions and helping them[1].
Irrelavent User Stories:
- As a teacher, I want to create programming classes for students so that students can access them for learning.
- As a teacher, I want to create and give out practice problems so that students learn about a specific topic.
Task 2. Providance of Suggestion/Comments for individual user or a team
Relavent User Story:
- As a teacher, I want to be able to put comments for students individually or for the whole class.
Reason fo relavence: To be able to give them hint individually if they need help or if most of them are making the same mistake be able to hint all of them[1].
Irrelavent User Stories:
- As a teacher I want to able to insert grades.
- As a teacher I want t obe able to hide previous or future cources from students.
Task 3. Live surveillance through shared screen
Relavent User Story:
- As a teacher, I want to be able to see all of the student’s screens so I can monitor their progress and see if part of the assignment needs clarification.
Reason fo relavence: Live visualization of students preformance enhance productivity.
Irrelavent User Stories:
- As a teacher I want to ba able to give student the permission to participate in the course.
- As a user(all types of users), I want to see my coding history so that I can quickly revise my code.
Task 4. View comments and following instructions
Relavent User Story:
- As a student, I want to ask the teacher questions privately so I can resolve my issues comfortably.
Reason fo relavence: It helps teacher-student interaction and bolsters the learning capability of students as some students are shy to ask during class[1].
Irrelavent User Stories:
- As a student, I want to see my instructor’s written code so that I will compare mine for validation.
- As a user, I want to register with the system so that I can access all features of the system.
- As a student, I want to enroll in a course so that I will learn about it.
Task 5. Private question answering
Relavent User Story:
- As a student, I want to see my instructor’s comments in real-time on my code so that I can improvise my code accordingly.
Reason fo relavence: To have real-time feedback will help students to reduce the burden of after-class questioning and allow students to be on the track during the session[2].
Irrelavent User Stories:
- As a student I want to search for specific teacher and course so that I will get to my desired one.
- As a student, I want to get unenrolled from the course after learning so that I will have only relevant courses in my portal.
- As a student, I want to receive a course completion certificate so that I will use it later.
Task 6. Code Sharing
Relavent User Story:
- As a programmer working for a company, I want to be able to share my work with my coworkers so that we can work on project together at the same time, offering feedback and comments.
Reason fo relavence: Programmers often have to work on a project with other programmers to develop a working program. Currently, there is not a great way for programmers to work on the project together at the same time. Therefore, our solution will offer a quick and efficient way for programmers to work on their projects and produce an output without being hindered by the lack of live coding[3].
Irrelavent User Stories:
- As a pogrammer, I want to Supervise and intern idea so that I can manage team internally.
References
1. Charlie McDowell, Linda Werner, Heather E. Bullock, and Julian Fernald. 2006. Pair programming improves student retention, confidence, and program quality. Commun. ACM 49, 8 (August 2006), 90–95. https://doi-org.proxy-remote.galib.uga.edu/10.1145/1145287.1145293
2. Sweller, J., van Merriënboer, J.J.G. & Paas, F. Cognitive Architecture and Instructional Design: 20 Years Later. Educ Psychol Rev 31, 261–292 (2019). https://doi.org/10.1007/s10648-019-09465-5
3. Marc J. Rubin. 2013. The effectiveness of live-coding to teach introductory programming. In Proceeding of the 44th ACM technical symposium on Computer science education (SIGCSE ‘13). Association for Computing Machinery, New York, NY, USA, 651–656. https://doi-org.proxy-remote.galib.uga.edu/10.1145/2445196.2445388