Navigation

Home

 
Perspective
 
No profession unleashes the spirit of innovation like computer science and engineering. Think of Google, Facebook, Twitter, eBay, Wikipedia, Stanley, Roomba, Second Life, WoW, Farecast, NOAA's hurricane prediction, Microsoft's surprise modeling, each of which is less than a decade old. From research to real-world applications, computer scientists constantly discover ways to improve our lives by creating bold new solutions that connect us to information and to each other in unexpected, forward-thinking ways. Few professions can turn ideas into realities so quickly.  Few have such a direct and positive effect on people's everyday lives. Come, join us, and together we will study the foundations of computational thinking by designing and building solutions to meet the needs of the 21st century.
(adapted from NAE's Changing the Conversation)
 
Goals
 
Our primary goal is to make you a computational thinker. In her inspirational essay on this topic, Jeanette Wing, the current director of CISE at the National Science Foundation defines computational thinking as solving problems, designing systems, and understanding human behavior by drawing on concepts fundamental to computer science. Computational thinking is about conceptualizing and representing problems, and thinking at multiple levels of abstraction. It is much more than being able to program a computer. Computational thinking complements and combines mathematical and engineering thinking. It is a way to make you a better problem solver, not a way to make you think like a computer. To quote Wing, "We humans make computers exciting. Equipped with computing devices, we use our cleverness to tackle problems we would not dare take on, and build systems with functionality limited only by our own imaginations".
 
Who should take Comp 140
 
Comp140 is an introductory course designed for any student interested in using computation to enhance their problem solving abilities. No prior experience in programming is necessary. Mathematics at the high school level (e.g., algebra, trigonometric functions, geometry, elementary probability concepts) will be assumed.
 
Course Format
 
We will have lectures on Monday, Wednesday and Friday 10:00 to 10:50 AM in DH 1064 and  lab/recitation session on Tuesday 2:30 - 4:00 and Wednesday 3:00 - 4:30 in Symonds.  Lecture slides used in class will be posted online after class.  The homework assignment for the week will be posted online on Monday. It will be due the following Monday at 5 pm. Homeworks will involve thought questions, simple exercises to reinforce concepts, as well as projects. Lectures will be interactive and we require you to bring your laptopts to class so you can experiment with ideas during class. If you do not have a laptop, please let the instructor know before class so that arrangements for one can be made.
 
Grading
 
Your final evaluation will be based on homeworks (45%), three exams (10%,15%,15%), and classwork/class participation (15%)
 
Course TextBooks

There are no required textbooks for the class. We will draw on material from a large number of sources. We will provide URLs to all the online resources we draw upon. There are several good introductory textbooks for Python. We recommend Beginning Python: from Novice to Professional, Magnue Lie Hetland, Apress, 2005. as a good reference book on all that Python has to offer. We especially like the ten projects at the end of the book for those who can't wait to get their feet wet in Python. Another excellent textbook that introduces ideas in computer science using Python is:Introduction to computing and programming in Python, Mark Guzdial, Pearson, 2005 If you have any favorites to recommend, email devika@rice.edu 

 

 
 
Subpages (1): Course Policies