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, functions, procedures, arrays, files, classes, interfaces, and inheritance.
   
Text Java Software Solutions Foundations of Program Design, third edition , by John Lewis and William Loftus, Addison-Wesley, 2003.
   
Instructor
Rebecca Bruce
Office: RBH 024
Telephone: 232-2275
e-mail: bruce@cs.unca.edu
Office Hours: 10:30am-noon on T & R, & 3:30-5:00pm on R


Tentative Course Schedule
Week Starting Lectures & Reading Assignments & Exams
Aug 11 Introduction & Hardware (Syllabus & Chapter 1)
(More on Personality Temperaments)
Aug 18 Simple Programs & Compiling (Chapter 1)
Objects & Classes, pets.jar
Aug 25 Primative Data Types & Expressions (Chapter 2)
Facts.java
Sept 1 Objects & Class Libraries (Chapter 2)
Labor Day: No Monday Classes
StringMutation.java
Assignment 1
Sept 8 Conditional Statements (Chapter 3)
Review for Exam 1
Assignment 2
Sept 15 Looping Statements (Chapter 3) Exam 1 Sample Solutions:
Section 1, Section 2, & Section 3
Sept 22 Coditional Statement Examples:
Example1, Example2, Example3, Example4
Looping Statement Examples:
Example1, Example2, Example3, Example4, Example5
Sept 29 Instance Variables, Parameters & Returns (Chapter 4) Assignment 3
Oct 6 Instance Variables vs. Local Variables (Chapter 4)
Summary of Main Concepts
pets2.jar
Fall Break: No WRF classes
Oct 13 Object References & Static (Chapter 5)
pets3.jar
Reference Variable Demo (classdemo.jar)
Assignment 4
Oct 20 Interfaces (Chapter 5)
Oct 27 Arrays (Chapter 6) Assignment 5
Nov 3 ArrayLists & Two-Dimensional Arrays (Chapter 6)
2D array demo: TwoDArray.java
ArrayList demo: Beatles.java
Review for Exam 2
Nov 10 Inheritance (Chapter 7)
Example 1, Example 2, Example 3,
Exam 2 Sample Solutions:
Section 1, Section 2, & Section 3
Nov 17 Inheritance (Chapter 7) Assignment 6
Nov 24 Exceptions (Chapter 8)
ExceptionDemo.jar
Thanksgiving Break: No WRF classes
Dec 1 IO Streams (Chapter 8)
IOdemo.jar
Review for Final Exam
Dec 8 Final Exam Week CSCI 201.001 (Tue, Dec 10, 1:40-4:10)
CSCI 201.002 (Tue, Dec 10, 6:00-8:30)
CSCI 201.003 (Wed, Dec 11, 12:15-2:45)


On-Line Resources
On-line Documentation of Java Packages
Java Programming Style Guidelines
JGRASP
Robocode
Little Man Computer
Jeliot interactive algorithm animator


Grading
Exam grades 125 x 2 250
Assignment grades 25 x 6 150
Lab grades 15 x 13 195
Final Exam grade --- 150
Total Points --- 745


Attendance Policy:

Lectures: A roll is not taken. 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.

Laboratories: It is especially important that you attend all labs. If you must miss a lab for illness or other emergency and if there is a free seat in a another lab during that week you may be able to make arrangements to take the lab at that time. After the week has passed you very definitely will not be able to make up the lab and you will receive a score of zero for that week's lab.

Exams: If you must miss an exam due to illness you must email 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 Assignments:

Assignments will be given in class at least two weeks before the assignment is due. All assignments will involve writing programs.

The program 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. 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. All programming assignments should be submitted to your 201 ftp directory as demonstrated in lab01.


CSCI logo Return to the UNCA Computer Science home page