Undergraduate students often start their academic course of studies with inadequate learning and thinking skills. Our college has a policy of setting high standards, while supporting students' learning in a variety of ways. In this paper we present two distinctive courses designed to aid students develop logical and algorithmic thinking, essential for coping with software engineering studies. The courses are taught independently from but in parallel to Introduction to Computer Science and Math courses of first semester. Courses elaborate on algorithmic thinking, logical reasoning and argumentation while explicating abstract ideas which are often hidden in a loaded curriculum of the disciplinary courses. At the same time, connections are made to the application of the abstract ideas in the disciplinary courses. Feedback from participants in the two courses demonstrates an increased awareness and appreciation of abstract ideas beyond mathematical and programming knowledge, improved problem-solving skills and deeper understanding of concepts and principles.
[1]
Keith Devlin,et al.
WHY UNIVERSITIES REQUIRE COMPUTER SCIENCE STUDENTS TO TAKE MATH
,
2003
.
[2]
Bruria Haberman,et al.
Supporting abstraction processes in problem solving through pattern-oriented instruction
,
2008,
Comput. Sci. Educ..
[3]
Janet Rountree,et al.
Learning and Teaching Programming: A Review and Discussion
,
2003,
Comput. Sci. Educ..
[4]
Miriam Bassok,et al.
Analogical Transfer in Problem Solving
,
2003
.
[5]
Orna Muller.
Pattern oriented instruction and the enhancement of analogical reasoning
,
2005,
ICER '05.
[6]
Annie Selden,et al.
Validations of proofs considered as texts: Can undergraduates tell whether an argument proves a theorem?
,
2003
.
[7]
Susanna S. Epp.
The Role of Logic in Teaching Proof
,
2003,
Am. Math. Mon..
[8]
Richard E. Mayer,et al.
Problem-solving transfer.
,
1996
.