This module aims to introduce concepts and principles of problem solving using the computer, and to produce software design in a language-independent manner. It also enables students to write and test C++/R programmes that match a software design, and give students experience and confidence in the use of a high level programming language to implement algorithms.
A Demonstrate knowledge and understanding of basic principles of C++ programming language
B Demonstrate knowledge and understanding of basic software development process
C Develop software development skills covering program design, coding, testing, debugging and executing
D Demonstrate understanding of the principles of object oriented programming
E Demonstrate knowledge and understanding of basic principles of R programming language
The teaching philosophy of the module follows very much the philosophy of Syntegrative Education. This has meant that the teaching delivery pattern, which follows more intensive block teaching, allows more meaningful contribution from industry partners. This philosophy is carried through also in terms of assessment, with reduction on the use of exams and increase in coursework, especially problem-based assessments that are project focused. The delivery pattern provides space in the semester for students to concentrate on completing the assessments.
This module will be delivered through a combination of formal lectures, seminars and supervised computer laboratory sessions.
The concepts introduced during the lecture are illustrated using step-by-step analysis of example code, complete case studies and live programming tutorials. Each week the students have to solve a set of exercises during the laboratory classes and submit the completed work electronically.
The students are assisted during the practical laboratory classes by demonstrators.