Skagit Valley College

Catalog Course Search Details

New Course: this course was added after the last catalog

 Course Title:   Foundations of Computer Science

 Title Abbreviation:   FOUNDATIONS OF CS

 Department:    CS

 Course #:    301

 Credits:    5

 Variable:     No

 IUs:    5

 CIP:    11.0701

 EPC:    CSACSBS

 REV:    2024


 Course Description  

Practice object-oriented programming and apply elementary data structures and algorithms to medium-scale applications. Exposure to the theory of computing and computing machines.

 Prerequisite  

Prerequisite: CS 123.

Additional Course Details

Contact Hours (based on 11 week quarter)

Lecture: 55

Lab: 0

Other: 0

Systems: 0

Clinical: 0


Intent: Distribution Requirement(s) Status:  

Academic N/A  

Equivalencies At Other Institutions

Other Institution Equivalencies Table
Institution Course # Remarks
N/A

Learning Outcomes

After completing this course, the student will be able to:

  1. Collaborate with team members in problem solving while employing effective version control principles.
  2. Apply ""divide and conquer"" approaches typically employed by professional software engineering teams to solve problems in a team setting.
  3. Develop an expertise with the command line (i.e. using a terminal).
  4. Use industry-standard approaches to manage the solution to a computer problem into a single unified final result. Examples include software packages, executables, and deployables.
  5. Explain low level memory management techniques using appropriate tools (such as C).
  6. Evaluate and justify algorithmic and code choices through the lens of optimizing memory management.
  7. List and describe the major topics and results in the theory of computing.
  8. Develop appropriate prompts for a generative AI, such as ChatGPT, to develop a program and evaluate generated output for effectiveness.

General Education Learning Values & Outcomes

Revised August 2008 and affects outlines for 2008 year 1 and later.

Course Contents

  1. Terminal:
    • Employ the terminal to run commands from the command line.
    • List, describe, and utilize command line tools commonly used in software development.
    • Develop and utilize shell scripts.
    • Understand the file tree structure and be able to navigate to and manipulate files using the terminal.
  2. Version control:
    • Explain the principles of version control.
    • Apply version control in the context of a group project.
  3. Computing Theory:
    • List and describe the different types of grammars / languages / automotons and explain the differences between them.
    • Describe the types of problems that each level of grammars / languages / automotons can or cannot solve.
    • List and describe some of the major results of computability theory, and explain their significance, e.g., the halting problem.
    • List and describe some of the major results of complexity theory, and explain their significance, e.g., the open question of P = NP.