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 MW, & 4:00-5:00pm TR


Tentative Course Schedule
Week Text Book
Slides
Lectures & Reading Assignments & Exams
Aug17-Aug23 Chapter 1 Classes Start Wed.
Introduction & Hardware (Syllabus & Sections 1.0 & 1.1)
Computer Architecture Overview
FYI: History of Computer Science
Aug24-Aug30 Chapter 1 Simple Programs & Compiling (Sections 1.3 & 1.4)
Java Virtual Machine
Java Application
Java comments
Identifiers and Reserved Words
Types of Errors
Short HW 1
Example solution
Aug31- Sept6 Chapter 2 No Monday Classes
Primative Data Types & Expressions (Sections 2.0-2.5)
Class Overview
Classes and Objects
Assignment Statement
Structure of an Application
Structure of a Class - Variables I
Simple Strings
Conversion
Programming Project 1
Sept7-Sept13 Chapter 2 Objects & Class Libraries (Sections 2.6-2.8)
my notes
Method Invocation
Quiz over Ch 2
Sept14-Sept20 Chapter 3 Conditional Statements (Chapter 3)
Operators
Flow of Control - Conditional
Examples: Example 1, Example 2, Example 3
Programming Project 2
Sept21-Sept27 Chapter 3 Looping Statements (Chapter 3)
Flow of Control - Looping
Examples: Example1, Example2, Example3, Example4, Example5
Review for Exam 1
Short HW 2
Sept28-Oct4 Chapter 4 Looping Statements (Chapter 3) Exam 1 scores
Oct5-Oct11 Fall Break: No Class Programming Project 3
Oct12-Oct18 Chapter 4 Instance Variables (Section 4.1)
Local Variables, Parameters & Returns (Sections 4.2-4.4)
Pets Example (pets.jar)
Structure of a Class - Variables II
Passing Arguments to Methods
Overloading
Short HW 3
Oct19-Oct25 Chapter 5 Object References & Static (Sections 5.0-5.1)
null
this
Garbage collection, jar files, javadoc
Passing Arguments to Methods
Static and Local Variables
Static and Final Variables
Static Methods
Quiz over Ch 4
Oct26-Nov1 Chapter 5 Interfaces (Section 5.5)
Interfaces
Programming Project 4
Nov2-Nov8 Chapter 6 Arrays (Chapter 6)
Arrays
ReadNumbers.java, ReadNumbers2.java
Review for Exam 2
Short HW 4
Nov9-Nov15 Chapter 6 Arrays (Chapter 6) Exam 2 scores
Nov16-Nov22 Chapter 7 Inheritance (Chapter 7)
Class Hierarchy Topics
The Object Class
Class Modifiers
inheritanceDemo1.jar, inheritanceDemo2.jar
inheritanceDemo3.jar, moody.jar
Programming Project 5
Nov23-Nov29 Thanksgiving Break: No WRF Classes
Nov31-Dec6 Chapter 7 Inheritance (Chapter 7)
Class Hierarchy Topics
The Object Class
Class Modifiers
Field Accesibility
Review for Final Exam
Dec7-Dec13 Final Exam Week CSCI 201.004 (Wed, Dec 10, 6:00-8:30)


On-Line Resources
On-line Documentation of Java Packages
201 Java Programming Style Guidelines
NetBeans IDE
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 6 60
Lab grades 15 x 13 195
Final exam grade --- 150
Total Points --- 780

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.


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.

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 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. Programs may be turned in late with a late penalty of 2 points off per day late for up to 1 week. Programs that are more than one week late will not be accepted. 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. 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