Comp 110-002 – Fall 2007 – 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

Assignment

Slides

Notes

1

Theater Analogy Of a Computer

 

All Slides ZIP File

All Notes ZIP File

2

Objects

Temperature Converter

3

Functions

Temperature Averager

4

State

Temperature Spreadsheet

5

Style

Alternative Implementations and Interfaces

6

Types

Style and Expressions

7

Representation and Graphics

 

8

Pointers

 

9

Case Study: Loan

Structured Objects and Graphics

10

Main, Console Input, and Intro to Conditionals and Loops

 

11

More Types

 

12

Conditionals

 

13

Loops

Main and Console Input

14

Arrays

Arrays and Enums

15

MVC

 

16

Recursion

MVC and Animations

17

Inheritance

 

Downloads

ObjectEditor

Contact Professor Prasun Dewan