Abstract

ACM guidelines suggest that the introductory computer science sequence can be split into three courses, either to introduce more topics, or to cover topics in more depth. We have been applying the second approach for several years. We have found that covering introductory topics in depth greatly reduces the failure rate in upper level courses. We feel that without a minimal level of programming expertise, and the intuition that comes with it, students will have difficulty grasping the advanced concepts, and completing the large software projects, introduced in upper level courses. Our introductory courses therefore stress programming experience, problem-solving skills, object-oriented design, and software engineering principles. Our goal is not to weed out weaker students, but to allow them overcome their weaknesses early in the degree program. An important objective for all three courses is to insure that each introductory class prepares students for the next introductory class. This paper discusses the topics covered in each of the three introductory courses, including sample programming projects designed to give students the tools they need to succeed in upper level courses.

Full Text
Published version (Free)

Talk to us

Join us for a 30 min session where you can share your feedback and ask us any queries you have

Schedule a call