Held Wednesday, May 10, 2000
Overview
Today you have an opportunity to evaluate the course.
Notes
- Attendance is strongly encouraged for Friday.
- As requested, I brought carrots today.
- On Friday, I'll distribute the final.
- On Friday, I'll return exam 3.
- On Friday at noon, the CS games independent will be presenting
their design. You're invited. (Sorry, no food provided.)
Contents
Summary
- An overview of CS
- Three threads: Mathematics, Science, Engineering
- Many subtreads
- Topics/courses available at Grinnell
- Due:
- Homework 8: Project Questions
- Today, you will complete written evaluations of the course.
There are two evaluation forms:
- An experimental institutional numeric evaluation form. The
institution eventually hopes to make this a formal tool that is
used in faculty reviews (for tenure, promotion, and raises).
- A course-specific narrative evaluation form. I use this to improve the
course.
- Fill out the institutional review form first. Please make sure to
comment on each of the section.
- When you have filled out the institutional form, pick up a copy of the
course-specific form. When you are done filling that out, you may leave.
- I do not read the forms until after I've turned in grades.
- The institutional evaluation forms ask a number of questions about the
``subject matter of the course''.
- Hence, it is important for me that you understand my perspective on
this issue.
- I believe that this course covers a number of different subject matters:
- Programming in Java
- Program Design
- Object-oriented Programming
- Algorithms
- Data structures and Abstract data types
- We've covered an amazing amount, and I congratulate you for your hard
work.
- Syntax
- Language basics: variables, references, primitive types,
control structures, objects, constructors, methods
- Classes vs. Objects
- The AWT and GUIs
- Exceptions
- Exceptions and exception handling
- Pre- and postconditions
- Separation of interface and implementation
- Testing
- Documentation
- Group work and large project design
- What is Object-oriented programming?
- How does it relate to procedural and functional programming?
- Modeling using objects (e.g., games, puzzles)
- Inheritance; superclasses; subclasses
- Interfaces
- Polymorphism
- Exceptions (not really OOP, but close)
- Recursion
- Algorithm analysis, big-O notation, and algorithm measurement
- Algorithm design techniques
- Divide and conquer
- Dynamic programming
- Greedy algorithms
- Luck
- Sorting Algorithms
- Insertion sort
- Merge sort
- Quick sort
- Heap sort
- Bubble sort
- Graph algorithms (and their use in modeling)
- Shortest path
- Traveling salescritter
- Reachability
- Lists
- Simple vs. ordered
- Linked lists
- Doubly linked lists
- Implementation with arrays
- Linear structures
- Stacks
- Queues
- Priority queues (and their implementation in heaps)
- Trees
- Dictionaries (implemented as hash tables and assocation lists)
- Graphs