Portland Community College | Portland, Oregon Portland Community College

CCOG for CS 161 Spring 2024

View archive version »
Course Number:
CS 161
Course Title:
Computer Science I
Credit Hours:
4
Lecture Hours:
30
Lecture/Lab Hours:
0
Lab Hours:
30

Course Description

Introduces the concepts of computer science. Explores problem solving, algorithm and program design, data types, loops, control structures, subprograms, and arrays. Introduces writing programs in a high level programming language. Surveys current social and ethical aspects of computer science. Recommended: MTH 111, WR 121, and CS 160. Audit available.

Addendum to Course Description

Students will complete several lab/programming exercises techniques. This course is transferable to a four year institution and is applicable toward an Associate of Science or Associate of Applied Science Degree.

Intended Outcomes for the course

On completion of this course students should be able to:
§ Follow the software development process (requirements analysis, design, implementation, and test) in the development
of small programs.
§ Use an understanding of cultural differences in user populations and global software design requirements in order to design effective software.
§ Employ good software engineering practices and good software design, always applying Software Engineering Code of Ethics as determined by Association for Computing Machinery (ACM).
§ Construct appropriate user interfaces for simple programs, and design systems with minimal complexity and maximal functionality.
§ Analyze and construct efficient and effective algorithms and translate to appropriate control structures in an implementation language.
§ Effectively use software development tools including libraries, compilers, editors, linkers and debuggers.

Outcome Assessment Strategies

Students will complete software projects including implementations and test plans.

  • The implementations will demonstrate the use of a variety of basic control structures including selection and repetition; primitive and pointer data types; file-based I/O; arrays and structures.
  • Test plans will include test cases demonstrating both black and glass box testing strategies.

Students will demonstrate competency on exam(s) which are constructed to demonstrate:

  • Written technical communication and effective use of terminology
  • Facility with programming language syntax and semantics
  • Ability to read and understand specifications, designs and programs
  • Application of course concepts
  • Individual capability in design, implementation and testing of small program components

Course Content (Themes, Concepts, Issues and Skills)

Course Content

  • C++ Language Topics
    • basic concepts
      • sequence, selection, repetition control structures
      • switch statement
      • break/continue statements
      • increment/decrement operators
      • logical operators
      • arithmetic operators
      • comparison operators
      • conditional (ternary) operator
      • operator precedence
      • data types (bool, char, int, float, double)
      • single-file programs
    • functions
      • function prototypes, header files
      • math library functions, random numbers
      • reference parameters
      • function overloading
    • arrays
      • declaring arrays
      • arrays as parameters
      • sort algorithm such as bubble, selection, or insertion sort
      • linear and binary search
    •  
    • STL strings
    • structures
      • defining structures
        • accessing structure members
      • input/output
        • console I/O
        • sequential file I/O
  • Additional Topics
    • basic unix, gcc
    • compilers, linkers, loaders
    • structured programming
    • top-down design, successive refinement
    • code style guidelines and documentation
    • pseudocode
    • debugging tools