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

The objective of this course is not to turn you into an expert programmer. Rather, 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.

Organization

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.

Structure

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.

Workload

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.

Grading

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 score that is recorded as your grade.  However, your actual score may go up, as the human graders will look at your code and assign partial credit to problems that you missed.

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

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.

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 Due