Teaching introduction to computing courses, especially to first year college students, is a challenging endeavor given the increasing difficulty of today's students with programming and algorithmic thinking. In this paper the experience of introducing collaborative and project based approaches in a first year University course is reported. Both synchronous collaborative learning approaches and asynchronous collaboration through group project work have been introduced in the course using Python as a programming language. The effect of use of these approaches in students' attitude towards Computer Science and their performance is discussed here.