Please use the files that were used in course and copy test header to your repository from this project.
In this time, you need to make a Shell
to wrapper the program that we made before. It should handle user input and put the input into program, then show the corresponding result. And in some situation, you will need to improve your program to handle the exception if wrong expression.
And we re-assign the mob schedule, the remaining teams will be in the coming week, Tuesday for Team#6, 7 and Wednesday for Team#8, 9. The activity start at 7:00 PM, end at 9:00 PM, fill out the questionnaire, we will provide the free dinner.
If you can't attend, please email to us, thanks.
Team#6 (at 1622) | Team#7 (at 1321) |
---|---|
103590019 | 103590450 |
105598061 | 105598073 |
106598009 | 106598005 |
106598017 | 106598020 |
106598026 | 106598033 |
106598037 | 106598051 |
106598047 | 106598055 |
106598057 | 106598068 |
Team#8 (at 1622) | Team#9 (at 1321) |
---|---|
105598401 | 103590002 |
106598010 | 106598012 |
106598018 | 106598019 |
106598025 | 106598022 |
106598028 | 106598069 |
106598039 | 106598049 |
106598044 | 106598065 |
106598063 | 106598401 |
-
This assignment doesn't limit how you implement the shell, but you must ensure that your shell conforms to the following requirements.
-
The shell should provide some functions written in
shell.md
. -
Handle the expressions written in
expression.h
, and show corresponding result. -
Handle the exceptions written in
exception.h
, and show corresponding result. -
Shell shouldn't crash if something goes wrong.
-
-
Design suitable unit test for all implementations that you write for this assignment.
-
Write the corresponding makefile to generate executable file which named
hw8
. This is for executing the test on CI server. -
Write the corresponding makefile to generate executable file which named
shell
. This is for executing the shell. -
Make sure your CI job is passed before deadline.s
There are 29 tests in expression.h
and exception.h
, each one is 3 points; 3 functions written in shell.md
, each one is 4 points.
For easier calculating, the sum score of assignment is 100 points.
If Shell crash, total points deducted 10 points.
Fri Jan 05 2018 23:59:59
- Try to read building information in console log and fix the hw problem by yourself as possible as you can.
Mob programming is a software development approach where the whole team works on the same thing, at the same time, in the same space, and at the same computer. This is similar to pair programming where two people sit at the same computer and collaborate on the same code at the same time. With Mob Programming the collaboration is extended to everyone on the team, while still using a single computer for writing the code and inputting it into the code base.
from Wikipedia: Mob programming.
Mob Programming, A Whole Team Approach
TA will divide all students into 9 teams, 8 people each team. This will be decided randomly, everyone will work with someone else you are not familiar with. By this way, you need to have good communication with team member to organize, plan and practice.
It begins from this weekend(10/31), each team need to practice every Saturday afternoon before the demo in POSD class on coming Friday. The practice look like picture below, you will code together with a big screen, and discuss issues by using whiteboard.
The practice will takes you about 3~4 hours, we will stay there with you for process smooth. Mob programming will be counted as a score, and each of you only need to submit the same code that you mob
The topic of mob programming is your POSD assignment, complete the program according to the test step by step. The team will discuss about design or each decision for the solution, and the whole process is treated as a standard for scoring.
In practice, everyone has to be Driver
/Navigator
alternatively. For Driver
, your job is to controll keyboard and implement all instructions from Navigator
. For Navigator
, your job is to think about the design issue, solution, all stuff of decision, and instruct Driver
to implement it.
-
Understand what's mob programming: see the introduction video above.
-
For each one student, you will get a questonnaire before mob, the questonnaire is about personal planning that what do you want to get from this time(like what's mob programming in reality? or how does other guy do his/her assignment, etc.). So, think about it before mob.
-
Plan the solution for assignmnet: do not just come here and wait for other guy share their wonderful solution. Think about problem first by yourself, therefore results a good communication and no wasting time. `
On the Friday of next week, Each team have about 20 minutes to show the demonstration which how they run the mob programming and how to solve the problem that in the assignment.
Two teams will do the demonstration in order, the first team done a part of the code with three tests, the second team will need to continue to do the demo with the code.
Each team will demo about three tests in the class, you don't have to complete the all tests. The three tests is specified by TA, and we will pick the simple, medium and complex test for each team.
About the code that you write through the mob, it will not be used in the later course, so you don't need to push it to repository of the course.
This is temporary and may be adjusted according to the actual situation.
If you are on the week, please fill out the dinner questionnaire, and dinner is free.
Break ice and dinner(free): 18 : 00 ~ 18 : 50
Prepared: 18 : 50 ~ 19 : 00
Mob programming: 19 : 00 ~ 21 : 00
Retrospective: 16 : 00 ~ 16 : 30 (depends on how things go)
Location: 宏裕科技大樓 13F Lab1321 or 16F 1622
Ctrl+f for finding your number.
Number |
---|
103590019 |
105598061 |
106598009 |
106598017 |
106598026 |
106598037 |
106598047 |
106598057 |
Number |
---|
103590450 |
105598073 |
106598005 |
106598020 |
106598033 |
106598051 |
106598055 |
106598068 |
Number |
---|
105598401 |
106598010 |
106598018 |
106598025 |
106598028 |
106598039 |
106598044 |
106598063 |
Number |
---|
103590002 |
106598012 |
106598019 |
106598022 |
106598069 |
106598049 |
106598065 |
106598401 |
Number |
---|
105598052 |
106598024 |
106598038 |
106598048 |
106598053 |
106598054 |
106598060 |
Number |
---|
103590028 |
105598043 |
105598062 |
106598006 |
106598016 |
106598027 |
106598029 |
106598041 |
Number |
---|
103590006 |
104598046 |
105598060 |
106598004 |
106598011 |
106598045 |
106598042 |
106598035 |
Number |
---|
103590452 |
105598072 |
106598034 |
106598040 |
106598013 |
106598056 |
106598064 |
106598067 |
Number |
---|
103590026 |
105598046 |
105598059 |
106598007 |
106598014 |
106598043 |
106598052 |
106598059 |