Cs141 Home/Lecture1

Cs141 Home | Cs141 Home | recent changes | Preferences

Showing revision 2
Meta-Level Stuff

To do:

  1. Watch the course web page regularly.
  2. Sign up for the mailing list if you aren't already on it.

Don't cheat. For programming assignments, this means: write your own code. Do not share even one line of code with another person, do not turn in even one line of code written by someone else, or based on code written by someone else!

For written homework assignments, this means: write up your solutions by yourself.

Collaboration is encouraged. In some areas of the course you may be at the bottom of a learning curve. This can be an uncomfortable place to be. The way out is: Get engaged with the ideas. Discuss the ideas and the problems with other people. As in learning a new language, recognize that progress takes practice and time.

This course has two separate parts: (1) algorithms (design and analysis of algorithms and data structures) and (2) implementation (gaining fluency in C++ and programming).
algorithm implementation
An algorithm is a high-level but complete specification of a method for solving a problem. Examples include mergesort, bubblesort, quicksort. You can specify an algorithm in pseudo-code if you like. Algorithms can be analyzed for correctness (does the algorithm give the right output for all inputs?) and asymptotic worst-case running time. (e.g. "given a list of n elements, in the worst case quicksort runs in time proportional to n"). language (C++, python, java, ...)
particular machine
software design issues
debugging
coding skills
Programs can be analyzed for correctness (is the program a faithful implementation of the algorithm, does it have bugs) and running time (e.g. "is it possible to speed up the program by a factor of two by recoding a particular section").


Cs141 Home | Cs141 Home | recent changes | Preferences
This page is read-only | View other revisions | View current revision
Edited January 4, 2005 2:07 pm by Neal (diff)
Search: