Learning Objectives
Upon successful completion of this course, the student will be able to:
- Complete the implementation of an Java program, given as specification of the required behaviour of the program.
- Analyze alternatives among simple data-structures - stacks, queues, and arrays, for example - and select the most appropriate structure for a simple task.
- Analyze alternatives among simple algorithms - sorting and searching, for example - and select the most appropriate for a simple task.
- Rigorously analyze the correctness of a simple program fragment given a logical description of its required behaviour.
- Apply their knowledge of testing principles to select appropriate test data for an individual software routine.
- Apply the technique of recursion to implement simple requirements.
- independently use selected writings in computing to analyse and explain technical computing problems.
- Work as a team in a small group to complete an assigned task.
- Identify economic implications of the software life cycle to the process of software construction.
- Effectively use software development tools including a distributed version control system and an integrated development environment.


