Comp 110-003 - Fall 2011 - Introduction to Programming

Course Overview

This is an introduction to algorithms, their design, and their representation in a computer programming language. You will learn several programming language constructs including variables, types, conditionals, loops, functions, procedures, arrays, files, classes, interfaces, and inheritance. In addition you will apply several techniques using these constructs including stepwise refinement, modularity, recursion, design patterns, and abstraction.

If you already know most of these constructs and techniques, then you should take Comp 401. In this course, we will assume you have never programmed before. If you want to learn how to use a computer rather than program it, you should take Comp 101.

Although this course will teach you the programming language Java, it is a course in programming rather than a course in Java. We will emphasize conceptual material rather than practical skills.

By the end of the semester you will be practiced in the skills of algorithmic thinking. Your approach to complex problems will be more precise and logical. You will devise solutions in a step by step manner creating abstractions that clarify and simplify, and you will gain experience in analyzing and predicting the behavior of complex systems.

After this course, even if you never program a computer again, your thinking skills will be augmented and sharpened. In fact, you will approach problem solving in a different way. This will be of value to you throughout your life and in a surprising variety of contexts.

Syllabus:www.cs.unc.edu/~carterjl/teaching/CourseIntroduction.pdf

Instructor

Jason Carter

Office: FB 142

Phone: (919) 962-1738

Email: carterjl@cs.unc.edu

Office Hours: Tuesday - 2:00-3:00, Wednesday 4:00-5:00 (or by appointment)

Office hours on Tuesday are in SN 155. Office hours on Wednesday are  in SN 115.

 

Lectures

Room: SN011

Time: M W F - 3:00-3:50

NOTE: Bring your laptops every Friday. You will use them for programming exercises.

Tentative Schedule (Has Broken Links for Material Not Covered so Far)

 

 

Unit

Assignment

Slides

Notes

1

Theater Analogy Of a Computer

 

PowerPoint 2007

Theater Chapter

2

Objects

Temperature Converter

PowerPoint 2007

Objects Chapter

3

Functions

Temperature Averager

PowerPoint 2007

Functions Chapter

4

State

Temperature Spreadsheet

PowerPoint 2007

State Chapter

5

Style

Alternative Implementations and Interfaces

PowerPoint 2007

Style Chapter

6

Types

Style and Expressions

PowerPoint 2007

Types Chapter

7

Representation and Graphics

 

PowerPoint 2007

Representation and Graphics Chapter

8

Pointers

 

9

Case Study: Loan

Structured Objects and Graphics

PowerPoint 2007

Case Study Chapter

10

Main, Console Input, and Intro to Conditionals and Loops

 

PowerPoint 2007

Main, Console Input, and Intro to Conditionals and Loops

11

More Types

 

PowerPoint 2007

More Types

12

Conditionals

 

PowerPoint 2007

Conditionals Chapter

13

Loops

Main and Console Input

PowerPoint 2007

Loops Chapter

14

Arrays

Arrays and Enums

PowerPoint 2007

Arrays and Enums Chapter

15

MVC

 

PowerPoint 2007

MVC Chapter

16

Recursion

MVC and Animations

PowerPoint 2007

Recursion Chapter

17

Inheritance

 

PowerPoint 2007

Inheritance Chapter

Downloads

ObjectEditor

JDK (Java Development Kit)

Eclipse Classic 3.7

Eclipse Helper

 

ObjectEditor

Windows x86  Windows x64

Windows x86  Mac OS X

 Eclipse Helper

 

Assignment Information

How to Submit An Assignment

How to Install Eclipse

Submit an Assignment

Installing Eclipse (PowerPoint 2007)

 

 

Recitation Material

Recitation 1 - 9/9/2011

Recitation 1

Recitation 3 - 9/23/2011

Recitation 3

Demo Code - 10/28/2011

Demo Code - (Zip File)