Facebooktwittergoogle_plusredditpinterestlinkedinmail

About This Course

This two-part course introduces the basic mathematical and programming principles that underlie much of Computer Science. Understanding these principles is crucial to the process of creating efficient and well-structured solutions for computational problems. To get hands-on experience working with these concepts, we will use the Python programming language. The main focus of the class will be weekly mini-projects that build upon the mathematical and programming principles that are taught in the class. To keep the class fun and engaging, many of the projects will involve working with strategy-based games.

In part 2 of this course, the programming portion of the class will focus on concepts such as recursion, assertions, and invariants. The mathematical portion of the class will focus on searching, sorting, and recursive data structures. Upon completing this course, you will have a solid foundation in the principles of computation and programming. This will prepare you for the next course in the specialization, which will begin to introduce a structured approach to developing and analyzing algorithms. Developing such algorithmic thinking skills will be critical to writing large scale software and solving real world computational problems.

Professor Information

Picture of Dr. Joe Warren

Dr. Joe Warren

Joe Warren is a Professor in the Department of Computer Science at Rice University. His main area of research interest is computer graphics and geometric modeling, where he has published extensively. He is the author of the book Subdivision Methods

Full Bio

Picture of Dr. Scott Rixner

Dr. Scott Rixner

Scott Rixner is an Associate Professor of Computer Science at Rice University. His research focuses on systems software and computer architecture. He is well versed in the internals of the Python programming language, as he is currently developing a light-weight

Full Bio

Picture of Dr. Luay Nakhleh

Dr. Luay Nakhleh

Luay Nakhleh received a BSc degree in Computer Science from the Technion (Israel) in 1996, a Master’s degree in Computer Science from Texas A&M University in 1998, and a PhD degree in Computer Science from UT Austin in May 2004

Full Bio