OCCC CS Courses
From
m (→ACM Breadth-First course (OCCC CS160)) |
m (→ACM CS3 Computer Architecture (CS271 or CS201)) |
||
Line 94: | Line 94: | ||
Bob Broeg, Paul Paulson | Bob Broeg, Paul Paulson | ||
+ | |||
+ | === ACM CS2 Data Structures (CS260/CS261/CS163) === | ||
+ | Description: To be submitted | ||
+ | |||
+ | <br> Draft: Mitch Fry, Dodi Coreson, Jay Bockelman | ||
+ | <br/><br/> | ||
+ | University outcomes pages (current inventory):<br/> | ||
+ | <b>OCCC CS260 (may be other numbers at some schools)</b><br/> | ||
+ | [[EOU-CS271|EOU]]<br/> | ||
+ | [[OIT-CS271|OIT]]<br/> | ||
+ | [[OSU-CS271|OSU]]<br/> | ||
+ | [[PSU-CS271|PSU]]<br/> | ||
+ | [[SOU-CS271|SOU]]<br/> | ||
+ | [[UofO-CS271|UO]]<br/> | ||
+ | [[WOU-CS271|WOU]]<br/> | ||
+ | <br/><br/> | ||
=== Discrete Math (Mth231/232 or CS250/251) === | === Discrete Math (Mth231/232 or CS250/251) === |
Revision as of 20:03, 29 October 2011
Contents |
CS lower division transfer course descriptions
ACM Breadth-First course (OCCC CS160)
Currently approved description:
Explores the disciplines and professions of Computer Science and Software Engineering. Overviews computer hardware and software architecture, the study of algorithms, software design and development, data representation and organization, problem-solving strategies, ethics in the digital world, and the history of computing and its influences on society. Explores career options and begins the process of planning a program of study. Exposes students to both low-level and high-level programming languages.
Draft outcomes: Paul Wilkins/Mitch Fry
University outcomes pages (current inventory):
EOU
OIT No CS160 equivalent course
OSU
PSU No CS160 equivalent course
SOU
UofO No CS160 equivalent course
WOU
ACM Programming Fundimentals (CS161/CS162)
CS161 {I need to convert these to outcomes} The goals of this class are to introduce students to the fundamental concepts of computing. Problem solving, the design of algorithms for solutions, and the translation of tested algorithms into the grammar of a high-level computer language are emphasized. Students are encouraged to develop a consistent programming style and a systematic method of internal program documentation.
CS162 {I need to convert these to outcomes} The goals of this class are to teach the syntax of a high level programming language to students who already know what programs are. This course will introduce the syntax of C++ including: data types, variables, conditionals, loops, functions, and arrays. It will introduce new constructs such as classes, pointers, dynamic memory, linear linked lists, recursion, and multi-dimensional arrays to prepare students for CS163, Data Structures. To learn and use advanced concepts provided by a modern structured computer language, such as data abstraction, separate compilation and the use of library procedures.
Draft: Colin Goble, Warren Harrison
University outcomes pages (current inventory):
OCCC CS161 (may be other numbers at some schools)
EOU
OIT
OSU
PSU
SOU
UO
WOU
OCCC CS162 (may be other numbers at some schools)
EOU
OIT
OSU
PSU
SOU
UO
WOU
ACM CS2 Data Structures (CS260/CS261/CS163)
Description: To be submitted
Draft: Mitch Fry, Dodi Coreson, Jay Bockelman
University outcomes pages (current inventory):
OCCC CS260 (may be other numbers at some schools)
EOU
OIT
OSU
PSU
SOU
UO
WOU
ACM CS3 Computer Architecture (CS271 or CS201)
To be drafted
[PSU CS201/Computer Systems Programming] The goal of this course is to introduce computer systems from a software perspective. Teach C and assembly language programming and reading skills. Teach basic systems programming skills and tools. Show how to measure and improve program performance based on an understanding of key aspects of machine architecture.
Upon the successful completion of this course students will be able to:
- Describe basic computer system organization including the operating system (processes, files, virtual memory) and the underlying hardware (CPU, registers, memory hierarchy).
- Describe the compilation system (preprocessing, assembling, compiling, and linking) and the function of object/executable files and shared libraries, as well as how basic system utilities such as debuggers and Makefiles work.
- Write C programs to illustrate basic systems programming concepts, including file I/O, system calls, memory management, exception handling and process management.
- Do arithmetic in hexadecimal, decimal, octal, and binary notation, and convert among these notations.
- Explain how data types such as integers, characters, floating point numbers, arrays, pointers, and structures are represented.
- Describe the basic instruction set architecture for the IA32 family (or similar machine), including the arithmetic/logic instructions, registers, memory model and addressing, and control instructions.
- Explain how high-level programming constructs such as loops and stack-based function calls are implemented in underlying machine code.
- Explain how exceptions, traps, and context switches occur and how they are handled at the machine level.
- Explain the performance impact of hardware features such as pipelining, and architecture principles such as memory locality.
- Use profiling and timing facilities to identify performance bottlenecks in C programs.
Bob Broeg, Paul Paulson
ACM CS2 Data Structures (CS260/CS261/CS163)
Description: To be submitted
Draft: Mitch Fry, Dodi Coreson, Jay Bockelman
University outcomes pages (current inventory):
OCCC CS260 (may be other numbers at some schools)
EOU
OIT
OSU
PSU
SOU
UO
WOU
Discrete Math (Mth231/232 or CS250/251)
[PSU CS250/Discrete Structure I] CS 250 is the first term of the two term sequence CS 250-251. The main goal of the sequence is that students obtain those skills in discrete mathematics and logic that are used in the study and practice of computer science.
Upon the successful completion of this course students will be able to:
- Describe basic properties of sets, bags, tuples, relations, graphs, trees, and functions.
- Perform traversals of graphs and trees; construct simple functions by composition of known functions; determine whether simple functions are injective, surjective, or bijective; and classify simple functions by rate of growth.
- Describe the concepts of countable and uncountable sets, and apply the diagonalization method to construct elements that are not in certain countable sets.
- Construct inductive definitions for sets, construct grammars for languages (sets of strings), and construct recursive definitions for functions and procedures.
- Determine whether a binary relation is reflexive, symmetric, or transitive and construct closures with respect to these properties.
- Construct a topological sort of a partially ordered set and determine whether a partially ordered set is well-founded.
- Use elementary counting techniques to count simple finite structures that are either ordered or unordered, to count the worst case number of comparisons and, with discrete probability, to count the average number of comparisons for simple decision trees.
- Find closed form solutions for simple recurrences using the techniques of substitution, cancellation, and generating functions.
- Demonstrate standard proof techniques and the technique of inductive proof by writing short informal proofs about simple properties of numbers, sets, and ordered structures.
[PSU CS251/Discrete Structures II] CS 251 is the second term of the two term sequence CS 250-251. The main goal of the sequence is that students obtain those skills in discrete mathematics and logic that are used in the study and practice of computer science.
Upon the successful completion of this course students will be able to:
- Apply the properties of propositional calculus to: determine whether a wff is a tautology, a contradiction, or a contingency by truth tables and by Quine's method; construct equivalence proofs; and transform truth functions and wffs into conjunctive or disjunctive normal form.
- Describe the basic inference rules and use them to write formal proofs in propositional calculus.
- Apply the properties of first-order predicate calculus to: determine whether a wff is valid, invalid, satisfiable, or unsatisfiable; construct equivalence proofs; and transform first-order wffs into prenex conjunctive or disjunctive normal form.
- Describe the rules of inference for quantifiers and use them along with the basic inference rules to write formal proofs in first-order predicate calculus.
- Write formal proofs in first-order predicate calculus with equality.
- Construct partial correctness proofs of simple imperative programs and construct termination proofs for simple loops.
- Transform first-order wffs into clausal form; and unify atoms from a set of clauses.
- Describe the resolution inference rule; use it to write formal proofs in first-order logic; and describe how resolution is used to execute a logic program.
- Transform simple English sentences into formal logic (propositional, first-order, or higher-order).
- Apply appropriate algebraic properties to: simplify Boolean expressions; simplify regular expressions; write recursive definitions for simple functions in terms of operations for abstract data types; write expressions to represent relations constructed in terms of operations for relational databases; and work with congruences.
{NOTE: everyone seems to agree that there is way too much stuff in these two classes}
Block transfers from math programs other than PSU/PCC