CSC 100: The Beauty and Joy of Computing

A printable PDF is available.

CSC 100 Class Information and Syllabus

Instructor: Stephen R. Tate (Steve)
Lectures: Mon/Wed 10:00-10:50, Sullivan 227
Lab: Fri 10:00-11:50, Petty 222
Office: Petty 166
Office Hours: Mon/Wed 11:00-12:30, or by appointment
Phone: 336-256-1033

Class Web Page:

Prerequisites: None.

Catalog Description: A broad-based introduction to key concepts and principles of computer science. Exploration of seven big ideas of computing: creativity, abstraction, data, algorithms, programming, the Internet, and impact of computing.

Who This Course is For: This course is for two types of students: non-majors who want to learn more about computing and computer science, and as an optional pre-major course for computer science majors who are just beginning and haven't taken the traditional first computer science class (CSC 130). The course is designed so that students build problem solving and critical thinking skills related to computing (i.e., "computational thinking" skills) that are becoming vital 21st century skills across a wide variety of interests and disciplines. For beginning computer science majors, the foundational skills built in this course are designed to improve success in later computer science courses.

Full Course Description: This course is part of a national initiative to create a new course covering computer science principles that can be offered to a broad audience and can provide a consistent experience for students at both the university level and the high school level through an AP class. The "CS Principles Project" (see is sponsored by the College Board, the National Science Foundation, with partners and advisors from universities and high schools. The CS Principles Project describes the goals of this course as follows:

Computer Science: Principles is designed to introduce students to the central ideas of computing and computer science, to instill ideas and practices of computational thinking, and to have students engage in activities that show how computing and computer science change the world. The proposed course is rigorous and rich in computational content, includes computational and critical thinking skills, and engages students in the creative aspects of the field. Through both its content and pedagogy, this course aims to appeal to a broad audience.
This is not a "computer literacy" class or a "computer programming" class, although at the end students will have a better understanding of how computers work and will have gained some experience in computer programming. Rather, this class is about how to think about problems and solutions in a world that is increasingly data-rich and reliant on computing tools and techniques.

Student Learning Outcomes: Upon successful completion of this course students will be able to

  1. use programming and computing tools in creative expression, creating and analyzing artifacts (creativity);
  2. devise and use multiple levels of abstraction in computation, including the use of models and simulations to raise and answer questions (abstraction);
  3. use computing to examine large datasets and facilitate exploration in order to gain insight and knowledge (data);
  4. devise, express, and evaluate algorithms for solving computational problems (algorithms);
  5. create and evaluate a correct program to implement an algorithm, using abstraction to manage complexity (programming);
  6. explain characteristics of the Internet and systems built on it, including issues of cybersecurity and privacy (Internet);
  7. analyze beneficial and harmful effects of computing, connecting computing to economic, social, and cultural contexts and innovations in other fields (impact).

Textbook and Readings: This class is organized around readings and lab exercises that are distributed through the class web page. We will regularly discuss readings from the following book, which is available online for free, or you can purchase a hardcopy if you prefer:

Hal Abelson, Ken Ledeen, and Harry Lewis. Blown to Bits: Your Life, Liberty, and Happiness After the Digital Explosion. Addison-Wesley, 2008 (online version available at

Teaching Methods and Assignments: This class will meet for two lectures and one mixed lecture/lab per week. Lectures will be interactive, with discussions both in small groups and with the class as a whole. Students are expected to prepare for class by completing assigned readings, and to actively respond and participate in class discussions. Students will demonstrate achievement of learning outcomes through the following work: two in-class exams (mid-term and final), readings and associated reading reflection exercises, lab exercises, homeworks, and a final project. These are described in more detail below:

Exams: The mid-term and final exam will cover topics discussed in lecture and emphasized through lab exercises and homeworks. Questions will cover all 7 of the defined student learning outcomes.

Readings: Most readings will come from the book Blown to Bits, although other short readings will be required as well. Students are expected to complete each reading at least 24 hours in advance of the class discussion and complete a few "reading reflection" questions online in Blackboard. This will give the instructor time to review your responses and guide discussion according to class comments and questions from the reading reflection. For dates of class discussions and information on readings, students should regularly check the schedule on the class web site.

Lab Exercises: All lab exercises involve programming in BYOB, a programming system that was developed by the University of California at Berkeley as an extension to Scratch, from the Massachusetts Institute of Technology. Student work products include programs that they create in BYOB. Exercises are concrete demonstrations of topics being discussed, and each lab session will start with a mini-lecture on relevant topics. The final lab sessions will be dedicated to guided work on student projects. Lab exercises are available on the class web site, both under "Lab Exercises" and linked from the class schedule.

Homeworks: Homeworks consist of independent student work that is less guided than lab work. Some homeworks involve creating a program and some involve written exercises and analysis, and often include open-ended aspects in which students can demonstrate their own particular creativity. Students will typically have two weeks to complete homework. No homeworks will be given in the last month of the semester, when students will be working on their projects.

Project: Students will team up to produce some creative software product (an animation, game, tool, etc.), and will work on this project during the final month of the semester. At the end of the semester there will be a "project showcase" in which students present and demonstrate their projects for the class. Students will vote on the projects, and the winning project will receive a "Student's Choice Award."

Blogging (optional): Students are encouraged (but not required) to write about their experience in this class, including reflection statements on the readings, on a public blog. A separate "Best Student Blogger" award will be given at the end of the semester.

Evaluation and Grading: Each student work product will be graded, and the student's final grade will be determined by assigning each category of work a weighted score according to the following distribution:

Lab Exercises 25%
Homeworks 20%
Project 20%
Mid-term Exam 15%
Final Exam 20%
The final weighted average will be assigned a letter grade according to the following table (exact borderline cases will be given the higher grade - for example, a student with a weighted average of 90 will earn an A-).
97 - 100: A+         93 - 97: A         90 - 93: A-
87 - 90: B+         83 - 87: B         80 - 83: B-
77 - 80: C+         73 - 77: C         70 - 73: C-
67 - 70: D+         63 - 67: D         60 - 63: D-
Below 60: F

Topic Outline and Calendar: For the current and planned list of topics and dates, please see the "Schedule" area of the class web site.

Academic Integrity: Each student is required to abide by the UNCG Academic Integrity Policy on all work in the course. Refer to or the UNCG Undergraduate Bulletin for more information. Some assignments and exercises may involve teamwork, pair programming, or group discussion. When portions of these assignments or exercises are to be done individually, they will be clearly marked as such, and work turned in should be entirely your own. On all work that you turn in, work or ideas that are not your own should be clearly marked and a citation should be given (a list of team members or collaborators, external references, etc.).

Attendance Policy: Attendance will be taken, and students may be dropped from the course if they have more than three unexcused absences. The university allows for a limited number of excused absences for religious observances - students who plan to take such an absence should notify the instructor at least two weeks in advance so that accommodations can be made (also see below for "late work and makeup exams"). It is the student's responsibility to obtain notes from another student if they miss class.

Late Policy and Makeup Exams: Assigned work is due at the beginning of class on the due date, and will not be accepted late. Exams and in-class work must be done on the scheduled day, in class. In cases of serious medical situations (which must be documented with a doctor's excuse), some exceptions can be made. Students with planned absences, whether for university events, religious observance, or other reason, are expected to make arrangements with the instructor to turn in assignments or take exams before the scheduled date of the assignment or test.

Final Exam: The final exam will be held according to the official UNCG Final Exam Schedule, which lists the time for this exam as Wednesday, December 5, 12:00 - 3:00.

ADA Statement: UNCG seeks to comply fully with the Americans with Disabilities Act (ADA). Students requesting accommodations based on a disability must be registered with the Office of Disability Services located in 215 Elliott University Center: (336) 334-5440.

University Closings: If university facilities are closed due to flu outbreak or other emergencies, it does not mean that classes are canceled. In such an event, please check the class web page and Blackboard site for information about if and how the class will proceed.

Commercial note-taking services: Selling class notes for commercial gain or purchasing such class notes in this or any other course at UNCG is a violation of the University's Copyright Policy and of the Student Code of Conduct. Sharing notes for studying purposes, or borrowing notes to make up for absences, without commercial gain, are not violations.