Sep 23, 2020
CTP 150 - Computer Science 1 4 credit hours - Three hours of lecture and two hours of laboratory weekly; one term.
(formerly CSI 163 - Computer Science 1)
This course meets the Computer Technology General Education Requirement.
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. Lab fee $25.
Prerequisite(s): CTP 115 or permission of CTP department chair.
Note: CTP 115 prerequisite is waived for students that complete AP Computer Science. Credit is not given for both CTP 150 and CSI 161 or CSI 162.
Upon successful completion of this course, students will be able to:
- 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
Core 1 Communication Core 2 Technology Fluency Core 3 Information Literacy Core 5 Self Management Core 7 Quantitative Reasoning Core 10 Innovative and Critical Thinking