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. | |||||
| Instructor |
| |||||
| Tentative Course Schedule | ||||
| Week | Dates | Text Book Slides |
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: Dog.java, Cat.java, PetDemo.java 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)
Example: TwoDArray.java ArrayLists (Sections 6.4) Example: Beatles.java |
Programming Project 5 assigned |
| 15 | Apr18-Apr24 | Chapter 8 |
No day classes Wednesday, April 21, Undergraduate Research Symposium
Exceptions (Section 8.0) Example: ExceptionExample.java |
Short HW 4 |
| 16 | Apr25-May1 | Chapter 8 |
Input/Output (Sections 8.1-8.3)
Example: IOExample.java 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.
| 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 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.
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.
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 http://www.unca.edu/catalog/academicregs.html#grading.
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.
Your instructor will periodically communicate with you through e-mail to your bulldog account (yourName@bulldog.unca.edu). 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).