[Skip Navigation] [CSUSB] / [CNS] / [CSE] / [R J Botting] / [CSE201] / resources
[Text Version] [Syllabus] [Schedule] [Glossary] [Labs] [Projects] [Resources] [Grading] [Contact] [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]
Tue Apr 17 09:17:48 PDT 2012
Opening the PDF files on this page may require you to download Adobe Reader or an equivalent viewer (GhostScript).

Contents


    Useful Resources for CS201: Introduction to Computer Science

      Syllabi and Schedule

      My general syllabus: [ syllabus.htm ] and the CS201 [ syllabus.htm ] and schedule [ schedule.htm ] plus some notes on projects: [ projects ]

      Help with projects and C++: The template file project.cpp: [ project.cpp ] plus a demonstration of what a project looks like [ demo.cpp ] when done.

      Frequently Asked Questions

      Frequently asked questions (and some my answers) about our system here: [ CS_FAQ.html ]

      As the quarter proceeds the "Notes" will be filled in with your questions and some answers. The whole set is linked into the course web page search to help you answer qustions and review the the material.

      Special Topics

        Introduction

        [ hello.cpp ]

        [ coins1.cpp ]

        How programs work

        [ ch02.cpp ] [ av03a.cpp ] [ av03b.cpp ]

        How to write simple programs:

        [ polya.html ]

        Fill in the blanks: [ project.cpp ] [ demo.cpp ]

        Working off campus

        Simple programs can be compiled and run at
         	http://codepad.org/

        To access our machines from off campus is possible but not simple. On a Mac or a Linux box you can open a terminal and use ssh. On windows download and install "PuTTY". Connect to

         jbh3-1.cse.csusb.edu
        using your CSE lab user-id. Then use
         	ssh jb35n-mm
        where n is either 9 or 8 and mm is the number of a machine between 1 and 30.

        [ projects.html#Working at home with SSH access ]

        Objects

        TBD

        Strings

        Example [ initials.cpp ] Exercises: [ av03.cpp ] and [ av03a.cpp ] (String operations and tracing), [ av03c.cpp ] (substrings), [ av03d.cpp ] (concatenation), [ av03e.cpp ] (concatenation substring and length).

        Notes [ string.html ]

        Decisions

        [ luv.cpp ]

        Loops

        [ while0.cpp ] [ uscor.cpp ] [ bresenham.cpp ] [ sqrt1.cpp ] [ tsqrt.cpp ] [ tsqrt1.cpp ] [ sqrt2.cpp ] [ tsqrt2.cpp ] [ r62.cpp ] [ piman.cpp ] [ terminator.cpp ] [ terminator2.cpp ] [ mtable.cpp ]

        Functions

        [ functions.html ] [ function.help ] [ function.cpp ] [ a09.cpp ] [ fred.cpp ] [ fac.cpp ]

        [ mini.bad ] [ mini.cpp ] [ maxi.bad ] [ maxi.cpp ] [ quad.bad ] [ quad.cpp ] [ quad2.cpp ] [ swap.bad ] [ swap.cpp ] [ order.bad ] [ order.cpp ]

        [ av07.cpp ] [ av26.cc ] [ av27.cc ] [ 03b.cc ] [ 03c.cc ] [ 03d.cc ]

        Testing and Debugging

        TBD

        Classes

        [ ch06.html ] [ animals.cpp ] [ f8.cpp ] [ ex15.cpp ] [ ex15a.cpp ]

        Vector and Arrays

        Notes: [ vectors.html ] Examples: [ bar.cpp ] (salary bar chart) [ ex18a.cpp ] (find biggest number)

        Putting a vector inside a class: a class that stores a sample and calculates statistics: [ e19.cpp ]

        Example of a 2 dimensional array: [ demo2d.cpp ]

        An unsafe array wrapped up to make a safe class: [ array.cpp ]

      Old Quizzes

      Many of the quizzes are complete C++ programs with a name that ends ".cpp". You can download them in the usual way (right click, shift click, or open and save). [ q05.cpp ] [ q06.cpp ] [ q08.cpp ] [ q11.cpp ]

      Here are some more old quizzes. Quizzes 3 and 4: [ q03.htm ] [ q04.htm ] Quiz 06 with errors [ q06.bad ] , corrected [ q06.cpp ] , and the differences between the bad and the good: [ q06.delta ] (as generated by the command

       		diff q06.bad q06.cpp
      )

      Answer to quiz 07 is in [ ch04b.htm ]

      Quiz 10: Bad [ q10.bad ] and fixed: [ q10.cpp ]

      Quiz 10: Fill in blanks in [ q12.set ] giving [ q12.cpp ]

      C++

        Help and Comfort

        [ c++.is.hard.txt ] (Mail) [ function.help ] [ function.cpp ]

        Documentation

        [ c++.stream.cpp ] [ ccc.html ] [ c++.html ] [ C++.FAQ.txt ] [ C++.libraries.FAQ.txt ] [ C.FAQ.txt ] [ http://cse.csusb.edu/dick/doc/ ]

        Examples

        From the CS201 book [ examples ]
      1. and other [ examples ]

      . . . . . . . . . ( end of section C++) <<Contents | End>>

      Unified Modeling Language UML

      [ uml.html ]

      UNIX

      A Beginners guide to UNIX [ http://www.dafydd.net/soft/unix/uguide/ ]

      List of UNIX Commands: [ unix.commands ] [ timing.a.program ] [ unix.commands.html ]

      How to become a power user: (1) Join the CSci Club, (2) take this class [ http://cse.csusb.edu/dick/cs360/ ]

      vi

      Starting: [ vi.txt ] [ vi.commands ]

      To be downloaded and printed: [ vi1.gif ] and [ vi2.gif ] Plus [ vi_charts.pdf ] (first page in PDF (Ok for Linux)) and [ vi_charts.ps ] (Postscript).

      More advanced stuff: [ vi.notes.html ] [ vi.FAQ ]

      Compiling on Windows -- From Dr Turner

      Here are some videos illustrating how to set up and Microsoft's Visual Studio to compile and test on a a Windows PC. However they also tell you how to do Dr. Turner's laboratories in a ection of CSE201 that uses Subversion and Blackboard.
      1. Lab 1 on Windows, Part 1 [ watch?v=9Ogzs0M5yL4 ]
      2. Lab 1 on Windows, Part 2 [ watch?v=kJIkNerZ1PU ]
      3. Lab 1 on Windows, Part 3 [ watch?v=xKjYcGuA8_U ]
      4. Lab 1 on Windows, Part 4 [ watch?v=hqP73hI7XF0 ]

      Glossary

      Here is a fun and useful guide to the words and phrases that computer people use. I think it is both comprehensive, funny, pretty accurate:
    1. Jargon::= See http://www.tuxedo.org/~esr/jargon/html/The-Jargon-Lexicon.html. Enjoy!

    2. AKA::=Also Known As.
    3. abstract::=Describes something that is kept simple by omitting distracting details.

    4. analysis::=documenting what the problem is, in terms of what is given and what is desired plus the operations and formulae that can be used.

    5. class::=A description of a set of similar objects that perform similar operations and encapsulate more or less similar data.

    6. code::verb=Translating a program design into a computer programming language and testing to remove any errors.

    7. data_object::=An abstract view of an object as a container of information rather than as an active participant on the piece of software.

    8. design::=Producing a step-by-step or piece-by-piece description of how an analyzed problem is to be solved.

    9. emoticon::=One of a number of ASCII characters that encode emotional states of the writer. :-) indicates a joke and :-( unhappiness.

    10. encapsulated::=Something that is protected from accidental tampering. Something that someone else is responsible for. None of our business at this time.

    11. FAQ::=Frequently Asked Question.

    12. IMHO::=In my humble opinion.

    13. interface::=A abstract description of how an object is used: created, operated on, and deleted.

    14. KISS::=A slogan used by computer people when somebody comes up with a complicated way of doing something when a clever solution would be simpler.

    15. kludge::=A design, thing, or plan that works but is an inelegant because of time or other problems. Example: wearing glasses that have been repaired with duct tape.
    16. object::=Something that is manipulated by operations and contains encapsulated information and processing.

    17. operations::=Actions that an object will perform when requested.

    18. TBA::=To Be Announced.
    19. TLA::=Three Letter Acronym.

    . . . . . . . . . ( end of section CS201: Introduction to Computer Science) <<Contents | End>>

    Abbreviations

  1. Algorithm::=A precise description of a series of steps to attain a goal, [ Algorithm ] (Wikipedia).
  2. Class::=A description of a type of object that includes the data it knows and the functions it can execute.
  3. Function::programming=A selfcontained and named piece of program that knows how to do something.
  4. Gnu::="Gnu's Not Unix", a long running open source project that supplies a very popular and free C++ compiler.
  5. OOP::="Object-Oriented Programming", Current paradigm for programming.
  6. Semantics::=Rules determining the meaning of correct statements in a language.
  7. SP::="Structured Programming", a previous paradigm for programming.
  8. Syntax::=The rules determining the correctness and structure of statements in a language, grammar.
  9. Q::software="A program I wrote to make software easier to develop",
  10. TBA::="To Be Announced", something I should do.
  11. TBD::="To Be Done", something you have to do.
  12. UML::="Unified Modeling Language", industry standard design and documentation diagrams.
  13. void::C++Keyword="Indicates a function that has no return".

End