assign5 for CSx278
The office_hour_helper is targeted at helping Vanderbilt Students and TAs to organize office hours better, improve efficiency, and help students accomplish coursework successfully.
Office Hour is an important part in all the courses, but as a Vanderbilt Student, many of them feel that it is not organized, too many people, waiting too much and not all the TAs are helpful or good at explaining things.
So, office_hour_helper will be designed to help students and TAs to improve office hour quality and provide functions based on the text massage interface which is assign 1, 2, 3 and 4. It will have functions like: register you with a number in the waiting queue and notify you when it's your turn, TA can send a text msg to notify next one, show how many people ahead of you...
- How do you find help if you have difficulty with homework?
- How many times do you go to office hour each week in average?
- How long does it cost waiting in the queue?
- Do you find office hour helpful or not? Why?
- Do you find any difficulty with asking TA questions?
- When you are in the waiting queue, is it clear that who should be the next?
- How do you feel about office hour before ddl or exam?
- What kind of TA do you like?
- If you have any TA experience, What do you think need to improve for office hour?
- Do you think setting a maximum time limit for each student will help?
- If there's a software that could help, what function do you want it to have?
- Do you feel comfortable to use text messages?
- What is your expectations for office hour?
...Office hour and ask TA ....
...Search on google, ask classmates ....
...Ask friends or TA or instructor ....
...Twice ....
...0 ....
...1-3 times a week ....
...15minutes ....
...0 ....
...it depends on course, some take less then 5 minutes some take over 20 minutes ....
...It is helpful. Because you can solve your problem ....
...Sometimes helpful, it depends on TAs ....
...It's helpful because TA provides some guidance and solutions ....
...TA's explaination is not clear and my English is not good, So sometimes I cannot understand ....
...No ....
...Some TA doesn't know well the course content ....
...Yes ....
...No ....
...Not really for courses like 5251 ....
...Too many people ....
...Too many people ....
...Too many people, tend to ask friends instead of going to office hour ....
...TA who don't have an accent ....
...Nice and friendly ....
...No preference ....
...Try to explain more explicit ....
...Everything is just fine ....
...I don't have any TA experience ....
...No. Some people need more help ....
...If there is another student waiting, maybe less than ten mins. If not, not limit ....
...It depends, if it takes a lot of time for TA to figure out the questions, it's not fair for the first student ....
...Students can rate TA's work and can see TA's grade. Notify me with cancellation or changes earlier so that I can decide when to start my assignment ....
...To register on the software an hour early before go to office hour. It can help TAs to prepare as well as help to queue students ....
...Students should stand in a line or take a number ....
...Yes ....
...Yes ....
...Yes ....
...Move fast! ....
...TAs are friendly and willing to answer my questions ....
...Post frequently asked Q&A to piazza after immediately each office hour so both students and TAs can save time ....
- Students can register themselves with a number in the waiting queue in advance
- Students can know how many people are waiting before you when you register.
- Students can get notification when it's your turn
- Students can query how many people ahead of you in the queue
- TA can send a text msg to notify next one and update the queue
- TA can know if the queue is Empty.
Waterfall model
|_Language: Clojure
send txt to: |_Data structure: Queue, Map....
|_1.register in the queue |_1.add name into queue and sort by time
___________ ____________ |_2.know how many people ahead ______ |_2.count names ahead of this one
| | BREAKS | | |_3.get notified | | |_3.send msg to the peek of queue
|User Story |-------->|Requirements|-|_4.notify next one ------>|Design|-|_4.send msg to next & remove 1st from queue
|___________| |____________| |_... |______| |_...
|_... |_...
output: txt
txt messaging interface
||
______\/______ ________ ___________
software | | | | | |
--------->|Implementation|---->|Testing |--------->|Maintenance|
artifacts |______________| |________| |___________|
version 1 Unit testing
version 2 Integration testing
....
Waterfall model: describes a development method that is linear and sequential. It is straightforward. Waterfall development has distinct goals for each phase of development. With clear, concrete, and well understood stages that everyone on the team can understand and prepare for, it is relatively simple to develop a time line for the entire process and assign particular markers and milestones for each stage and even completion.
Motivation of each step:
-
User story -> requirements: User Story is a paragraph that target people talk about what they want, we need to break them into pieces and understand what need to be design and what is its function, purpose etc. Here, the specifications of the input and output or the final product are studied and marked. Write down requirements in a specification document that serves as the basis for all future development. It defines what the application should do.
-
Requirements -> design: The requirement specifications from first phase are studied in this phase and system design is prepared. System Design helps in specifying hardware and system requirements and also helps in defining overall system architecture, such as programming language, data layers, services, etc. It outlines how exactly the business logic covered in analysis will be technically implemented.
-
Design -> Implementation: This phase it to write actual code. Implement all models, business logic, and service integrations that were specified in the prior stages. Without this, we will not have our software.
-
Implementation -> Testing: During this stage, QA, beta testers, and all other testers systematically discover and report issues within the application that need to be resolved. The software needs to go through testing to find out if there are any flaw or errors so that the client does not face any problem during the installation of the software.
-
Testing -> Maintenance: This step occurs after installation, and involves making modifications to the system or an individual component to alter attributes or improve performance.These modifications arise either due to change requests initiated by the customer, or defects uncovered during live use of the system. Client is provided with regular maintenance and support for the developed software.
Why the process will mitigate the risks:
- Test-driven. It benefits fast feedback, reduction of time spent on rework, and allows the design to evolve and adapt to your changing understanding of the problem.
- Pure functions. Reduce side effects, easy for testing.
- Simple parts. easy to understand.
- flat call stacks. all 2.3.4 will allow creativity and innovation in parts, make parts to fit and make it easier to reason about the system.
- Build tests to capture assumptions.
Handle estimation:
- don't assume that we know the answer
- have lower estimation than reality
- do not know the solutions in advance
- all communications of requirements is important
- identify miscommunications as early as possible.