Undergraduate Course: Computer Simulation (PHYS08026)
Course Outline
| School | School of Physics and Astronomy | 
College | College of Science and Engineering | 
 
| Course type | Standard | 
Availability | Available to all students | 
 
| Credit level (Normal year taken) | SCQF Level 8 (Year 2 Undergraduate) | 
Credits | 20 | 
 
| Home subject area | Undergraduate (School of Physics and Astronomy) | 
Other subject area | None | 
   
| Course website | 
WebCT | 
Taught in Gaelic? | No | 
 
| Course description | This course covers the methodologies of solving scientific problems using computers. It provides a training in the computational modelling of scientific problems and their representation using computer graphics. It also provides a grounding in object-oriented programming through the practical application of the Java language. Students will carry out extensive practical and project work. | 
 
 
Information for Visiting Students 
| Pre-requisites | None | 
 
| Displayed in Visiting Students Prospectus? | Yes | 
 
 
Course Delivery Information
| Not being delivered |   
Summary of Intended Learning Outcomes 
Upon successful completion of this course, it is intended that a student will be able to:  
 
 
- Explain why it is appropriate to solve certain physical problems, such as integration and modelling interacting particles by computation 
 
- Apply the techniques of discretisation and iteration to solve open-ended physical problems  and  demonstrate  an awareness  of the origin and  impact  of numerical errors inherent in such techniques 
 
- Apply the key concepts of OO programming (data encapsulation, inheritance and polymorphism)  by analysing a problem statement to produce a simple OO design and implementing it in Java 
 
- Make use of classes and interfaces of the Java SE API, in particular to read and process data from external sources and to construct simple graphical applications 
 
- Predict when variables are copied by reference or by value according to their type, and the consequences thereof 
 
- Recognise the importance of clear, consistently-documented and error-tolerant codes, making use of Java's language features for achieving this 
 
- Locate and use additional sources of information (to include discussion with peers where appropriate) to resolve practical problems that arise 
 | 
 
 
Assessment Information 
6 checkpoint assignments, 30% 
Project (code and report), 40% 
Degree Examination, 30% |  
 
Special Arrangements 
| None |   
 
Additional Information 
| Academic description | 
Not entered | 
 
| Syllabus | 
*	Key concepts of OO programming; data encapsulation, objects and classes, inheritance and polymorphism; 
*	Analysis of problem statements to produce simple OO designs; 
*	Classes and class hierarchies containing multiple constructors and methods; 
*	Declaration and initialisation of objects and arrays of objects; 
*	Creation of multiple instantiations (objects) of a class; 
*	Method execution on objects and classes; 
*	Pass by reference copy and pass by value; how arrays, objects and primitive types are passed; 
*	Utilisation of classes and interfaces of the Java SE API; 
*	Reading and parsing text from a file and writing data to a file; 
*	Checked and unchecked exceptions; handling exceptions (throw and try/catch); 
*	Simple graphical applications, including drawing objects, simple animation and user interaction (event handling). 
 | 
 
| Transferable skills | 
Not entered | 
 
| Reading list | 
Not entered | 
 
| Study Abroad | 
Not entered | 
 
| Study Pattern | 
Not entered | 
 
| Keywords | CSim | 
 
 
Contacts 
| Course organiser | Dr Kevin Stratford 
Tel: (0131 6)50 6759 
Email:  | 
Course secretary | Miss Jillian Bainbridge 
Tel: (0131 6)50 7218 
Email:  | 
   
 
 | 
 |