Course Description
Algorithms, programs, and computing systems. Fundamental techniques of program development and supportive software tools. Programming projects and applications in a structured computer language. Hands-on experience using microcomputers.
Athena Title
Intro Computing and Program
Equivalent Courses
Not open to students with credit in CSCI 1301
Non-Traditional Format
This course will be taught 95% or more online. Students will utilize the features of eLC and other tools to access a variety of experiences involving text and multimedia presentations of content. Intensive practice, online discussion, and expert support. Proctored exams may be offered through a combination of online and in-person proctored sessions, which may have proctoring fees associated with them.
Prerequisite
MATH 1113 or MATH 1113E or MATH 2250 or MATH 2250E or MATH 2200
Semester Course Offered
Offered summer semester every year.
Grading System
A - F (Traditional)
Student Learning Outcomes
- At the end of the semester, all students will be able to explain and describe basic computing concepts required for programming.
- At the end of the semester, all students will be able to utilize software development tools, including tools for editing, compiling, testing, running, and debugging software solutions.
- At the end of the semester, all students will be able to describe and utilize basic language constructs, including data types, input, output, variables, constants, assignment statements, arithmetic, and Boolean expressions.
- At the end of the semester, all students will be able to trace, design, and implement software solutions to non-trivial problems using control flow structures.
- At the end of the semester, all students will be able to trace, design, and implement software solutions to non-trivial problems using basic data structures.
- At the end of the semester, all students will be able to trace, design, and implement software solutions to non-trivial problems using object-oriented programming techniques.
- At the end of the semester, all students will be able to combine control flow statements, basic data structures, and object-oriented programming techniques to create an interactive software solution to a problem.
Topical Outline
- 1. Computing Basics
a) Explain the difference between computer software and hardware.
b) Describe various types of memory (primary, secondary), give examples of each, and understand the importance of the various levels of the memory hierarchy.
c) Explain encoding schemes for various types of data such as: whole numbers, characters, images, and videos.
- 2. Development Tools and Accepted Practices
a) Explain the relationships between: JRE, JDK, JVM, IDE, and the Java compiler.
b) Utilize the debugger to trace and identify logical errors in a software solution.
c) Use an integrated development environment (IDE), such as Eclipse, to create, compile, and execute a non-trivial software solution.
- 3. Language Basics - Specific topics that need to be covered include, but are not limited to, data types, input, output, variables, constants, assignment statements, arithmetic, and Boolean expressions.
a) Declare and initialize variables of different types.
b) Explain the need for multiple whole number and floating-point data types.
c) Given non-trivial arithmetic and Boolean expressions containing various operations and data types, calculate the resulting value and data type.
d) Perform basic input and output operations.
e) Explain the differences between primitive and reference types.
- 4. Control Flow - Specific topics that need to be covered include, but are not limited to, if-else statements, switch statements, for-loop statements, while-loop statements, do-while-loop statements, and variable scope.
a) Draw a complete execution trace (memory map) for non-trivial code examples containing combinations of the major control flow statements involving at least three levels of nesting.
b) Design and implement non-trivial software solutions that require the use of combinations of the major control flow statements involving at least three levels of nesting.
- 5. Basic Data Structures - Specific topics that need to be covered include, but are not limited to, Arrays and Strings.
a) Draw a complete execution trace (memory map) for non-trivial code examples containing combinations of the basic data structures. For example, 2-D arrays, ragged arrays, and arrays containing references to objects.
b) Design and implement non-trivial software solutions that require the use of combinations of the basic data structures.
c) Linear search, binary search, and quadratic comparison-based sorting algorithms.
- 6. Object-Oriented Programming - Specific topics that need to be covered include, but are not limited to, classes, objects, methods, constructors, static variables and methods, method overloading, access modifiers, mutability, information hiding and encapsulation, access modifiers, and pass-by-value.
a) Draw a complete execution trace (memory map) for non-trivial code examples incorporating object-oriented concepts. Specifically, object composition and aggregation must be covered.
b) Design and implement non-trivial software solutions that incorporate object-oriented concepts. Specifically, object composition and aggregation must be covered.
- 7. Aggregate
a) Combine control flow statements, basic data structures, and object-oriented programming techniques to create an interactive software solution to a problem.
General Education Core
CORE III: Quantitative Reasoning
Institutional Competencies
Analytical Thinking
The ability to reason, interpret, analyze, and solve problems from a wide array of authentic contexts.