CSCI 201: Introduction to Algorithm Design
Description This is an introduction to algorithms, their design, and their representation in the Java computer programming language. You will learn several programming language constructs including variables, types, conditionals, loops, methods, arrays, files, and classes.
Text Java Software Solutions Foundations of Program Design, third edition , by John Lewis and William Loftus, Addison-Wesley, 2003.
Rebecca Bruce
Office: RBH 024
Telephone: 232-2275
Office hours: 11:00-noon MWF & 4:00-5:00pm TR

Tentative Course Schedule
Week Dates Text Book
Lectures & Reading Assignments & Exams
1 Jan11-Jan17 Chapter 1 Classes Start Wednesday, January 14.
Introduction & Hardware (Syllabus & Sections 1.0 & 1.1)
Programming Concepts Overview
2 Jan18-Jan24 Chapter 1 No classes Monday - Martin Luther King, Jr. Observance
Architecture Overview
3 Jan25-Jan31 Chapter 2 No classes Monday - Snow Day
Simple Programs & Compiling (Sections 1.3 & 1.4)
NetBeans (3 slides)
Java Virtual Machine
Java Application
Java comments
Identifiers and Reserved Words
Types of Errors
4 Feb1-Feb7 Chapter 2 Primitive Data Types & Expressions (Sections 2.0-2.5)
Classes and Objects
Assignment Statement
Structure of an Application
Quiz over Ch 2 (sections 2.0-2.8)
Programming Project 1 assigned
5 Feb8-Feb14 Chapter 3 Objects & Class Libraries (Sections 2.6-2.8) Programming Project 2 assigned
6 Feb15-Feb21 Chapter 3 Conditional Statements (Chapter 3) Short HW 1
7 Feb22-Feb28 Looping Statements (Chapter 3)
Review for Exam 1
Exam 1 Grades: section 2, section 3
Supplemental Homework on Method Calls
Supplemental Homework on Conditional Statements
8 Feb29-Mar6 Chapter 4 Local Variables, Parameters & Returns (Sections 4.0-4.4) Quiz over Ch 4 (sections 4.0-4.2)
Programming Project 3 assigned
9 Mar7-Mar13 Spring Break Week - no classes M-F
10 Mar14-Mar20 Chapter 4 Instance Variables, Encapsulation, and Constructors (Sections 4.0-4.4) Short HW 2
11 Mar21-Mar27 Chapter 5 Object References & Static (Sections 5.0-5.1)
Pets Example:,,
Example Memory Diagrams
Programming Project 4 assigned
12 Mar28-Apr3 Chapter 6 Arrays (Sections 6.0-6.1)
Grades example
Short HW 3 Solution
13 Apr4-Apr10 Review for Exam 2 Exam 1 Grades: section 2, section 3
Supplemental Homework on Reference Variables (prob. 2 of exam 2)
Supplemental Homework on Arrays (prob. 3 of exam 2)
14 Apr11-Apr17 Chapter 6 Two-Dimensional Arrays (Sections 6.3)
ArrayLists (Sections 6.4)

Programming Project 5 assigned
15 Apr18-Apr24 Chapter 8 No day classes Wednesday, April 21, Undergraduate Research Symposium
Exceptions (Section 8.0)
Short HW 4
16 Apr25-May1 Chapter 8 Input/Output (Sections 8.1-8.3)
Review for Final Exam
Final Exams from previous semesters
17 May2-May8 Final Exam Week CSCI 201.001
   (Friday, May 7, 10:00-12:30)
CSCI 201.002
   (Friday, May 7, 1:20-3:50)
CSCI 201.003
   (Wed, May 5, 6:00-8:30)

Textbook slides are available for viewing and study. Slide presentations in the "Lectures & Reading" column are available for viewing, study, and printing. You are encouraged to study/print these special slides before class (print them as handouts, 6 slides per page) as they will be presented and discussed in class.

On-Line Resources
History of CS
On-line Documentation of Java Packages
201 Java Programming Style Guidelines
NetBeans IDE
Little Man Computer
Jeliot interactive algorithm animator
Text book examples
Pseudocode Summary

Exam grades 125 x 2 250
Programming project grades 25 x 5 125
Quiz & short HW grades 10 x 6 60
Lab grades 15 x 14 210
Final exam grade --- 150
Total Points --- 795

All exams will be open book.

Letter Grades: Letter grades are assigned based on the percentage of available points obtained by a student. 100% to 90% guarantees an A, 89% to 80% guarantees a B, and so on. The instructor reserves the option of relaxing the cut-offs for a letter grade in special circumstances. Plus and minus grades will be used for this course.

Attendance Policy:

Lectures: Students are expected to attend all class lectures. Failure to do so will be considered a lack of interest in success on the part of the student. It is very important that you do the assigned reading and come to class prepared to participate (listen actively, ask questions, and answer questions).

Laboratories: It is especially important that you attend all labs. If you miss a lab due to illness or another emergency, you must attend another lab section during the same week to receive credit for that week's lab. The meeting times of all lab sections are posted on the class page. After the week has passed, you will not be able to make up that week's lab.

Exams: If you must miss an exam due to illness you must e-mail or telephone the instructor before the scheduled time and perhaps something can be arranged to avoid a zero for this exam. Failure to notify the instructor prior to the scheduled time will produce an automatic zero for the exam.

Policy on Programming Assignments:

The programs that you write are your way of telling the instructor about your mastery of this course. Because this is a course about writing programs you are expected to take these assignments very seriously. All of your programs must be clearly different than those turned in by others in the class and represent a unique and special effort on your part.

Cooperation and exchange of ideas with other students are encouraged. However, you are responsible for your own work. Examples of cooperation that are OK: talking with someone about approaches to the assignment; showing someone what your error is, discussing a particular programming problem that you are having. Examples of cooperation that are not OK: taking someone else's program and modifying it, examining someone else's solution in detail, having someone type at your computer. Any cases involving suspected academic dishonesty result in a grade of zero for the assignment. See Student Responsibilities - Academic Honesty at

There are two kinds of assignments: programming projects and short homework.

Programming projects will be assigned in class at least two weeks before the program is due. A programming project is an individual assignment and is not a team assignmant. A late penalty of two points per day late will be asessed. A project more than one week late will not be accepted. Begin your project early to help avoid the possibility of a late turn in.

Short homework will be assigned in class one week before it is due. Late homework will not be accepted.

All programming assignments (programming projects or short homeworks) must be submitted as demonstrated in lab01. It is your responsibility to insure that your assignment is submitted correctly.

Policy on Email Communication:

Your instructor will periodically communicate with you through e-mail to your bulldog account ( These communications will typically be regarding assignments. You must periodically check this e-mail account for messages and to insure that new messages can be received (i.e., that your mailbox is not full).

CSCI logo Return to the UNCA Computer Science home page