20804208Computer Science
Course Information
Description
This course uses the object-oriented programming language Java in a project-based learning format where students will be given increasingly challenging problems. Projects will be brought through the five stages of development: program design, definition and design of library classes, coding, testing, and documenting. Project elements begin with input, output, storage, and operations, and continue through control structures (loops, branching, and methods), data structures (arrays and classes), and techniques for searching and sorting. Students will implement standard Java grammar elements including inheritance and interfaces and will use the compiler and debugger to debug programs. Students will practice analytical skills through elimination of run-time and logical errors and will exercise writing skills in documenting code to a prescribed industry standard. The course requires eight to ten hours per week outside of class.
Total Credits
4

Course Competencies
  1. Write a given program
    Assessment Strategies
    in a lab exercise
    Criteria
    write a given program
    build a program
    save a source file
    print a source file
    run a console application
    run an applet
    redirect output to a printer
    write source file in standard format

  2. Document a program using comments
    Assessment Strategies
    in projects completed in lab and outside of class
    Criteria
    apply appropriate form for single and multiline comments
    write comments with appropriate content for program, class, method, and statement levels
    comment all required input
    comment all output generated
    comment on algorithms and/or program organization

  3. Construct an algorithm to solve a problem
    Assessment Strategies
    in projects completed in lab and outside of class
    in classroom exercises, take-home problem sets, and tests
    Criteria
    apply ideas for a variety of purposes including information, enjoyment, and appreciation
    draw on knowledge of logic, mathematics, order, etc, to do a top-down analysis of the problem
    devise an algorithm to solve the problem
    modify the algorithm to handle exceptional cases

  4. Apply variables in a program
    Assessment Strategies
    in every programming project
    in every test and problem set
    Criteria
    define variables of atomic, class, and array data types with appropriate names
    store information in the variables with initialization, assignment, and input from keyboard and file
    extract information in variables for output

  5. Debug a program
    Assessment Strategies
    in projects completed in lab and outside of class
    in written debugging exercises on exams and problem sets
    Criteria
    find and repair syntax errors which prevent building
    devise a set of test data to check for logical and run-time errors
    accomplish assigned task with source code that is logically correct
    analyze output and watch variables with break points and step-by-step execution to detect and repair logical errors

  6. Format output in a program
    Assessment Strategies
    in projects completed in lab and outside of class
    in quizzes and tests
    Criteria
    label output clearly
    display numbers to specified precision using a NumberFormat
    insert new lines and spacing for clarity in console applications
    arrange and label components logically and clearly in a GUI using various Layouts

  7. Import correct packages in a program
    Assessment Strategies
    in projects completed in lab and outside of class
    in classroom exercises, take-home problem sets, and tests
    Criteria
    import proper packages for Vector, Format, Applet, Graphics, AWTEvent, and other commonly used Java classes and interfaces

  8. Apply operators in a program
    Assessment Strategies
    in projects completed in lab and outside of class
    in classroom exercises, take-home problem sets, and tests
    Criteria
    apply arithmetic operators (+, -, *, /, %) with integer (and where appropriate) floating point numbers and Strings
    apply assignment operators (=, +=, -=, *=, /=, %=) with appropriate data types
    apply logical operators (&&, ||, !) to combine logical (T/F) expressions
    apply relational operators (==, !=, =) with appropriate data types
    apply ++ and -- in both prefix and postfix form
    apply operator precedence to combine multiple operators correctly in an expression
    apply parentheses to change the order of operations

  9. Apply looping statements in a program
    Assessment Strategies
    in projects completed in lab and outside of class
    in classroom exercises, problem sets, quizzes, and tests
    Criteria
    apply "for" loop appropriately
    apply "while" loop appropriately
    apply "do-while" loop appropriately
    analyze problem to determine which type of loop to use
    apply nested loops to solve various problems (eg, sorting)

  10. Apply branching statements in a program
    Assessment Strategies
    in projects completed in lab and outside of class
    in classroom exercises, problem sets, quizzes, and exams
    Criteria
    apply "if" statement appropriately
    apply "if-else" statement appropriately
    apply nested "if-else" statements appropriately
    apply "switch" statement appropriately
    analyze a problem to determine which branching type to use
    apply branching statements to solve a problem

  11. Select control structures to implement an algorithm
    Assessment Strategies
    in projects completed in lab and outside of class
    Criteria
    embody algorithm in structure chart and/or flow chart
    determine which tasks require separate functions and what each function requires for input and output
    select looping and branching statements to accomplish repetitive and decision-making steps, respectively

  12. Apply methods in a program
    Assessment Strategies
    in projects completed in lab and outside of class
    in quizzes and exams
    Criteria
    apply methods from predefined classes
    declare a method prototype in an interface or abstract class
    define class and instance methods, including appropriate name, return type, and parameters
    overload a method when appropriate
    override a method when appropriate

  13. Apply arrays and Vectors in a program
    Assessment Strategies
    in projects completed in lab and outside of class
    in quizzes and exams
    Criteria
    defines fill, and access elements of array of primitives and objects
    perform standard array tasks of traversing, searching, and sorting
    define and apply a multidimensional array
    define and fill a Vector
    access elements of a Vector and perform type casting to convert the resulting Objects
    pass arrays and Vectors as parameters and use them in methods
    determine the number of elements in an array and a Vector

  14. Apply Strings in a program
    Assessment Strategies
    in projects completed in lab and outside of class
    in quizzes and exams
    Criteria
    define and initialize a String
    send Strings to output streams, concatenate Strings, and reads Strings from keyboard and file
    apply String methods to compare, modify, and analyze Strings
    convert between Strings and other data types

  15. Create an applet
    Assessment Strategies
    in projects completed in lab and outside of class
    in quizzes and exams
    Criteria
    write an HTML file containing an applet tag
    define a class which extends Applet and uses Graphics methods and Component objects
    override the init, start, and/or paint methods as appropriate
    run the applet in an applet viewer and close the applet

  16. Apply AWT classes in a program
    Assessment Strategies
    in projects completed in lab and outside of class
    in quizzes and exams
    Criteria
    apply Button, TextField, TextArea, Label, Checkbox, Choice, List, Frame, Panel, and Applet classes in programs
    resize, enable, disable, show, and hide Components
    apply Layout subclass methods to position Components
    put Checkboxes in a CheckboxGroup
    acquire a Graphics object and apply it to set and get Color and Font characteristics
    acquire a FontMetrics object and apply it to determine the width and height of a String in a particular Font
    apply Graphics methods to draw and position Strings and figures including points, lines, rectangles, ovals, arcs, and polygons

  17. Apply event-handling in a program
    Assessment Strategies
    in projects completed in lab and outside of class
    in quizzes and exams
    Criteria
    implement WindowListener, ActionListener, and ItemListener interfaces
    create a WindowAdapter to simplify implementing WindowListener
    attach appropriate Listeners to appropriate Components
    override actionPerformed method to respond to Button clicks and in TextComponent
    override window Closing method to make the close button on a Frame function properly
    override itemStateChanged method to respond to events in Choice, List, and Checkbox

  18. Apply exception handling in a program
    Assessment Strategies
    in projects completed in lab and outside of class
    in quizzes and exams
    Criteria
    apply" throws" with checked exceptions to propagate them if not handled within the method
    apply try, catch, and finally blocks to handle exceptions
    apply "throw" with predefined and programmer-defined exceptions
    create new exception classes by extending existing exception classes

  19. Apply predefined classes to perform input and output operations
    Assessment Strategies
    in projects completed in lab and outside of class
    in quizzes and exams
    Criteria
    apply Systemin and Systemout objects to provide standard input and output
    apply File objects to determine whether files and directories exist and which is which
    apply BufferedReader and PrintWriter objects to perform String-based input and output
    apply RandomAccessFile, DataInputStream and DataOutputStream objects to perform formatted input and output of primitive and String data
    apply RandomAccessFile objects to move within a file for input and output
    apply ObjectInputStream and ObjectOutputStream objects for input and output of objects and arrays