CS302: Computer Fluency

Syllabus for Spring 2018

Course Description

Computer Science is transforming virtually all aspects of our lives, and the digital revolution is still in its infancy. In this class, you will learn the core concepts of Computer Science. We will start with algorithms – the methodical instructions that tell computers what to do – and computer programming, in Python, to implement them. To better understand how computers work, you will learn to design electrical circuits that carry out the programming constructs in Python. Then, we will explore some of the Computer Science topics having the most impact today, including networks, the "internet of things", computer security, artificial intelligence and machine learning. Lastly, we will examine the social impacts of the digital revolution, from the birth of billion-dollar industries to concerns about privacy, autonomous systems and the loss of jobs.

Teaching Staff

Professor: Bruce Porter, porter@cs.utexas.edu, GDC 3.704, (512)471-9565

Teaching Assistants:

Office Hours

Bruce Porter Tuesday 10:00-11:00 and Thursday 3:00-4:00 GDC 3.704
Tim Gianitsos Monday 1:00-2:00 Location: GDC 1.302, Desk 5
Katherine Bruton Wednesday 2:00-3:00 Location: GDC 1.302, Desk 1
Ann Yue Thursday 1:00-2:00 Location: GDC 1.302, Desk 1
Kevin Yu Thursday 5:00-6:00 Location: GDC 1.302, Desk 5

Other times by appointment.

Textbooks and Supplies

No textbook is required for the class. On-line materials will be used throughout the semester. Some students might prefer having a textbook to help with the computer programming assignments. There are many good books on introductory programming with Python, such as: Starting Out with Python by Tony Gaddis.

Class Schedule

The class meets three times each week and you're expected to attend. On Mondays and Wednesdays, we meet together in GDC 2.216. On Fridays, we meet in small discussion sections, which are scheduled as follows:

9:00 GDC 6.202 Kevin Yu
10:00 GDC 6.202 Kevin Yu
11:00 GDC 4.302 Tim Gianitsos
12:00 SAC 5.102 Tim Gianitsos
1:00 ETC 2.132 Ann Yue
2:00 CLA 0.104 Katherine Bruton
The Friday sessions are very important – don't skip them. Please attend the discussion section in which you are registered. Attending a different section is risky because space is limited and priority will be given to registered students.


Although we might adjust the schedule of topics during the semester, here's the current plan:

1/15   algorithms algorithms
1/22 algorithms algorithms algorithms
1/29 algorithms algorithms algorithms
2/5 EXAM 1 programming programming
2/12 programming programming programming
2/19 programming programming programming
2/26 programming circuit design circuit design
3/5 circuit design EXAM 2 no class
3/12 spring break spring break spring break
3/19 Internet Internet Internet
3/26 security security security
4/2 artificial intelligence artificial intelligence machine learning
4/9 machine learning Watson machine learning
4/16 autonomous vehicles EXAM 3 no class
4/23 social impacts social impacts team project
4/30 social impacts social impacts DUE: team project


Final grades (using the plus-minus grading system) will be assigned based on the following:

You may feel that you're spending a lot of time on the assignments, given the small amount that each contributes to your grade. However, be aware that the best way to prepare for the exams, and to complete your team project, is to do well on the assignments. Each assignment will have a deadline. Late submissions will not be accepted.

Quantitative Reasoning Flag

This course carries the Quantitative Reasoning flag. Quantitative Reasoning courses are designed to equip you with skills that are necessary for understanding the types of quantitative arguments you will regularly encounter in your adult and professional life. You should therefore expect a substantial portion of your grade to come from your use of quantitative skills to analyze real-world problems.

Staying in Touch

The class will be using Canvas. Announcements, assignments and course materials will be posted there frequently. You're responsible for visiting the site frequently to keep up.


The assignments must be done individually, except when group work has been approved. Here are the policies of the UT Computer Science Department and this class. If you cheat, you fail.