A course on programming and problem solving

Swapneel Sheth, Christian Murphy, Kenneth A. Ross, Dennis Shasha

Research output: Chapter in Book/Report/Conference proceedingConference contribution

Abstract

At its core, Computer Science is the study of algorithmic problem solving. Although it is necessary to teach programming, data structures, computer organization, etc., students should ultimately learn to use these things to solve problems, understand what is good and bad about their solutions, and share their solutions with others. This paper describes a course that focuses on the four steps of the problem solving process: algorithmic thinking, implementation, analysis, and communication. This course, based on Knuth's popular seminar at Stanford, has been extremely successful at the authors' three institutions. In addition to discussing the course's objectives and methodology, we present sample problems, summarize the outcomes and feedback from students, and give advice to other educators looking to create a similar course.

Original languageEnglish (US)
Title of host publicationSIGCSE 2016 - Proceedings of the 47th ACM Technical Symposium on Computing Science Education
PublisherAssociation for Computing Machinery, Inc
Pages323-328
Number of pages6
ISBN (Electronic)9781450338561
DOIs
StatePublished - Feb 17 2016
Event47th ACM Technical Symposium on Computing Science Education, SIGCSE 2016 - Memphis, United States
Duration: Mar 2 2016Mar 5 2016

Publication series

NameSIGCSE 2016 - Proceedings of the 47th ACM Technical Symposium on Computing Science Education

Other

Other47th ACM Technical Symposium on Computing Science Education, SIGCSE 2016
CountryUnited States
CityMemphis
Period3/2/163/5/16

Keywords

  • Open-ended problems
  • Problem-based learning
  • Soft skills

ASJC Scopus subject areas

  • Computer Science(all)
  • Education

Fingerprint Dive into the research topics of 'A course on programming and problem solving'. Together they form a unique fingerprint.

Cite this