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, Petty 223
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 the 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 recent effort to create a new class offered through both high schools (as an Advanced Placement "CS Principles" class) and colleges, with a goal of making computer science education accessible and relevant to a broad audience. The CSC 100 course at UNCG is designed around the same student learning outcomes as the CS Principles curriculum, and high school students who score a 3 or above on the AP exam receive credit for this class upon entering UNCG (students who receive credit for the AP class should not take this class at UNCG!). The high-level purpose and goals of the course are described by the College Board AP document as follows:

AP Computer Science Principles introduces students to the central ideas of computer science, instilling the ideas and practices of computational thinking, and inviting students to understand how computing changes the world. Students develop innovative computational artifacts using the same creative processes artists, writers, computer scientists, and engineers use to bring ideas to life.

To appeal to a broader audience, including those often underrepresented in computing, this course emphasizes the vital impact advances in computing have on people and society. The course goes beyond the study of machines and systems and gives students the opportunity to investigate computing innovations that span a variety of interests and to examine the ethical implications of these new technologies.

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 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 and information);
  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: Students are expected to participate responsibly in course activities, including class and lab sessions, assignments, and enrichment activities. These are described in more detail below.

Attendance/Participation: This class will meet for two lectures and one mixed lecture/lab per week, and students are expected to be in class on time. Students should prepare for class by completing assigned readings, and are expected to participate in class discussions.

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/Discussion: Students will explore the impact of technology on society through a series of readings from the book Blown to Bits, as well as other sources. Each major reading will take place during a two-week timeframe: in the first week, students are expected to read the material and answer "reading reflection" questions in Canvas; during the second week students will participate in an on-line discussion of the reading with classmates and the instructor, where everyone is expected to contribute to the discussion. At the end of the on-line discussion period we will have a brief in-class wrap-up discussion.

Lab Exercises: Lab exercises involve programming in various languages/systems and utilizing a variety of computational tools. Student work products include programs that they create, or modifications of programs provided by the instructor. Each lab exercise contains some pre-lab work (which students must do before coming to lab), a short quiz to check understanding of the pre-lab material, the actual activities to perform in the lab, and an explanation of how the lab exercise and concepts fit into the bigger picture of computer science. Lab activities will utilize pair programming, where pairs of students work together on a single computer, taking turns as the driver and the navigator. After each lab, students will individually take an on-line quiz (due the following Monday) to test how well they have mastered the concepts in that lab. Exercises are concrete demonstrations of topics being discussed, and each lab session will start with a mini-lecture on relevant topics and an opportunity for students to ask questions about the pre-lab reading and exercises. 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. Homeworks may involve programming, independent research of some topic, or written exercises and analysis. Homeworks 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 work in teams of 2 or 3 people 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."

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 (lowest dropped) 20%
Homeworks and Readings 20%
Project 20%
Mid-term Exam 15%
Final Exam 20%
Participation 5%

Professionalism and Work Quality: While the objectives of this class deal with technical issues, students should at all times produce high quality, neat, and grammatically correct work. Spelling and grammar reflect substantially on your seriousness and professionalism, and sloppy or grammatically incorrect work will result in up to 10% being taken off the grade, even if all technical information is correct. Professional behavior is also expected in class, where you should exhibit the same behavior you would use if you were attending business meetings: you should be on time, engaged, and respectful of others.

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, labs, 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 6, 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 Accessibility Resources and Services located in 215 Elliott University Center: (336) 334-5440 (or

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 Canvas 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.