Nov 22, 2024  
2023-2024 Catalog 
    
2023-2024 Catalog [PAST CATALOG]

CTP 150H - Computer Science 1-Honors

4 credit hours - Three hours of lecture and two hours of laboratory weekly; one term.
This is an honors course.

Use fundamental design principles and problem-solving techniques introduced in CTP 115 to develop computer algorithms. Implement algorithms as programs coded in Java, an object-oriented programming language. Learn the data types, control structures, classes, arrays, and I/O in the Java programming language. Learn graphical user interfaces, inheritance, polymorphism, recursion, and exceptions. Emphasize style, documentation, solution robustness, and conformance with specifications throughout course work.

Prerequisite or Corequisite: CTP 115  or CTP 115H  and eligibility for Honors courses or permission of computer science department chair.

Crosslisted: Also offered as CTP 150 . Credit is not given for both CTP 150  and CTP 150H.

Note: CTP 115  prerequisite is waived for students who complete AP Computer Science. Credit is not given for both CTP 150 and CSI 161 or CSI 162.

Course Outcomes:
 

  • Apply the fundamental programming constructs to create a solution to a programming problem.
    • Correctly use basic syntax and semantics of a higher-level language.
    • Understand and describe variables, types, expressions, and assignment.
    • Write a computer program that will use console input and output.
    • Use and describe conditional and iterative control structures.
    • Use and describe functions and parameter passing.
  • Apply problem solving techniques to create robust algorithms.
    • Understand the role of algorithms in the problem-solving process
    • Formulate precise specifications for a problem and its solution
    • Create modular designs of problem solutions
    • Understand and use preconditions and post-conditions
    • Apply debugging strategies
  • Understand and use fundamental data structures.
    • Understand and apply primitive types
    • Understand and apply reference types
    • Understand and apply strings and string processing
    • Understand and apply arrays and array processing
    • Understand and describe data representation in memory
  • Understand and describe the evolution of programming languages.
    • Describe the history of programming languages
    • Survey programming paradigms to include procedural languages and object-oriented languages
    • Understand the effects of scale on programming methodology
  • Perform identifier declarations and appropriate data types.
    • Understand the concept of types as a set of values together with a set of operations
    • Understand the appropriate declaration models (scope, static and non-static data)
    • Describe type checking
    • Describe garbage collection
  • Create computer programs using Object-Oriented Design techniques.
    • Understand and describe the model-view-control design pattern
    • Understand and code correctly collaboration among classes
    • Understand and code correctly relationships between classes (is-a, has-a)
    • Understand and design programs using appropriate class hierarchies.
  • Understand and apply Object-Oriented Concepts.
    • Define and use correctly user-defined classes
    • Define and use built in classes
    • Define and use classes from the API
    • Define and use correctly encapsulation and information hiding
    • Define identity, state and behavior
    • Define and use inheritance and polymorphism
    • Understand Java Database Connectivity
  • Understand and use software tools and programming environments.
    • Use effectively these features of an Integrated Development Environments (IDEs): Editors, Compilers, Debuggers and tracing techniques
    • Use correctly Unified Modeling Language (UML) tools
    • Discuss software installation and setup procedures
  • Apply Software Validation techniques.
    • Design a software validation plan
    • Use black-box and white-box testing techniques
    • Perform unit integration validation and system testing
  • Discuss Professional and Ethical Responsibilities.
    • Discuss acceptable use policies for computing in the workplace
    • Discuss codes of ethics, conduct, and practice (IEEE, ACM, etc)
  • Create a Graphical User Interface.
    • Create Windows
    • Create Frames
    • Create Buttons and ActionListeners
    • Create Labels and TextFields