CSC 116 - Introduction to Programming & Problem Solving Course Objectives
COURSE OBJECTIVES: After successfully passing this course, the student will be able to
Ce2.1.1 Ce2.2.3 write well-designed object-oriented programs using the Java
Cd2.1.1 Cd2.2.1 language and will be prepared for entry into Data Structures.
- Chapter 1 - Introduction & Computer Systems
The student will be able to
- Describe the relationship between hardware and software.
- Define various types of software and how they are used.
- Identify the core hardware components of a computer and explain their purpose.
- Explain how the hardware components interact to execute programs and manage data.
- Describe how computers are connected together into networks to share information.
- Explain the impact and significance of the Internet and the World-Wide Web.
- Dissect some Java programs, exploring the ideas of syntax and semantics.
- Describe the steps involved in program compilation and execution.
- Give an overview of object-oriented principles.
- Chapter 2 - Data and Expressions
The student will be able to
- Discuss the use of character strings, concatenation, and escape sequences.
- Identify and describe the Java primitive data types.
- Declare and use variables.
- Discuss the syntax and processing of expressions.
- Define the types of data conversions and the mechanisms for accomplishing them.
- Describe the Scanner class and how it can be used to create interactive programs.
- Explore the difference between a Java application and a Java applet.
- Describe the basic graphics concepts and techniques for drawing shapes.
- Chapter 3 - Using Classes and Objects
The student will be able to
- Discuss the creation of objects.
- Discuss the services provided by the String class
- Describe how the Java standard class library is organized into packages.
- Explain the services provided by the Random and Math classes.
- Discuss ways to format output using the NumberFormat and DecimalFormat classes.
- Recognize enumerated types.
- Discuss wrapper classes and the concept of autoboxing.
- Chapter 4 - Writing Classes
The student will be able to
1. Discuss the structure and content of a class definition.
- Explain the concept of object state using instance data.
- Describe the effect of visibility modifiers on methods and data.
- Identify the structure of a method definition, including parameters and a return values.
- Discuss the structure and purpose of a constructor.
- Describe the creation of graphical objects.
- Identify the concepts needed to create an interactive graphical user interface.
- Create some basic GUI components and events.
- Chapter 5 - Conditionals and Loops
The student will be able to
- Define the flow of control through a method.
- Create boolean expressions that can be used to make decisions.
- Perform basic decision making using if and switch statements.
- Discuss issues pertaining to the comparison of certain types of data.
- Execute statements repetitively using while, do and for loops.
- Explain the concept of an iterator object and use one to read a text file.
- Draw with the aid of conditionals and loops.
- Use more GUI components and events.
- Chapter 6 - Object-Oriented Design
The student will be able to
- Explain key issues related to the design of object-oriented software.
- Explain techniques for identifying the classes and objects needed in a program.
- Discuss the relationships among classes.
- Describe the effect of the static modifier on methods and data.
- Discuss the creation of a formal object interface.
- Define and use an enumerated type class.
- Discuss issues related to the design of methods, including method overloading.
- Explain issues related to the design of graphical user interfaces, including layout managers.
The student will be able to
- Define and use arrays for basic data organization.
- Discuss bounds checking and techniques for managing capacity.
- Describe how arrays and array elements are passed as parameters.
- Discuss the issues related to arrays as objects and arrays of objects.
- Describe the use of command-line arguments.
- Describe the syntax and use of variable-length parameter lists.
- Describe the creation and use of multidimensional arrays.
- Describe the ArrayList class and is generic parameter.
- Explain the use of mouse and keyboard events.
The student will be able to
- Derive new classes from existing ones.
- Explain how inheritance supports software reuse.
- Define the concept and purpose of method overriding.
- Add and modify methods and variables in child classes.
- Extend simple class derivations into well-designed class hierarchies.
- Explain the issue of visibility as it relates to inheritance.
- Derive one interface from another.
- Discuss object-oriented design in the context of inheritance.
- Examine and use the GUI component class hierarchy.
- Create listeners by extending adaptor classes.
The student will be able to
- Define polymorphism and explain its benefits.
- Discuss the concept of dynamic binding.
- Use inheritance relationships to create polymorphic references.
- Use interfaces to create polymorphic references.
- Explain sorting and searching using polymorphic implementations.
- Discuss object-oriented design in the context of polymorphism.
- Discuss the processing of events as an examples of polymorphism.
- Demonstrate the use of more GUI components.
The student will be able to
- Explain the purpose of exceptions.
- Explain exception messages and the call stack trace.
- Explain the try-catch statement for handling exceptions.
- Explain the concept of exception propagation.
- Describe the exception class hierarchy in the Java standard class library.
- Explore I/O exceptions and be able to write text files.
- Create GUIs using mnemonics and tool tips.
- Demonstrate the use of additional GUI components and containers.
The student will be able to
- Explain the underlying concepts of recursion.
- Explain examples of recursion that promote recursive thinking.
- Examine recursive methods and unravel their processing steps.
- Define infinite recursion and discuss the ways to avoid it.
- Explain when recursion should be used and when it should not be used.
- Demonstrate the use of recursion to solve problems.
- Demonstrate the use of recursion in graphics-based programs.
- Define the concept of a fractal and its relationship to recursion.
- Chapter 12 - Data Structures
The student will be able to
- Explore the concept of a collection .
- Examine the difference between fixed and dynamic implementations.
- Stress the importance of separating the interface from the implementation.
- Define and use dynamically linked lists.
- Identify classic linear data structures such as queues and stacks.
- Identify classic nonlinear data structures such as trees and graphs.
- Discuss the Java Collections API.
- Define the use of generic types and their use in collection classes.