Comp 110-002 – 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/~sasa/teaching/fall2007/comp110/CourseIntroduction.pdf

Instructor

Sasa Junuzovic

Office: SN 336

Phone: 919-962-1734

Email: sasa@cs.unc.edu

Office Hours: M 4:30-5:30, Th 2:00-3:00 (or by appointment)

Lectures

Room: GA 008

Time: M W F – 3:00-4:15

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

 

 

Unit

Slides

Notes

Assignment

1

Theater Analogy Of a Computer

PowerPoint 2007 2003

pdf

 

2

Objects

PowerPoint 2007 2003

pdf

Temperature Converter

3

Functions

PowerPoint 2007 2003

pdf

Temperature Averager

4

State

PowerPoint 2007 2003

pdf

Temperature Spreadsheet

5

Style

PowerPoint 2007 2003

pdf

Alternative Implementations and Interfaces

6

Types

PowerPoint 2007 2003

pdf

Style and Expressions

7

Representation and Graphics

PowerPoint 2007 2003

pdf

 

8

Pointers

PowerPoint 2007 2003

pdf

 

9

Case Study: Loan

PowerPoint 2007 2003

pdf

Structured Objects and Graphics

10

Main, Console Input, and Intro to Conditionals and Loops

PowerPoint 2007 2003

pdf

 

11

More Types

PowerPoint 2007 2003

pdf

 

12

Conditionals

PowerPoint 2007 2003

pdf

 

13

Loops

PowerPoint 2007 2003

pdf

Main and Console Input

14

Arrays

PowerPoint 2007 2003

pdf

Arrays and Enums

15

MVC

PowerPoint 2007 2003

pdf

 

16

Recursion

PowerPoint 2007 2003

pdf

MVC and Animations

17

Inheritance

PowerPoint 2007 2003

pdf

 

Miscellaneous

 

Material

Recitation 1 – Java Installation

Windows XP + Internet Explorer Users (PowerPoint 2007, PowerPoint 2003, pdf)

Windows XP + Mozilla Firefox Users (PowerPoint 2007, PowerPoint 2003, pdf)

Deliverable (PowerPoint 2007, PowerPoint 2003, pdf)

Recitation 2 – Review

Slides and Deliverable (PowerPoint 2007, PowerPoint 2003, pdf)

Recitation 3 – Review

Slides (PowerPoint 2007, PowerPoint 2003, pdf)

Eclipse Setup

Slides (PowerPoint 2007, PowerPoint 2003, pdf)

 

Downloads

ObjectEditor

ObjectEditor (most current version)

Sample Midterm and Exams

 

Material

Midterm 1

(pdf)

Midterm 2

(pdf)

Final Exam

(pdf)