This module provides foundational knowledge of computer programming concepts and software engineering practices. It introduces students to major data science programming languages and workflows, with a focus on social science data and research questions. Students will be introduced to R, a principal data science programming language. This course covers basic and intermediate programming concepts, such as object types, functions, control flow, testing and debugging. Particular emphasis will be made on data handling and analytical tasks with a focus on problems in social sciences. The module also will include hands-on coding exercises.
- 16x 1.5 hour meetings
- Tuesday and Thursday from 18:00 to 19:30 on Zoom
- No lecture/tutorial in Week 7 (after Session 6)
| Session (Week) | Topic |
|---|---|
| Sessions 1 - 2 (4) | Introduction and Computation |
| Sessions 3 - 4 (5) | R Basics |
| Sessions 5 - 6 (6) | Control Flow |
| Reading Week (7) | |
| Sessions 7 - 8 (8) | Functions |
| Sessions 9 - 10 (9) | Debugging, Testing, Performance and Complexity |
| Sessions 11 - 12 (10) | Data Wrangling |
| Sessions 13 - 14 (11) | Visualisation |
| Sessions 15 - 16 (12) | Gathering electronic data |
This is an introductory class and no prior experience with programming is required.
- Computer with Windows/Mac/Linux OS (no Chrome books)
- Required software:
Books:
-
Matloff, Norman. 2011. The Art of R Programming: A Tour of Statistical Software Design. San Francisco, CA: No Starch Press.
-
Peng, Roger D. 2016. R Programming for Data Science. Leanpub
-
Wickham, Hadley, and Garrett Grolemund. 2017. R for Data Science: Import, Tidy, Transform, Visualize, and Model Data. Sebastopol, CA: O'Reilly Media.
-
Wickham, Hadley. 2019. Advanced R. 2nd ed. Boca Raton, FL: Chapman and Hall/CRC.
Online:
- ✔️ Code exists
- ⌚ Code runs and does what it has to do
- 📜 Code is legible (meaningful naming, comments)
- ⚙️ Code is modular (no redundacies, use of abstractions)
- 🏎️ Code is optimized (no needless loops, runs fast)
Marks at Trinity: https://www.tcd.ie/academicregistry/exams/student-guide/
- Plagiarising computer code is as serious as plagiarising text (see Google LLC v. Oracle America, Inc.)
- All submitted programming assignments and final project should be done individually;
- You may discuss general approaches to solutions with your peers;
- But do not share or view each others code;
- You can use online resources but give credit in the comments.
Check the Trinity's guide on the levels and consequences of plagiarism
This work is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License.
