UNC-CH COMP 110

Introduction to Programming

T-R 2:00-3:15, in Brooks (Sitterson) room 008
Dr. David Stotts (Brooks 144, 919.590.6133)

Programming will be perhaps your first endeavor in creating actual working things from almost pure thought.

Prerequisites

High school math (not calculus). We do not assume you have any programming experience or programming understanding coming into this class. We do assume you have some familiarlty with using computers, specifically web browsers and text editors.

Texts

No text is required for purchase. We will be using an online text.

Course Description

The goal of this course is to teach the fundamental concepts of programming a modern computer. Though we will use the JavaScript language to write the programs we study, the concepts the student will learn are expressible in all programming languages.

When the course is completed, each student will have

Format

Proramming is Learned by Doing

COMP 110 is a hands-on course. Lectures are practical, often comprising concept explanations paired with in-class programming demonstrations to illustrate how to apply the concepts.

The class has a midterm exam, a final exam, and programming assignments. The grade is based entirely on performance on both the exams and the programming assignments.

Bricks and Brick Walls

Some of the programming assignments are what we might call "traditional" programs. They will range from a few dozen to a couple hundred lines long and will take you a week or so to complete as work outside class.

One of the new approaches we are using this semester is in-class programming assignments. You may have upwards of 50-70 of these; they will range is size from a single line of code to perhaps a dozen or two lines of code. I think of the in-class programming problems as "bricks", and the larger programming assignments as "brick walls". The bricks you practice in class will then be used to build your brick walls outside class. You will credit for both.

In most class meetings we will study a technical concept, and I will demonstrate how it is used with hands-on programming. You will follow along on your PC and program the concepts with me. Then in class you will solve small programming problems that exercise the concept being studied; you will submit your program solutions for "instant" grading. The tools we use will tell you on the spot if you have programmed the solutions correctly. If you have, then you will get a point or two credit for the solution; if it is not correct, you will continue working and submitting solutions until it is correct and you receive your credit.

In some sense, this is like doing your "homework" in class. To get credit for the many bricks you must be in class to do the programming and submit them. You will complement this in-class homework approach by doing reading outside class. Think of the reading as sort of "lectures at home". You will learn much better if you come to class having done the reading.

To get credit for the brick walls, you will produce the programs outside class and submit them by more traditional deadlines for grading by the class TA.