[Skip Navigation] [CSUSB] / [CNS] / [Comp Sci & Eng Dept] / [R J Botting] / [CSci202] / projects
[Text Version] [Syllabus] [Schedule] [Glossary] [Resources] [Grading] [Contact] [Question] [Search ]
Notes: [01] [02] [03] [04] [05] [06] [07] [08] [09] [10] [11] [12] [13] [14] [15] [16] [17] [18] [19] [20]
Labs: [01] [02] [03] [04] [05] [06] [07] [08] [09] [10]
Mon May 4 17:42:56 PDT 2009


    CSci202 Projects


    Project work must be submitted as source (C++) code and must start with a comment that includes the following data
    1. The name of the person who did the work and gets the points.(Plagiarism)
    2. The name and number of the project.
    3. A short specification (one or two sentences)

    Schedule and Links to details

    #Due onOne exercise fromRequired Topic
    P1April 15Chapter 7.10, 11, 12, 15, 17,20, 22..37Arrays or Vectors [ p1.html ]
    P2April 29Chapter 10.8 or 10.9, 11.15, 11.17Classes and Objects [ project2.html ]
    P3May 13Chapter 13Polymorphism [ project3.html ]
    P4Jun 3Chapter 17Sequential Files [ project4.html ]
    P5 (Optional)Jun 17Chapter 22The STL [ project5.html ]

    (Close Table)

    (Close Table)

    All make up work must be submitted before the start of the final to earn credit.


    "Plagiarism" means presenting others' work as your own. It is punished at CSUSB. Check you catalog!

    When I spot it I give ALL copies the same score - ZERO. If you borrow something from books, friends, handouts, WWW pages, Usenet News, FTP files, etc. you must state where you found it. Honesty can be the difference between success and failure in my courses.

    It is illegal to make permanent copies of things on the Internet unless you have explicit permission to do so. You have my permission to copy most of my pages, but you must not plagiarize them.

    Project Grading

    I read the program from beginning to end and then assign a letter grade and/or a score.

    An A(100%) program identifies who did it what it does. It is clear that it does what it says it does. There are no spelling mistakes or grammatical/syntax errors. It shows that you have understood the material in the course up to that time. Any bugs are described in the code.

    A B(90%) is like an A program but is not as clear and easy to understand.

    A C(80%) program still identifies who did it what it does. But it may not do what you think it does(bug) or may have mistakes.

    A D(70%) program has both undocumented errors and spelling mistakes, grammatical goofs, syntax errors, etc.. It shows that you didn't understood the material in the course up to that time.

    An E(60%) program is worse than a D but is still an honest attempt. I may have to use unlettered percentages for really bad work.

    An F(0%) program is either late or has plagiarized material in it.

    Decision, Decisions

    Programmer's often have to make decisions about what a problem means. I've noted some these in the details linked to the table above. You must include a comment explaining what choice you made in the code of your project.

    Exercises asking for a function

    Many exercises ask for one or more functions. If you asked for a function that returns something do not output it in the function. The value or object must be in a "return" statement.

    To get full credit you need to hand in a running program that contains the function and a main function that tests the function thoroughly. Put the output statements in the main program.

    Hint: Quality is Job 1

    Start with a small incomplete program that is high quality: simple, readable, clean, tidy, compiles, and runs.

    Then add functions/classes/files and functionallity.

    Hint: Write a main program first

    Test first programming is a new an exciting way to produce code.

    Start by writing a main program that tests the new functions and classes you plan to develop.

    Try to compile it. It won't compile or run. You can supply the missing functions/classes/files next.

    Add a new test, and then create/modify the functions/classes/... that you need to make it compile, run, and pass the test.

    Hint: Don't let the sun set on bad code

    As the program expands spend some time on keeping clean and tidy. Look for repeated code and find a way to avoid it.


  1. Algorithm::=A precise description of a series of steps to attain a goal, [ Algorithm ] (Wikipedia).
  2. class::="A description of a set of similar objects that have similar data plus the functions needed to manipulate the data".
  3. Data_Structure::=A small data base.
  4. Function::programming=A selfcontained and named piece of program that knows how to do something.
  5. Gnu::="Gnu's Not Unix", a long running open source project that supplies a very popular and free C++ compiler.
  6. KDE::="Kommon Desktop Environment".
  7. object::="A little bit of knowledge -- some data and some know how", and instance of a class".
  8. OOP::="Object-Oriented Programming", Current paradigm for programming.
  9. Semantics::=Rules determining the meaning of correct statements in a language.
  10. SP::="Structured Programming", a previous paradigm for programming.
  11. STL::="The standard C++ library of classes and functions" -- also called the "Standard Template Library" because many of the classes and functions will work with any kind of data.
  12. Syntax::=The rules determining the correctness and structure of statements in a language, grammar.
  13. Q::software="A program I wrote to make software easier to develop",
  14. TBA::="To Be Announced", something I should do.
  15. TBD::="To Be Done", something you have to do.
  16. UML::="Unified Modeling Language".
  17. void::C++Keyword="Indicates a function that has no return".