Course Syllabus

No profession unleashes the spirit of innovation like computer science and engineering. Computer software runs the modern world. In the last week, what was the longest stretch of time you went without interacting with a computer in some way? Think of cell phones, cars, Google, Facebook, Twitter, eBay, Wikipedia, Roomba, World of Warcraft, Amazon, and NOAA’s hurricane prediction, most of which are less than a decade old. Moreover, computation is now radically transforming the social sciences and humanities. Students will benefit by being able to apply computational thinking to their own study and research areas.

About the Course

This course is designed to give you an overview of computer science and teach you about problem solving in a way that utilizes computation. Upon completion of this course, you will have a feel for how to think about and structure problems in such a way that you can use a computer to help you solve them. Programming is necessarily a part of this process, but it is neither the only part nor the most important part.

Some main topics:

  • Computational thinking / computational problem solving
  • Coding, including best practices
  • Data structures
  • Data analysis


The course will be organized around the following main applications. You will then explore algorithms and implementations of computational solutions for those problems. These will introduce Python programming and computational problem solving throughout the course.

  1. Customizing House Plans: Using architectural cost models.

  2. Rock-Paper-Scissors-Lizard-Spock: Playing a game from popular culture.

  3. Statistics: Solving statistical problems.

  4. Mathematical Modeling: Modeling and exploring the behavior of populations in a predator-prey relationship as represented by Lotka-Volterra equations.

  5. Databases: Storing, updating, and finding information in a large data set.
  6. Text Analysis: Analyzing statistical properties of natural language texts. Generating similar natural language text automatically via Markov models.

  7. Social Networks: Building social networks and measuring properties thereof.

  8. Machine Learning: Using neural nets to recognize visual patterns.


Before class, you are expected to watch the video lectures and take the online quiz that correspond to the class.  These materials and their schedule are listed on the Modules page.  These quizzes are graded.

During class, you will work on exercises (see Class Schedule or Modules) that apply the ideas from the videos.  You will work in groups.  Participation during class -- i.e., attending and working on the exercises — counts as part of the course grade.  Completing the exercises successfully is not required, but doing so will help on the assignments.  Exercise solutions are provided after class.  Sometimes the exercises are pieces of the assignments.

Summer session only:  Class is online via teleconferencing (see Conferences) at the scheduled class time — 10:30am-12n Central Time.  If there is sufficient demand, I will also hold class in a classroom, so that Houston-based students can attend in person.  Working in groups is optional for those teleconferencing.  Due to scheduling issues, attendance is not required, but still strongly recommended.

Assignments are done outside class, although you can work on them during class if you've finished the class-time exercises.  Each assignment has two parts — one where you will turn in code, and one where you will turn in text.

Exams will be during 3-hour scheduled periods outside of class.  Multiple times will be offered to accommodate schedules.


The time that students spend varies tremendously, but the following numbers are what is reported by students.

  • Before each class:  About half hour of videos — sometimes more, sometimes less.  Students skip through or re-watch as desired.  On some devices, you might be able to speed up playback of the videos.  A short quiz that students typically spend about a half hour on.
  • During class:  Class attendance and participation is expected.  But, you always attend class, anyways, right?
  • Assignments:  Nine per semester — a week or two per assignment.  Students average about 5 hours per assignment, but with a wide range of 1 to 15 hours per assignment.


Your course grade will be broken down as follows:

Activity Description Spring/Fall Summer
Class attendance & participation You are expected to attend class and work with a group on exercises.  Completing the exercises successfully is not required. 10% 0%
Before-class quizzes There will be a short quiz before each class. You will have three attempts at each quiz (with no penalty). You will be able to see the explanations/hints immediately after you submit. 10% 10%
Assignments Nine assignments, completed individually. 50% 55%
Exams Two exams, completed individually. 30% 35%

The code on each assignment will be partially auto-graded.  When you turn it in, you'll see a tentative score that is initially recorded in the system.  However, your final score may change when looked at my human graders.  Parts of each assignment are not considered by the auto-grader.  Also, human graders may alter your score higher for partial credit or lower if your code computed the correct answers only by accident.

Note that exam scores are typically lower than assignment scores, even though they are of similar difficulty.  On assignments, you have essentially unlimited time and can get help from course staff.  On exams, you have limited time and very limited help from course staff.

Late Submissions

The Canvas system has the notion of a "due date" and a "available until date". The "due date" is the real deadline by which you should turn in your work. The "available until date" is the time after which the system will stop accepting submissions.

Late penalty:  We will apply a late penalty of 10 points per day for assignments and quizzes (not exams) turned in after the due date.

Late days:  Each student is allowed 3 late days or automatic penalty-free 24-hour extensions of assignment deadlines (not quizzes or exams).  These will be applied by the graders at the end of the semester without any required student action.


Extensions allow students to turn in graded work late without a penalty.  Extensions will only be granted under exceptional circumstances (such as medical emergencies). Having lots of work and deadlines is not an exceptional circumstance; it is part of being a college student.

Grade Disputes

If you believe your grade on an assignment is incorrect, you have 7 days from when the assignment was returned to bring this to the attention of the staff.

  1. Discuss your assignment with the original grader.
  2. You can appeal to the TA in charge of grading (see the Course Staff in the navigation), or to the instructor during the summer.

Honor Code Policy

We take the Honor Code very seriously. The work you submit for this class is expected to be the result of your own work. Attempting to take credit for someone else’s work by turning it in as your own constitutes plagiarism, as defined by the Rice Honor Code.


You may use any materials provided by the course.  You may use your own materials, including code from your group's in-class exercises.

You may collaborate with anyone or with any website or book.  However, you may use at most two lines of code from any such source.  Changing variable names or otherwise transforming code does not allow you to exceed that two-line rule.  You should comment your code to cite any sources.


You may use any materials provided by the course.  You may use your own materials, including code from your group's in-class exercises.

After you have taken the quiz once, you may discuss the contents and topics of the quiz as much as you like with others, but you should not share actual solutions.


You will need to bring a laptop to use Canvas, CodeSkulptor & its documentation, OwlTest, and CanvasTest.  (I cannot guarantee power outlet availability.)  I can bring a Chromebook for you to use, if you notify me ahead of time.

You may use the laptop to write and test code.  You may access anything provided as part of this course, including your own notes and in-class group work.  Bring headphones if you will access course videos.  You may not access any other website.

You may read your written notes and write on scratch paper.  You may not use any books.

No collaboration is allowed.

Students with Disabilities

If you have a documented disability that will impact your work in this class, please contact me in the first two weeks of class to discuss your needs. Additionally, you will need to register with the Disability Support Services Office in the Allen Center.

Course Summary:

Date Details