wwwXOX / posd

hw

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

POSD2017F Homework

Homework assignment 8

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.

Mob programming team on 01/02

Team#6 (at 1622) Team#7 (at 1321)
103590019 103590450
105598061 105598073
106598009 106598005
106598017 106598020
106598026 106598033
106598037 106598051
106598047 106598055
106598057 106598068

Mob programming team on 01/03

Team#8 (at 1622) Team#9 (at 1321)
105598401 103590002
106598010 106598012
106598018 106598019
106598025 106598022
106598028 106598069
106598039 106598049
106598044 106598065
106598063 106598401

Assignment requirement

  1. 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.

  2. Design suitable unit test for all implementations that you write for this assignment.

  3. Write the corresponding makefile to generate executable file which named hw8. This is for executing the test on CI server.

  4. Write the corresponding makefile to generate executable file which named shell. This is for executing the shell.

  5. Make sure your CI job is passed before deadline.s

Marks

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.

Deadline

Fri Jan 05 2018 23:59:59

Note

  • Try to read building information in console log and fix the hw problem by yourself as possible as you can.

POSD Mob programming

What is mob programming

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

Description

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.

Mob

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.

Prepare for Mob

  1. Understand what's mob programming: see the introduction video above.

  2. 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.

  3. 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. `

Demonstration

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.

Schedule on coming week

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

Team list:

Ctrl+f for finding your number.

Team #6 (01/02)

Number
103590019
105598061
106598009
106598017
106598026
106598037
106598047
106598057

Team #7 (01/02)

Number
103590450
105598073
106598005
106598020
106598033
106598051
106598055
106598068

Team #8 (01/03)

Number
105598401
106598010
106598018
106598025
106598028
106598039
106598044
106598063

Team #9 (01/03)

Number
103590002
106598012
106598019
106598022
106598069
106598049
106598065
106598401

Team #1 (11/04 Done)

Number
105598052
106598024
106598038
106598048
106598053
106598054
106598060

Team #2 (11/25 Done)

Number
103590028
105598043
105598062
106598006
106598016
106598027
106598029
106598041

Team #3 (11/25 Done)

Number
103590006
104598046
105598060
106598004
106598011
106598045
106598042
106598035

Team #4 (12/02 Done)

Number
103590452
105598072
106598034
106598040
106598013
106598056
106598064
106598067

Team #5 (12/02 Done)

Number
103590026
105598046
105598059
106598007
106598014
106598043
106598052
106598059

About

hw


Languages

Language:C++ 98.5%Language:Makefile 1.4%Language:C 0.1%