Giter VIP home page Giter VIP logo

pop77001_computer_programming_2022's Introduction

POP77001 Computer Programming for Social Scientists

Michaelmas Term 2022

About This Module

This module provides foundational knowledge of computer programming concepts and software engineering practices. It introduces students to major programming languages and workflows for data analysis, with a focus on social science questions and statistical techniques. Students will become familiar with R and Python, two principal programming languages used in data science and research. This course covers basic and intermediate programming concepts, such as objects, types, functions, control flow, debugging in both procedural and object-oriented paradigms. Particular emphasis will be made on data handling and analytical tasks with a focus on problems in social sciences. Homeworks will include hands-on coding exercises. In addition, students will apply their programming knowledge on a research project at the end of the module.

Instructors

Module Meetings

Week Date Language Topic Due
1 12 September - Introduction to Computation
2 19 September R R Basics
3 26 September R Control Flow in R
4 3 October R Functions in R Assignment 1
5 10 October R Debugging and Testing in R
6 17 October R Data Wrangling in R
7 24 October - - Assignment 2
8 31 October Python Fundamentals of Python Programming I
9 7 November Python Fundamentals of Python Programming II
10 14 November Python Data Wrangling in Python Assignment 3
11 21 November Python Classes and Object-oriented Programming
12 28 November Python, R Complexity and Performance Assignment 4

Prerequisites

This is an introductory class and no prior experience with programming is required.

Hardware and Software

  • Laptop with Windows/Mac/Linux OS (no Chrome books)
  • Required software:
    • Jupyter - web-based interactive computational environment
    • Python (version 3+) - versatile programming language
    • R (version 4+) - statistical programming language
  • Additional software:
    • Git - version control system
    • GitHub - git-based online platform for code hosting
    • RStudio - integrated development environment for R
    • Spyder - integrated development environment for Python
    • Visual Studio Code - feature-rich text editor

See syllabus for further details.

Module Materials

Additional Materials

Books:

Online:

Assessment

  • Participation (10 %)

    • Tutorial attendance
  • 4 assignments (40%)

    • Bi-weekly programming exercises
    • Due by 12:00 on Monday of weeks 4, 7, 10 and 12 on Blackboard
  • Research project (50%)

    • Final Python/R project demonstrating familiarity with programming concepts and ability to communicate results
    • Due by 12:00 on Monday, 19 December 2022

Assessment criteria

  1. ✔️ Code exists
  2. ⌚ Code runs and does what it has to do
  3. 📜 Code is legible (meaningful naming, comments)
  4. ⚙️ Code is modular (no redundacies, use of abstractions)
  5. 🏎️ Code is optimized (no needless loops, runs fast)

Marks at Trinity: https://www.tcd.ie/academicregistry/exams/student-guide/

Plagiarism

  • 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.

Watch this video explaining the difference between collaboration and collusion.

Check the Trinity's guide on the levels and consequences of plagiarism

pop77001_computer_programming_2022's People

Contributors

tpaskhalis avatar jeffreyziegler avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.