|
Course ID: | CSCI 1301-1301L. 4 hours. 3 hours lecture and 2 hours lab per week. | Course Title: | Introduction to Computing and Programming | 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. | Oasis Title: | Intro Computing and Program | Duplicate Credit: | Not open to students with credit in CSCI 1301E | Prerequisite: | MATH 1113 or MATH 1113E | Semester Course Offered: | Offered fall, spring and summer semester every year. | Grading System: | A-F (Traditional) |
| Course Objectives: | This course presents fundamental programming topics in a
structured programming language. At the end of the semester, all
students will be able to do the following:
1. Explain and describe basic computing concepts required for
programming.
2. Utilize software development tools, including tools for
editing, compiling, testing, running, and debugging software
solutions.
3. Describe and utilize basic language constructs, including
data types, input, output, variables, constants, assignment
statements, arithmetic, and boolean expressions.
4. Trace, design, and implement software solutions to non-
trivial problems using control flow structures.
5. Trace, design, and implement software solutions to non-
trivial problems using basic data structures.
6. Trace, design, and implement software solutions to non-
trivial problems using object-oriented programming techniques.
7. Combine control flow statements, basic data structures, and
object-oriented programming techniques to create an interactive
software solution to a problem. | Topical Outline: | Major Topics Covered
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.
d) Create source code that adheres to established style
guidelines.
e) Create class, interface, and inline documentation for a
complete object-oriented software solution.
f) Create a set of dedicated test methods for classes and
other methods.
g) Read and interpret UML diagrams for a set of classes.
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. | |
Course ID: | CSCI 1301E. 4 hours. 3 hours lecture and 2 hours lab per week. |
Course Title: | Introduction to Computing and Programming |
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. |
Oasis Title: | Intro Computing and Program |
Duplicate Credit: | Not open to students with credit in CSCI 1301 |
Nontraditional 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 |
Semester Course Offered: | Offered summer semester every year. |
Grading System: | A-F (Traditional) |
|
Course Objectives: | This course presents fundamental programming topics in a structured programming language. At the end of the semester, all students will be able to do the following:
1. Explain and describe basic computing concepts required for programming.
2. Utilize software development tools, including tools for editing, compiling, testing, running, and debugging software solutions.
3. Describe and utilize basic language constructs, including data types, input, output, variables, constants, assignment statements, arithmetic, and boolean expressions.
4. Trace, design, and implement software solutions to non-trivial problems using control flow structures.
5. Trace, design, and implement software solutions to non-trivial problems using basic data structures.
6. Trace, design, and implement software solutions to non-trivial problems using object-oriented programming techniques.
7. 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.
d) Create source code that adheres to established style guidelines.
e) Create class, interface, and inline documentation for a complete object-oriented software solution.
f) Create a set of dedicated test methods for classes and other methods.
g) Read and interpret UML diagrams for a set of classes.
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 numbers 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 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. |
Honor Code Reference: | Academic Honesty:
Collaboration is a very good thing. Students are encouraged to work together. So how do you draw the line between collaboration and cheating? Here's a reasonable set of ground rules. Failure to understand and follow these rules will constitute cheating and will be dealt with as per university guidelines.
- The Gilligan's Island Rule:
This rule says that you are free to meet with fellow students(s) and discuss assignments with them. Writing on a board or shared piece of paper is acceptable during the meeting; however, you may not take any written (electronic or otherwise) record away from the meeting. This applies when the assignment is supposed to be an individual effort. After the meeting, engage in a half hour of mind-numbing activity (like watching an episode of Gilligan's Island), before starting to work on the assignment. This will assure that you are able to reconstruct what you learned from the meeting, by yourself, using your own brain.
- The Freedom of Information Rule:
To assure that all collaboration is on the level, you must always write the name(s) of your collaborators on your assignment. Failure to adequately acknowledge your contributors is at best a lapse of professional etiquette, and at worst it is plagiarism. Plagiarism is a form of cheating |
Syllabus: No Syllabus Available
|