MY570      Half Unit
Computer Programming

This information is for the 2018/19 session.

Teacher responsible

Dr Milena Tsvetkova COL8.03 and Dr Pablo Barbera Aranguena COL7.10

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.

This course is available to all research students 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 programing language Python and R. The course will also cover the foundations of computer languages, algorithms, functions, variables, object­orientation, scoping, and assignment.

Teaching

20 hours of lectures and 15 hours of computer workshops in the MT.

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.

Formative coursework

Students will be expected to produce 10 problem sets in the MT.

Type: Weekly, structured problem sets with a beginning component to be started in the staff-led lab sessions, to be completed by the student outside of class. Answers should be formatted and submitted for assessment. 

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

Take home exam (50%) and in class assessment (50%) in the MT.

Student problem sets will be marked each week, and will provide 50% of the mark. 

Marking of these assessments will be at a level appropriate for PhD students.

Key facts

Department: Methodology

Total students 2017/18: Unavailable

Average class size 2017/18: Unavailable

Lecture capture used 2017/18: Yes (MT)

Value: Half Unit

Guidelines for interpreting course guide information

Personal development skills

  • Self-management
  • Team working
  • Problem solving
  • Application of information skills
  • Communication
  • Application of numeracy skills
  • Specialist skills