Computational Thinking and Social Science: Combining Programming, Methodologies and Fundamental Concepts