Skip to main content Skip to navigation

MA117-10 Programming for Scientists

Department
Warwick Mathematics Institute
Level
Undergraduate Level 1
Module leader
Christian Ikenmeyer
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 Python language. The description of basic elements of Python will include data types, expressions, program flow, recursion, functions, exception handling, object orientation, and unit tests. This enables the development of software that performs computations in a wide variety of contexts. The importance of Python in data science and machine learning will be described. The majority of examples will be standard applications.

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 Python language. The description of basic elements of Python will include data types, expressions, program flow, recursion, functions, exception handling, object orientation, and unit tests. This enables the development of software that performs computations in a wide variety of contexts. The importance of Python in data science and machine learning will be described. The majority of examples will be standard applications.

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

Reading lists can be found in Talis

Subject specific skills

Experience with the Python programming language, Understanding of Data Types, Iterative Statements, Conditional Statements, Imperative Programming, Object Oriented Programming, Inheritance, Error Handling. 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 72 hours (72%)
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 C
Weighting Study time Eligible for self-certification
Programming Assignments 50% No

Several programming assignments throughout the term

Centrally-timetabled exam 50% No
Assessment group R1
Weighting Study time Eligible for self-certification
Centrally-timetabled examination (on-campus) 100% No
Feedback on assessment

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

Past exam papers for MA117

Courses

This module is Core option list B for:

  • B103 Mathematics MMaths