Computer Science - EOU / SOU / WOU - Transfer - Degree

Associate of Science Transfer (AST) in Computer Science 

computer programmers

Faculty Adviser

Mitch Priestley: 503-491-7198 | Room AC2782 Mitch.Priestley@mhcc.edu

Computer science is the study of computers, hardware, software design, and the way humans work with technology. Students will study programming in a variety of languages for different purposes. MHCC’s program prepares students to transfer to a four year degree at EOU, SOU, or WOU. Because of the many options for electives, contact your advisor and transfer school for advising.

Students who complete this program will also complete the Oregon Major Transfer Map (MTM) and Core Transfer Map (CTM).

Curricular Outcomes

At the completion of this curriculum, students should be able to:

  • Develop software using both structured and object-oriented paradigms that meets the requirements of a written specification. 
  • Explain the software development lifecycle and the specific tools and processes used to create software. 
  • Design, analyze, and implement algorithms to solve computational problems using various data structures as problem-solving tools. These data structures must include arrays, stacks, queues, linked lists, trees, and hash tables. 
  • Communicate effectively in a variety of professional contexts.
  • Function effectively as a members or leader of a team engaged in activities appropriate to the programs' discipline. 

General education courses (such as math, writing, health, etc.) can be taken during any term, or before starting the program. 

Please note:

  • Students majoring in Computer Science will need to know their transfer plans early on in order to complete the correct courses.
  • This degree aligns with Oregon's Computer Science Major Transfer Map (MTM) for students planning to transfer to EOU, SOU, or WOU after completion.
  • Students who do not place directly into MTH251 Calculus I: Differential Calculus or higher will need to complete MTH111Z Precalculus I: Functions (Course offered online) and/or MTH112Z Precalculus II: Trigonometry  before enrolling in computer science courses.
  • Please contact the faculty adviser as soon as possible for assistance with course planning.
Plan of Study Grid
First Quarter
FallCredits
CS160 Computer Science Orientation (Course offered online) 4
MTH251 Calculus I: Differential Calculus 5
WR121Z Composition I (Course offered online) 4
Elective / university requirement 3
 Credits16
Second Quarter
Winter
CS161 Computer Science I 4
MTH252 Calculus II: Integral Calculus 5
WR122Z Composition II (Course offered online) 4
Elective / university requirement 4
 Credits17
Third Quarter
Spring
COMM111Z Public Speaking (Course offered online) 4
CS162 Computer Science II 4
Arts and Letters requirement 3-4
Elective / university requirement 4
 Credits16
Fourth Quarter
Fall
CS260 Data Structures 4
Arts and Letters requirement 3-4
Social Science requirement 3-4
Elective / university requirement 3-4
 Credits15
Fifth Quarter
Winter
Lab science requirement 3-5
Social Science requirement 3-4
Elective / university requirement 4-6
 Credits14
Sixth Quarter
Spring
Lab science requirement 3-5
Electives, to reach 90 credits 8-10
 Credits12-14
 Total Credits90-92

Transfer Schools

CS160 Computer Science Orientation (Course offered online)

Credits 4Summer - even years/Fall/Winter/Spring

Registration Requirement: RD090 and WR090, or IECC201R and IECC201W; and MTH095; each with a grade of "C" or better, or placement above stated course levels.

This course explores the discipline of computer science and is intended for both computer science majors and students in other disciplines. This course provides an overview of computer architecture, software development engineering, data organization and representation, problem-solving strategies, ethics and the history of computing and its influences on society. The student begins to develop the basics of software development skills and is exposed to both low-level and high-level programming languages.

This course fulfills: Non-Lab Science

View Course Outcomes:

  1. Define, construct and test simple algorithms, both manually and using software presented in the course.
  2. Discuss the professional and ethical issues involved in the use of computers.
  3. Identify and discuss different fields within computer science, including the nature of the work and requirements for entry into the workforce.
  4. Identify and discuss the roles of the various parts of computer hardware.

CS161 Computer Science I

Credits 4Fall/Winter

Registration Requirement: RD090 and WR090, or IECC201R and IECC201W; and MTH095, or MTH098; each with a "C" grade or higher, or placement above stated levels.

This course is an introduction to fundamental concepts of computer science including problem-solving, algorithm and program design, data types, control structures, repetition structures, functions and arrays. This course is designed for computer science majors and for students in other disciplines.

This course fulfills: Non-Lab Science

View Course Outcomes:

  1. Design and write pseudocode algorithms and flowcharts to solve given problems.
  2. Explain the structural components (syntax) and usage rules (semantics) of a programming language such as C++.
  3. Trace program code, identifying and recommending corrections for any errors.
  4. Write error-free programs using variables, constants, arrays, functions, control structures, repetition structures and files.

CS162 Computer Science II

Credits 4Winter/Spring

Registration Requirement: CS161 and MTH095 or higher, excluding MTH098.

This course is an introduction to object-oriented programming and to software engineering. Students will write programs that use structs, classes, inheritance and polymorphism to manage objects. Additional topics include recursion, information hiding, testing, and the use of debugging tools.

This course fulfills: Non-Lab Science

View Course Outcomes:

  1. Apply the principles of object-oriented design in the development of a complete software package, given a set of customer specifications.
  2. Develop and implement a plan for testing a program for correctness.
  3. Implement advanced language concepts and syntax such as polymorphism and inheritance in class definitions.

CS205 Systems Programming and Architecture

Credits 4Spring

Registration Requirement: CS162 with a grade of "C" or higher, MTH251 with a grade of "C" or higher.

This course is an introduction to computer architecture and to Assembly language, embedded in C programs. Topics include: Assembly instruction set architectures, purposes and interactions among major components of computer architecture, number representations, C programming, Assembly programming, and the implementation of high-level programming constructs in machine code. Required for MTM-CS.

This course fulfills: Non-Lab Science

View Course Outcomes:

  1. Identify and describe the major components of computer architecture and explain how the architecture relates to the issues of data representation, resource management, and storage.
  2. Compare and contrast the development and implementation of several instruction set architectures and justify choices made in the development process.
  3. Design and implement programs in the C programming language to solve problems that involve use of various data types, programming constructs, and sections of embedded assembly language.\\n
  4. Design and implement assembly language programs to solve specific problems using various data types and programming constructs.

CS250 Discrete Structures I

Credits 4Fall

Registration Requirement: CS161 and MTH251 with a grade of "C" or better; or placement above stated course level.

This course is recommended for students transferring in Computer Science, Software Engineering and Computer Engineering. CS 250 is an introduction to the mathematical elements of computer science. Topics include: sets, graphs, trees, functions, recursive definitions, solving recurrences, relations, proof techniques, counting techniques and discrete probability.

This course fulfills: Non-Lab Science

View Course Outcomes:

  1. The student will apply the principles of graph theory and combinatorial analysis to provide a solution to the problem and discuss alternative solutions, given a problem related to a specific computer network model.
  2. The student will design and implement a program that uses counting techniques to compute worst-case and best-case comparisons for simple decision trees, given a simple, finite structure.
  3. The student will provide recursive and explicit solutions to solve the problem, given a discrete mathematical problem.

CS251 Discrete Structures II

Credits 4Winter

Registration Requirement: CS250 and MTH251 with a grade of "C" or better, or higher placement on the college placement test.

This course is recommended for students transferring in Computer Science, Software Engineering and Computer Engineering. Topics include: logic, propositions and predicate calculus, formal reasoning, deduction, resolution, formal proofs, inference and algebraic properties of Boolean expressions and abstract data types.

This course fulfills: Non-Lab Science

View Course Outcomes:

  1. Given a first-order well-formed formula (wff), students will transform the wff into clausal form.
  2. The student will develop a equivalence proof, given a statement using propositional or predicate calculus.
  3. The student will write a recursive definition on paper and in a programming language to solve the function, given a function representing an abstract data type.

CS260 Data Structures

Credits 4Fall/Spring

Registration Requirement: CS162 with a grade of "C" or higher, and MTH111 or MTH111Z with a "C" or higher.

This course is an introduction to data abstraction with formal specification. Topics covered include elementary algorithm analysis; basic concepts of data and its representation inside the computer; linear, linked and orthogonal lists; and tree structures. Data structures are implemented as abstractions and used to execute sorting and search strategies and data management.

This course fulfills: Non-Lab Science

View Course Outcomes:

  1. Design a solution and implement a program to solve a specific problem that requires the use of a container class, such as a linked list, stack, queue, or binary tree.
  2. Determine the organizational (time) complexity of an algorithm that can be solved using different data structures.
  3. Identify an appropriate data structure to use to manage a specific data set and function.

Online option regularly offered

Cultural Literacy course