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: 11:00am-noon WF, & 4:00-5:00pm MTR


Tentative Course Schedule
Week Lectures & Reading Assignments & Exams
Jan15-Jan18 Introduction & Hardware (Syllabus & Sections 1.0 & 1.1)
History of CS
Jan19-Jan25 No Monday Classes
Simple Programs & Compiling (Sections 1.3 & 1.4)
Short HW 1
Jan26-Feb1 Primative Data Types & Expressions (Sections 2.0-2.5) Programming Project 1
Feb2-Feb8 Objects & Class Libraries (Sections 2.6-2.8)
StringMutation.java
RandomNumbers.java
Quiz on Ch 2
Feb9-Feb15 Conditional Statements (Chapter 3)
Example 1, Example 2, Example 3, Example 4
Programming Project 2
Feb16-Feb22 Looping Statements (Chapter 3)
Example1, Example2, Example3, Example4, Example5
Review for Exam 1
Feb23-March1 Instance Variables vs. Local Variables (Sections 4.0-4.4)
Pets Example (pets.jar)
Exam 1
March2-March8 Instance Variables, Parameters & Returns (Sections 4.0-4.4) Short HW 2
Short HW 2 Example Solution
March9-March15 Spring Break: No Classes
March16-March22 Object References & Static (Sections 5.0-5.1)
Updated Pets Example (pets2.jar)
Programming Project 3
March23-March29 Interfaces (Section 5.5) Quiz on Ch 4 & 5
March30-April5 Arrays (Chapter 6)
ReadNumbers.java, ReadNumbers2.java
Programming Project 4
April6-April12 ArrayLists & Two-Dimensional Arrays (Chapter 6)
Beatles.java
April13-April19 Discussion of Programming Project 4
Review for Exam 2
No Wednesday Classes
Exam 2 Solution: section 1, section 2, section 3
April20-April26 Inheritance (Chapter 7)
Example 1, Example 2, Example 3
Programming Project 5
Example Solution
April27-May3 Exceptions (Chapter 8)
ExceptionDemo.jar
Short HW 3 on Exceptions
Example Solution
May4-May10 Input/Output Streams (Chapter 8)
IOdemo.jar
Review for Final Exam
Last year's final
May11-May17 Final Exam Week CSCI 201.001 (Tue, May 13, 7:00-9:30)
CSCI 201.002 (Tue, May 13, 1:40-4:10)
CSCI 201.003 (Thur, May 15, 3:05-5:35)


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


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


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 another 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 Programming Projects:

Programming Projects will be given in class at least two weeks before the program is due. 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. 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