MY570 Half Unit
Computer Programming
This information is for the 2020/21 session.
Teacher responsible
Dr Milena Tsvetkova COL8.06
Availability
This course is available on the MPhil/PhD in Social Research Methods. This course is available with permission as an outside option to students on other programmes where regulations permit.
Course content
This course introduces students to the fundamentals of computer programming as students design, write, and debug computer programs using the programming language Python and R. The course will also cover the foundations of computer languages, algorithms, functions, variables, objectorientation, scoping, and assignment. The course will rely on practical examples from computational social science and social data science.
Students will learn how to design algorithms to solve problems and how to translate these algorithms into working computer programs. Students acquire skills and experience as they learn Python and R, through programming assignments with an approach that integrates project-based learning. This course is an introduction to the fundamental concepts of programming for students who lack a formal background in the field, but will include more advanced problem-solving skills in the later stages of the course. Topics include algorithm design and program development; data types; control structures; functions and parameter passing; recursion; data structures; searching and sorting; and an introduction to the principles of object-oriented programming. The primary programming languages used in the course will be Python and R.
Teaching
This course is delivered through a combination of classes and lectures totalling a minimum of 20 hours across Michaelmas Term. This year, some or all of this teaching may be delivered through a combination of virtual classes and flipped-lectures delivered as short online videos.
This course has a reading week in Week 6 of MT.
Formative coursework
Students will be expected to produce 10 problem sets in the MT.
Students will work on weekly, structured problem sets in the staff-led class sessions. Example solutions will be provided at the end of each week.
Indicative reading
- Guttag, John V. Introduction to Computation and Programming Using Python: With Application to Understanding Data. MIT Press, 2016.
- Lutz, Mark Learning Python. 5th Edition. O’Reilly, 2013. Intermediate and Advanced documentation at https://www.python.org/doc/.
- Miller, Bradley N. and David L. Ranum. Problem Solving with Algorithms and Data Structures Using Python. Available online at http://interactivepython.org/runestone/static/pythonds/index.html.
- Python, Intermediate and advanced documentation. Available online at https://www.python.org/3doc/.
- Venables, William N., David M. Smith, and the R Core Team. An Introduction to R. Available online at https://cran.r-project.org/doc/manuals/r-release/R-intro.pdf.
- Zuur, Alain, Elena N. Ieno, and Erik Meesters. A Beginner's Guide to R. Springer Science & Business Media, 2009.
Assessment
Project (50%) and problem sets (50%) in the MT.
For the individual project, students will be required to develop Python software that addresses a sufficiently complex computational social science task. Examples of possible projects include a software package that collects and analyses online data, an experimental game, or an agent-based model. Marking of this assessment will be at a level appropriate for PhD students.
Important information in response to COVID-19
Please note that during 2020/21 academic year some variation to teaching and learning activities may be required to respond to changes in public health advice and/or to account for the situation of students in attendance on campus and those studying online during the early part of the academic year. For assessment, this may involve changes to mode of delivery and/or the format or weighting of assessments. Changes will only be made if required and students will be notified about any changes to teaching or assessment plans at the earliest opportunity.
Key facts
Department: Methodology
Total students 2019/20: 1
Average class size 2019/20: 1
Value: Half Unit
Personal development skills
- Self-management
- Team working
- Problem solving
- Application of information skills
- Communication
- Application of numeracy skills
- Specialist skills