|  | Oct 31, 2025 |  |  | 
	     
			
		  	|  | 
              
                | 
                    
                      | 2023-2024 Catalog [PAST CATALOG] 
 
 |   CTP 150H - Computer Science 1-Honors4 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 processFormulate precise specifications for a problem and its solutionCreate modular designs of problem solutionsUnderstand and use preconditions and post-conditionsApply debugging strategiesUnderstand and use fundamental data structures.
	
		Understand and apply primitive typesUnderstand and apply reference typesUnderstand and apply strings and string processingUnderstand and apply arrays and array processingUnderstand and describe data representation in memoryUnderstand and describe the evolution of programming languages.
	
		Describe the history of programming languagesSurvey programming paradigms to include procedural languages and object-oriented languagesUnderstand the effects of scale on programming methodologyPerform identifier declarations and appropriate data types.
	
		Understand the concept of types as a set of values together with a set of operationsUnderstand the appropriate declaration models (scope, static and non-static data)Describe type checkingDescribe garbage collectionCreate computer programs using Object-Oriented Design techniques.
	
		Understand and describe the model-view-control design patternUnderstand and code correctly collaboration among classesUnderstand 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 classesDefine and use built in classesDefine and use classes from the APIDefine and use correctly encapsulation and information hidingDefine identity, state and behaviorDefine and use inheritance and polymorphismUnderstand Java Database ConnectivityUnderstand and use software tools and programming environments.
	
		Use effectively these features of an Integrated Development Environments (IDEs): Editors, Compilers, Debuggers and tracing techniquesUse correctly Unified Modeling Language (UML) toolsDiscuss software installation and setup proceduresApply Software Validation techniques.
	
		Design a software validation planUse black-box and white-box testing techniquesPerform unit integration validation and system testingDiscuss Professional and Ethical Responsibilities.
	
		Discuss acceptable use policies for computing in the workplaceDiscuss codes of ethics, conduct, and practice (IEEE, ACM, etc)Create a Graphical User Interface.
	
		Create WindowsCreate FramesCreate Buttons and ActionListenersCreate Labels and TextFields 
 
 
 
 |  |