Skip to main content Skip to navigation

MA117-10 Programming for Scientists

Department
Warwick Mathematics Institute
Level
Undergraduate Level 1
Module leader
Andrew Hague
Credit value
10
Module duration
10 weeks
Assessment
Multiple
Study location
University of Warwick main campus, Coventry
Introductory description

Aspects of software specification, design, implementation and testing will be introduced in the context of the Java language. The description of basic elements of Java will include data types, expressions, assignment and compound, alternative and repetitive statements. Program structuring and object oriented development will be introduced and illustrated in terms of Java's method, class and interface. This will enable the development of software that reads data in a variety of contexts, performs computations on that data and displays results in text and graphical form. Examples of iterative and recursive algorithms will be given. The importance of Java and Java Virtual Machine in networked computing will be described. The majority of examples will be standard applications but the development of Java Applets to be delivered by web browsers will also be covered.

Module web page

Module aims

To provide an understanding of the process of scientific software development and an appreciation of the importance of data vetting, sound algorithms and informative presentation of results.

Outline syllabus

This is an indicative module outline only to give an indication of the sort of topics that may be covered. Actual sessions held may differ.

Aspects of software specification, design, implementation and testing will be introduced in the context of the Java language. The description of basic elements of Java will include data types, expressions, assignment and compound, alternative and repetitive statements. Program structuring and object oriented development will be introduced and illustrated in terms of Java's method, class and interface. This will enable the development of software that reads data in a variety of contexts, performs computations on that data and displays results in text and graphical form. Examples of iterative and recursive algorithms will be given. The importance of Java and Java Virtual Machine in networked computing will be described. The majority of examples will be standard applications but the development of Java Applets to be delivered by web browsers will also be covered.

Learning outcomes

By the end of the module, students should be able to:

  • understand the programming process, from the definition of the problem and the design of a solution at an abstract level, to the coding itself with an integrated approach to testing for correctness,
  • develop programs in a high-level programming language using the imperative paradigm,
  • structure complex software using principles of encapsulation and abstraction in the object-oriented programming abstractions,
  • apply informal reasoning techniques to justify the correctness of methods and programs, and justify desired properties such as termination.
Indicative reading list

Books are not essential for this module as use will be made of on-line tutorial and reference material. An informative, optional text is H M Deitel & P J Deitel, Java How to Program (2nd or 3rd Ed), Prentice Hall.

Subject specific skills

Experience with the Java programming language Understanding of Data Types Iterative Statements Conditional Statements Imperative Programming Object Oriented Programming Inheritance Error Handling Passing by value vs passing by reference. Learning to thinking programmatically and algorithmically and how to take a specification and turn it into a plan for a program.

Transferable skills

Students will acquire key programming and computer skills which will empower them to address software development and new computer languages with confidence.

Study time

Type Required
Lectures 10 sessions of 1 hour (10%)
Tutorials 9 sessions of 2 hours (18%)
Online learning (independent) (0%)
Private study 32 hours (32%)
Assessment 40 hours (40%)
Total 100 hours
Private study description

Lab sessions, review lectured material and work on set exercises.

Costs

No further costs have been identified for this module.

You do not need to pass all assessment components to pass the module.

Assessment group A
Weighting Study time
First Project (programming assignment) 25% 10 hours
Second Project (programming assignment) 35% 14 hours
Third Project (programming assignment) 40% 16 hours
Assessment group R
Weighting Study time
None 100%

It is an optional module, not suitable for reassessement.

Feedback on assessment

Marked homework (both assessed and formative) is returned and discussed in smaller classes.

Courses

This module is Optional for:

  • Year 1 of USTA-G300 Undergraduate Master of Mathematics,Operational Research,Statistics and Economics
  • USTA-G1G3 Undergraduate Mathematics and Statistics (BSc MMathStat)
    • Year 1 of G1G3 Mathematics and Statistics (BSc MMathStat)
    • Year 2 of G1G3 Mathematics and Statistics (BSc MMathStat)
  • USTA-GG14 Undergraduate Mathematics and Statistics (BSc)
    • Year 1 of GG14 Mathematics and Statistics
    • Year 1 of GG14 Mathematics and Statistics
    • Year 2 of GG14 Mathematics and Statistics
    • Year 2 of GG14 Mathematics and Statistics
  • USTA-Y602 Undergraduate Mathematics,Operational Research,Statistics and Economics
    • Year 1 of Y602 Mathematics,Operational Research,Stats,Economics
    • Year 1 of Y602 Mathematics,Operational Research,Stats,Economics

This module is Option list B for:

  • UMAA-G105 Undergraduate Master of Mathematics (with Intercalated Year)
    • Year 1 of G105 Mathematics (MMath) with Intercalated Year
    • Year 2 of G105 Mathematics (MMath) with Intercalated Year
  • UMAA-G100 Undergraduate Mathematics (BSc)
    • Year 1 of G100 Mathematics
    • Year 1 of G100 Mathematics
    • Year 1 of G100 Mathematics
    • Year 2 of G100 Mathematics
    • Year 2 of G100 Mathematics
    • Year 2 of G100 Mathematics
  • UMAA-G103 Undergraduate Mathematics (MMath)
    • Year 1 of G100 Mathematics
    • Year 1 of G103 Mathematics (MMath)
    • Year 1 of G103 Mathematics (MMath)
    • Year 2 of G100 Mathematics
    • Year 2 of G103 Mathematics (MMath)
    • Year 2 of G103 Mathematics (MMath)
  • UMAA-G106 Undergraduate Mathematics (MMath) with Study in Europe
    • Year 1 of G106 Mathematics (MMath) with Study in Europe
    • Year 2 of G106 Mathematics (MMath) with Study in Europe
  • UMAA-G1NC Undergraduate Mathematics and Business Studies
    • Year 1 of G1NC Mathematics and Business Studies
    • Year 2 of G1NC Mathematics and Business Studies
  • UMAA-G1N2 Undergraduate Mathematics and Business Studies (with Intercalated Year)
    • Year 1 of G1N2 Mathematics and Business Studies (Intercalated yr)
    • Year 2 of G1N2 Mathematics and Business Studies (Intercalated yr)
  • UMAA-GL11 Undergraduate Mathematics and Economics
    • Year 1 of GL11 Mathematics and Economics
    • Year 2 of GL11 Mathematics and Economics
  • UECA-GL12 Undergraduate Mathematics and Economics (with Intercalated Year)
    • Year 1 of GL12 Mathematics and Economics (with intercalated year)
    • Year 2 of GL12 Mathematics and Economics (with intercalated year)
  • UMAA-G101 Undergraduate Mathematics with Intercalated Year
    • Year 1 of G101 Mathematics with Intercalated Year
    • Year 2 of G101 Mathematics with Intercalated Year
  • USTA-Y602 Undergraduate Mathematics,Operational Research,Statistics and Economics
    • Year 2 of Y602 Mathematics,Operational Research,Stats,Economics
    • Year 2 of Y602 Mathematics,Operational Research,Stats,Economics

This module is Option list C for:

  • UMAA-GV17 Undergraduate Mathematics and Philosophy
    • Year 1 of GV17 Mathematics and Philosophy
    • Year 1 of GV17 Mathematics and Philosophy
    • Year 1 of GV17 Mathematics and Philosophy