CS1000
Syllabus and course materials for CS 1000 at Vanderbilt University
Install / Use
/learn @CliffordAnderson/CS1000README
CS 1000
The Beauty and Joy of Computing
This course introduces the fundamental concepts of computing including abstraction, algorithms, design, and distributed computation. The curriculum is hands-on, focusing on translating ideas into working computer programs and developing a mastery of practical computational literacy. We write our programs in NetsBlox, a block-based language developed by a research team at Vanderbilt University. Along the way, we also discuss the history, ethics, and cultural impact of computing.
While envisioned as an introduction to computing for non-majors, majors and prospective majors are also welcome. Students in the School of Engineering may only receive open elective credit for CS 1000.
A mirror copy of the syllabus is available on Github.
Learning Outcomes
- Solve simple problems with short computer programs
- Examine ethical and social issues arising from the increasing role of algorithms and computer software in everyday life
- Identify the relevance of computational thinking to your particular major and fields of interest
Faculty
- Clifford Anderson, Associate University Librarian for Research and Digital Initiatives and Adjunct Professor of Computer Science
- Email: clifford.anderson@vanderbilt.edu
- Office: 213 Law Library
- Office Hours: 9 - 11 a.m. on Mondays or by appointment
- Administrative Assistant: Susan D. Grider (2-2187)
Meetings
- T/R 9:35 a.m. - 10:50 a.m. in Olin Hall 135
Required Texts
- Erwig, Martin. Once Upon an Algorithm: How Stories Explain Computing. Cambridge: The MIT Press, 2017.
- Evans, Claire. Broad Band: The Untold Story of the Women Who Made the Internet. New York: Portfolio/Penguin, 2018.
Other assigned readings will be available via BrightSpace. The syllabus also includes links to short videos for each session.
Grade distribution
- Class Participation 10%
- Coding Assignments 15% (5 assignments x 3 points each)
- Midterm Examination 15%
- Final Paper 30% (5 to 7 pages)
- Final Project 30%
Class policies
Acknowledgments
This course takes direct inspiration from the Beauty and Joy of Computing curriculum, but also differs in significant ways, using different readings, videos, coding assignments, and programming environment.
Ability and Disability
This class respects and welcomes students of all backgrounds, identities, and abilities. If there are circumstances that make our learning environment and activities difficult, if you have medical information that you need to share with me, or if you need specific arrangements in case we have to evacuate the building, please let me know. As I aspire to create an effective learning environment for all students, I would appreciate if you would discuss your needs with me as soon as possible. I promise to maintain the confidentiality of these discussions. If appropriate, please also contact the Vanderbilt Equal Opportunity, Affirmative Action, and Disability Services Department (EAD) to get more information about specific accommodations.
Absences
Class participation is an important component of this course and more than two unexcused absences may negatively impact your grade. Please consult me in advance if you need to miss more than two class sessions.
Academic Integrity
The Vanderbilt University Honor Code applies to all activities in this course. As for this course, the basic rule is this -- all work submitted in this class must be done completely on your own without assistance from any person, place or thing except the instructors or TAs for this course, the course textbook, and course lecture slides. If you have any doubts, ask your instructor for clarification, not another student (not even the teaching assistants).
Student Privacy
The Family Educational Rights and Privacy Act (FERPA) (20 U.S.C. § 1232g; 34 CFR Part 99) also governs all activities this class. You will be asked to complete and submit online assignments to me and will also be sharing projects with other students in this class. If you have any concerns about digital privacy, please consult me at your earliest convenience.
Technology
We will be using a free and open-source visual programing language called NetsBlox during the course. The sole prerequisite for using NetsBlox is a modern web browser with JavaScript enabled. You will need to bring a computing device to class to follow along with classroom exercises––any brand of laptop or a tablet should be fine. If you do not have a personal laptop or tablet at your disposal, please consult me and we will find alternative arrangements.
Disclaimer
This syllabus provides a general outline for the course. The readings and coding assignments are subject to change. If I have to make substitutions, I will update the syllabus and communicate those changes during class.
Class Schedule
Week One: Introduction
August 22 - What is Computational Thinking?
- Read: Claire L. Evans, "A Computer Wanted," Chapter 1 of Broad Band: The Untold Story of the Women Who Made the Internet (New York: Portfolio/Penguin, 2018)
- Watch: Computational Thinking: A Digital Age Skill for Everyone
- Code:
- Draw a Square
- Draw a Triangle
- Draw a Circle
Week Two: Programming Basics
August 27 - What are Algorithms?
- Read: Martin Erwig, "A Path to Computation," Chapter 1 of Once Upon an Algorithm: How Stories Explain Computing (Cambridge: MIT Press, 2017)
- Watch: The Beauty & Joy of Computing | Dan Garcia | TEDxBerkeley
- Code:
- Hansel and Gretel
- Fidget Spinner
- Splatter Painting
- Click Alzonzo
August 29 - Predicates and Branching
- Read: Martin Erwig, "Walk the Walk: When Computation Really Happens," Chapter 2 of Once Upon an Algorithm: How Stories Explain Computing (Cambridge: MIT Press, 2017)
- Watch: Basic Logic Gates: Explained! (in Minecraft)
- Code:
- Boolean Operators
- Hello, NetsBlox!
- FizzBuzz
Week Three: Abstraction I
September 3 - Control Structures and Variables
- Read: "Weather, Rinse, Repeat," Chapter 10 of Once Upon an Algorithm: How Stories Explain Computing (Cambridge: MIT Press, 2017)
- Watch: What's an Algorithm?
- Code:
- Iterators
- Reporter Blocks
- Palindrome Checker
September 5 - Privacy and Information Hiding
Coding assignment 1 due at the beginning of class
Guest lecturer: Melissa Mallon, Director of Peabody Library/Director of Liaison & Instruction Services
- Read: Hannah Fry, "Data," Chapter 2 of Hello World: Being Human in the Age of Algorithms (New York: Norton, 2018), pp. 25-47
- Watch: Amazon's Alexa Raises Concerns Over Tech and Surveillance
- Code:
- 'Say Hello' Function
- 'Draw a Shape' Function
- 'Day of the Week' Function
Week Four: Data Structures I
September 10 - Representations
- Read: Martin Erwig, "The Mystery of Signs," Chapter 3 of Once Upon an Algorithm: How Stories Explain Computing (Cambridge: MIT Press, 2017)
- Watch: Binary Numbers and Base Systems as Fast as Possible
- Code:
- Convert Decimal to Binary (and back)
September 12 - Lists
Coding assignment 2 due at the beginning of class
- Read: Martin Erwig, "The Detective's Notebook," Chapter 4 of Once Upon an Algorithm: How Stories Explain Computing (Cambridge: MIT Press, 2017)
- Watch: Lists
- Code:
- Distinct Values in a List
- Artworks from the Metropolitan Museum
Week Five: Data Structures II
September 17 - Data Types
- Read: Martin Erwig, "The Magical Type," Chapter 14 of Once Upon an Algorithm: How Stories Explain Computing (Cambridge: MIT Press, 2017)
- Watch: Data Types
- Code:
- Geospatial Coordinates
- Structured Data Library
September 19 - Copyrights
Coding assignment 3 due at the beginning of class
- Read: Andres Guadamuz, "Artificial Intelligence and Copyright," WIPO Magazine (October 2017): 15-19
- Watch: Copying Is Not Theft
- Code:
- Pixabay Gallery
- City Guessing Game
Week Six: Games and Secrets
September 24 - Events and Game Loops
- Read: Claire L. Evans, "The Longest Cave," Chapter 6 of Broad Band: The Untold Story of the Women Who Made the Internet (New York: Portfolio/Penguin, 2018)
- Watch: Event-Driven Programming
- Code:
- Platform Game
- Artwork Puzzle
September 26 - Digital Secrets
Coding assignment 4 due at the beginning of class
- Read: Masaaki Mitani, Shinichi Sato, and Idero Hinoki. "The Foundations of Encryption," Chapter One of The Manga Guide to Cryptography (San Francisco: No Starch Press, 2018), pp. 15-46
- Watch: Cryptography: The Science of Making and Breaking Codes
- Code:
- Caesar Cipher
Week Seven: Abstraction II
October 1 - Higher-Order Functions
- Read: Claire L. Evans, "The Tower of Babel," Chapter 4 of Broad Band: The Untold Story of the Women Who Made the Internet (New York: Portfolio/Penguin, 2018)
- Watch: Who is Grace Hopper?
- Code:
- Caesar Cipher, Revisted
October 3 - Artificial Intelligence
*Coding
Security Score
Audited on Jan 14, 2026
