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 |
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. |
Dependencies |
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 | % |
Coursework | 100.00% |
AssessmentsFull Time
Coursework |
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 |
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 |
---|
-
[Website], learnpython.org. Interactive Python tutorial,
-
[Website], DataCamp. Introduction to Python,
-
[Website], CodeAcademy. Learn Python 3,
-
[Video], FreeCodeCamp. Learn Python - Full Course for Beginners
[Tutorial],
-
[Website], Edicative. Learn Python 3 from scratch,
|
Discussion Note: |
Approved to allow for approval of parent programme (HDip in Science in Data Analytics). |
|