CompSci 165: Project in Algorithms and Data Structures
Spring 2011
Description
- Design, implementation, execution, and analysis of algorithms
Based on material from ICS 23 and CompSci 161, plus some more
advanced topics
- The programming language will be C/C++ (each student's choice)
If you do not know C/C++, this course will be a bit more challenging
- There are 3 required projects,
no homeworks and no examinations
- Prerequisites:
CompSci 161 / CSE 161. Recommended: ICS 65
Class meetings
- Lectures M W F 11-11:50am in ICS 253
Lectures discuss the theory behind the projects,
as well as some implementation concerns
- The class meets frequently during the first two weeks
of the course, and only sporadically thereafter
- One-on-one discussions with the instructor
are available throughout the quarter
Professor
- Dan Hirschberg --
phone 824-6480,
email dan (at) ics.uci.edu
Office hours: in DBH 4226, by appointment
- Grading assistant
- Joe Simons -- jsimons (at) ics.uci.edu
Projects
Some projects need to measure time usage.
Be aware that using an ANSI compliant compiler
that has the standard libraries is a necessity.
Many such compilers are available,
including gcc which is available on all ICS machines.
I enjoyed using the djgpp command line environment for the PC (XP and 32-bit Windows 7).
After getting 64-bit Windows 7, I enjoy using the MinGW command line environment.
Some people enjoy using the Code::Blocks IDE,
but others have said that they had compilation problems using it.
(It seems to be missing some library functions and/or include files needed for timing.)
The Microsoft compilers that I have seen
do not use the standard libraries.
This page
has Microsoft's suggestions on how to write code that works in the
largest number of C compilers (i.e., portable code).
Here is a tip from a CompSci 165 student on using Visual Studio.
Do you know the meanings of and distinction
between precision and accuracy?
Many projects need a random number generator;
I recommend using dshrandom.c.
Last modified: Dec 7, 2011