Course CSE101
Title Introduction to Computational and Algorithmic Thinking
Credits 3
Course Coordinator

Steve Skiena


Introduces central ideas of computing and computer science, instills practices of computational thinking, and engages students in the creative aspects of the field. Also introduces appropriate computing technology as a means for solving computational problems and exploring creative endeavors. Requires some programming.

Prerequisite: Level 3 or higher on the mathematics placement examination

Prerequisite Level 3 or higher on the mathematics placement examination
Course Outcomes
  • An ability to use computing tools and techniques to create computer program artifacts
  • An ability to use multiple levels of abstraction, models, and simulation in computation
  • An ability to use algorithms to develop and express solutions to computational problems

  • Required: Explorations in Computing: An Introduction to Computer Science and Python Programming by John S. Conery. Chapman and Hall/CRC, 2014. ISBN 978-1466572447.
    • While completing the assigned readings, students are expected to complete the tutorials at the end of each section of each chapter. These tutorials reinforce the concepts in each chapter and provide practical, hands-on experience in Python programming. The tutorials also supplement the material covered in lecture, lab and homework. Students are responsible for completing the assigned readings and tutorial exercises in preparation for examinations.
  • Optional: Blown to Bits: Your Life, Liberty, and Happiness after the Digital Explosion, by Hal Abelson, Ken Ledeen, and Harry Lewis, Addison-Wesley. 2008. ISBN 0137135599. You can download this book for free at the given link.

Major Topics Covered in Course
  • Data representation and compression
  • Computational thinking and problem solving
  • Basic algorithms for searching and sorting
  • Boolean logic
  • Fundamentals of programming in the Python language
  • Social, legal and ethical issues in computing

Laboratory Projects
  • Resume development (2 weeks)
  • Spreadsheet project (2 weeks)
  • Multimedia presentation (2 weeks)
  • Webpage development (2 weeks)

Course Webpage