Section B

In Section B we will be development a calculator using test driven development. You will be given a backlog that contains sequence or stories organized by priority.

In lab each week, you will show the code you have written to the lab instructor and they will give you further guidance. For example, they may tell you that the formatting is incorrect. If they require any further changes to the code, make those changes before continuing with your work.

You will not be able to complete the assignment in lab class. You will need to work at home. You can get questions answered in lab class if you are stuck, and you can have your code checked for understandability. Most of the work you do on your program will have to be done outside of class time.

Week 5

Week 5 starts the development of the calculator. In the lectures we will talk about arrays, functions and recursion, and the errors you might see from GCC.

Week 6

Week 6 should see you with a calcuator that accepts commands and number and performs addition, subtraction, multiplication and division. In this week, you will demo the input and output to your calculator. You will add arithmetic. In the lectures and tutorial we will cover recursive functions.

Week 7

By week 7, your calculator should do simple arithmetic. You will add the ability to calculate factorial, GDC, and print binary numbers. In lecture and tutorial, we will cover the user of stuctures to produce a database like functions.

Week 8

Week 8 you will demonstrate factorial, GCD and printing binary numbers. As the final addition to the calculator, you will add the ability to store and calcuate student's grades. In lecture and tutorial, we will cover the more esoteric elements of the C language.

Week 9

Week 9 continue the development of the calculator. In the lectures, we will cover the remaining elements of the C programming language and git, a program that will help you keep track of versions.

Resources

Backlog

The backlog contains all of the lab work to be done in this unit. It contains not only the lessons for this week but also the lessons for the subsequent weeks.

The backlog spreadsheet is sorted by priority. The element with the highest priority is selected from the backlog, implemented, then you move on to the element with the next highest priority. The backlog contains a story, an example and a test. In addition, for this unit, you will be supplied with a unit test for most of the elements in the backlog. Those elements that are tested by inspection (i.e., they are clear user interface elements) are tested in the main function. The other elements will have unit tests written for them.