Module Code: H8PDA
Long Title Programming for Data Analytics
Title Programming for Data Analytics
Module Level: LEVEL 8
EQF Level: 6
EHEA Level: First Cycle
Credits: 10
Module Coordinator: EUGENE O'LOUGHLIN
Module Author: ORLA LAHART
Departments: School of Computing
Specifications of the qualifications and experience required of staff

M.Sc. or Ph.D. degree in Computing or relative discipline (i.e. from the Computing/I.T. department/faculty/school).

At least 5 years’ worth of industry experience in programming, ideally within a Data Analytics environment.

Learning Outcomes
On successful completion of this module the learner will be able to:
# Learning Outcome Description
LO1 Design algorithms and utilize common programming patterns and constructs in order to solve computational problems
LO2 Comprehend, synthesize, adapt and properly utilize common programming conventions (e.g. commenting, structuring, indenting), techniques (e.g. object-orientation, extensibility, maintainability, readability) and tools (e.g. version control, debugging, testing)
LO3 Evaluate, assess and analyze the fitness, efficiency, speed and accuracy of a computer program for its intended purpose
LO4 Comprehend, adapt, apply and properly utilize 1 or 2 professional programming languages for Data Analytics, such as Python or R, via common interfaces and configurations, such as Spyder IDE and Jupyter notebooks.
LO5 Implement, apply, combine, organize and synthesize Data Analytics techniques, algorithms and formulae via the medium of programming.
Module Recommendations

This is prior learning (or a practical skill) that is required before enrolment on this module. While the prior learning is expressed as named NCI module(s) it also allows for learning (in another module or modules) which is equivalent to the learning specified in the named module(s).

No recommendations listed
Co-requisite Modules
No Co-requisite modules listed
Entry requirements

See Section 4.2 Entry Procedures and Criteria for the programme. 


Module Content & Assessment

Indicative Content
Week 1: Introduction, programming generics, IDE and version control
Introduction to the module, Python 3 and the basic Integrated Development Environment. "Hello World!". Filesystem navigation. Version control.
Week 2: Variables, data types and operations
Introduction to variables and naming rules in Python. Assignment operator. Primitive data types (Integer, Float, String, Boolean) and common associated operators.
Week 3: Variable manipulation I
Introduction to Python/R packages. Built-in functions. Common functions and operations for each data type. Lists, Dictionaries and indexing.
Week 4: Input and output
Opening, reading and writing of local and remote files. Database interaction examples. Manipulation of plain, CSV/TSV, JSON and XML files. Command line input and output.
Week 5: Control structures
Review of boolean expressions. Flowcharts. If-Elif-Else (conditional) structure. Importance of indentation in Python. For/Foreach (repetition) structure. While/Do (repetition) structure.
Week 6: Functions, Object-Oriented Programming
User-defined functions, input, return values and chaining. File inclusion. Recursion. Object-Orientation concept and basic principles.
Week 7: Variable manipulation II, Dataframes
More commonly-used operations and functions. Good habits, popular programming concepts, structures and tricks. Introduction to dataframes.
Week 8: Data preprocessing techniques
Filtering, removal, imputation. Outliers. Iteration over dataset. Descriptive statistics.
Week 9: Data Analysis techniques I
Introduction to Pandas and NumPy.
Week 10: Data Analysis techniques II
Single and Multiple Linear Regression. Paired and Unpaired Student's T test. ANOVA test. Chi Square test.
Week 11: Data graphing and charting I
Introduction to Matplotlib. Basic graphs and charts. Concepts, conventions and good habits. Descriptive statistics graphs, charts and plots. UX, common conventions and good habits for presenting data analysis results via graphs.
Week 12: Data graphing and charting II
Advanced visualizations with ggplot and Plotly.
Assessment Breakdown%


Full Time

Assessment Type: Assignment 1 % of total: 40
Assessment Date: n/a Outcome addressed: 1,2,3,4
Non-Marked: No
Assessment Description:
Assessment will be through an in-class, open book test, that will require learners to write code, evaluate statements and solve problems via programming. Learners will be assessed not only on algorithmic and syntactical correctness, but also on appropriate utilization of common programming patterns and structures.
Assessment Type: Assignment 2 % of total: 60
Assessment Date: n/a Outcome addressed: 1,2,3,5
Non-Marked: No
Assessment Description:
Learners will be assessed through a project with both practical and research elements. Sample project: You are required to carry out a series of analyses of two datasets utilising appropriate programming languages and programming environments. For each of the chosen datasets you are required to compile a report of the analysis (circa 3,000 words for the report)
No End of Module Assessment
No Workplace Assessment
Reassessment Requirement
Coursework Only
This module is reassessed solely on the basis of re-submitted coursework. There is no repeat written examination.

NCIRL reserves the right to alter the nature and timings of assessment


Module Workload

Module Target Workload Hours 0 Hours
Workload: Full Time
Workload Type Workload Description Hours Frequency Average Weekly Learner Workload
Lecture No Description 36 Per Semester 3.00
Lab No Description 24 Per Semester 2.00
Independent Learning No Description 190 Per Semester 15.83
Total Weekly Contact Hours 5.00
Workload: Part Time
Workload Type Workload Description Hours Frequency Average Weekly Learner Workload
Lecture No Description 36 Per Semester 3.00
Lab No Description 24 Per Semester 2.00
Independent Learning No Description 190 Per Semester 15.83
Total Weekly Contact Hours 5.00

Module Resources

Recommended Book Resources
  • Eric Matthes. (2019), Python Crash Course, 2. No Starch Press, p.560, [ISBN: 1593279280].
  • Wes McKinney. (2017), Python for Data Analysis, 2. O'Reilly Media, p.550, [ISBN: 1491957662].
  • Al Sweigart. (2019), Automate the Boring Stuff with Python, 2nd Edition, 2. No Starch Press, p.500, [ISBN: 1593279922].
Supplementary Book Resources
  • Thomas H. Cormen. (2009), Introduction to Algorithms, 1. MIT Press, p.1292, [ISBN: 0262033844].
  • Luciano Ramalho. (2015), Fluent Python, 1. O'Reilly Media, p.770, [ISBN: 1491946008].
  • J. D. Long,Paul Teetor. (2019), R Cookbook, 2. O'Reilly Media, p.600, [ISBN: 1492040681].
  • Robert Stinerock. (2018), Statistics with R, 1. SAGE Publications Limited, p.392, [ISBN: 9781473924901].
This module does not have any article/paper resources
Other Resources
Discussion Note: Approved to allow for approval of parent programme (HDip in Science in Data Analytics).