CS302 Lecture #10 Home Page
Lecturer: Mr. Schultz
Lecture Times: Tuesday Thursday 1:00 - 2:15
Lecture Room: Psychology 138
Office: Compueter Sciences 1343
Office Hours: Monday Wednesday 12:00 - 2:00
Phone: 262-5596
Email: mschultz@cs.wisc.edu

In This Page: Announcements | Course Overview | Resources | Examples | Assignments

ANNOUNCEMENTS
COURSE OVERVIEW
CS302 provides instruction and experience in the use of an object-oriented programming language (currently Java). Emphasis is on program design and development of good programming style. This course is intended to prepare students for other Computer Science courses. Prerequisites include: Problem solving skills such as those acquired in a statistics, logic, or advance high school algebra course; or consent of instructor. CS302 is open to Freshmen.
 
 

Difficulty: CS302 can be a very challenging course.

  • Don't be misled by the course name, Introduction to Programming. Consider CS302 to be like a 300 level math course. The course requires students to have strong problem solving skills and to take considerable time outside of class.
  • Course Work: There are lessons, programming assignments, self-check quizzes, and exams.
  • Lessons are programming and/or written work that focuses on specific concepts.
  • Programming Assignments are comprehensive programming projects that require substantial time and effort.
  • Self-Check Quizzes are written work that are intended to help you prepare for exams.
  • Exams are the primary tool used for evaluating students' performance. There are two midterms and one final exam.
  • Collaboration on assignments is allowed, but collaboration may cause one to do poorly in the class. The lessons and assignments are intended to give students the practice and experience necessary to understand the course material. We expect that all students have done their own work, and we test students'  knowledge of the lessons and the assignments on the exams.
  • RESOURCES

  • Main CS302 Web Page: http://www.cs.wisc.ed/~cs302/.


  • Text Book Web Page: http://www.mhhe.com/wu3/.


  • Here is a glossary of terms partially borrowed from another class, but that may be useful for you in 302.


  • Here are naming conventions for classes, object references, methods, and class constants.


  • Here is a recently made supplement web page that takes a comparative, complete, and yet top-down approach to writing classes, methods, and data in programs.


  • Here is an incomplete listing of some reserved words in JAVA.


  • This table of numerical primitives can be found in you8r text book on page 86.


  • Here is a table of visibility modifiers that show the progressive levels of protection for classes.


  • Here is a page that describres the 16 different members that a class or an object can have, indicates the keyword used to desginate them as such, and explains how to draw them in class/object diagrams


  • Here is a page that exemplifies operations with differing numeric types and some example problems at the end involving order of precedence rules.


  • Finally! A step-by-step walk through of creating an instantiable class, called From Analysis To Coding. And just to see how it works, heres an example of the whole process, for one of the examples below, the Beverage class.


  • Fun with memory diagrams! Follow the coputation line by line and see how the diagram changes to reflect changes of the objects involved and their references.


  • Here's a slighlty more helpful Input and Output (io) reference page than what either your book or the online notes have. Keep in mind that anything in the online notes are the official reference, but this link here may help to clarify the subject.


  • EXAMPLES

    Link To Example Description Exemplifies Author
    Point a simple 2-D Point class definition and a small program that experiments with multiple constructors and the accessors and mutators, also includes one class method class/object diagram, class methods, accessor and mutators, multiple constructors, toString() method, javadoc, System.out.println() method Michael Schultz
    Taxi A Taxi class is created based upon a requirements specification that goes around servicing passengers and making money. class/object diagram, class constants, instance constants, toString() menthod, javadocs, System.out.plrintln() method Michael Schultz
    Beverage A Beverage class is defined using many different modifiers. the difference between public and private, class and instance, variable and constant Michael Schultz
    MiniatureGolf similar to assignment 1, included are all the design documents, object diagrams, and code. The only part not included is a descriuption of incremental development steps, as those are up to you. iterators for collections of objects, control statements Michael Schultz
    Calculator A non-instantiable Calculator class that behaves similarly to the Math class class/object diagram, non-instantiable classes, class methods, numeric promotion, casting, Math class, javadocs, System.out.plrintln() method Michael Schultz
    BMICalculator A program that calculates your body mass based upin your weight and your height software engineering life cycle, class/object diagram, incremental development, I/O with javabook package, java.lang.Math class Pat Votruba
    Ice Cream Scooper A program which calculates, based on mathematical volume formulas, the number of ice cream scoops that you can obtain from an ice cream tub. instantiable classes, java.lang.Math class, I/O with javabook package Jim Skrentny
    Tic Tac Toe A Tic Tac Toe game class/object diagrams, message-passing diagrams, command line output, javadocs, main method, object reference declarations, object construction, objects as arguments and return values Jim Skrentny
    Playing Dice takes user input to decide the number of sides the die will have, then rolls randomly. also has a magic 8 ball feature class/object diagram, multiple main classes, java.lang.Math.random() method, I/O with javabook package, multiple constructors Jim Skrentny
    ASSIGNMENTS
  • Practice Exercises


  • Last Updated:1/15/03