Portland Community College | Portland, Oregon Portland Community College

CCOG for CS 133U Spring 2024

View archive version »
Course Number:
CS 133U
Course Title:
C Programming
Credit Hours:
4
Lecture Hours:
30
Lecture/Lab Hours:
0
Lab Hours:
30

Course Description

Introduces computer programming through development of C programs to solve practical problems. Recommended: 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 such as incremental development, data integrity checking, and adherence to style guidelines.
? 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 when writing software programs.

Outcome Assessment Strategies

Outcome Assessment Strategies

Programming Labs
Students will complete software project(s) comprised of designs, implementations, and test plans.

  • Designs will demonstrate the use of structured and modular design principles.
  • The implementations will demonstrate the use of a variety of basic components including alternation and repetition; modular programming; primitive and structured data types; interactive and file-based I/O.
  • Test plans will include test cases demonstrating both black and glass box testing strategies.
  • Project work will involve peer review.

Examinations
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

Recitation and Class Discussions
Students will actively participate in classes and demonstrate an understanding of class concepts, through:

  • Class discussions
  • In-class presentation

Course Content (Themes, Concepts, Issues and Skills)

Course Content (Themes, Concepts, Issues and Skills)

Course Content

  • Software Engineering Process
    • Problem-Solving
    • Software development cycle
    • Requirements
    • Structured program design (including use of pseudocode)
    • Program testing (discussion of black and white box)
  • Basic program control structures
    • Sequence
    • Alternation
    • Repetition
    • Modularization
  • Data organization
    • Built-in data types (int, char, float, double)
    • One dimensional arrays
    • Strings (as arrays of char)
    • Sequential file input/output
    • Optional (time and student interest permitting)
      • Structs
      • Unions
      • Pointers
  • Modular program design
    • Functions and parameters
    • Data and control coupling
    • Modular cohesion
    • Use of Pre- and post-conditions
  • Implementation
    • Coding style guidelines
    • Defensive programming
    • Efficiency
  • Errors
    • Syntax errors
    • Semantics errors
    • Logic errors
    • Debugging process
  • Overview of Machine Organization
    • Binary
    • ASCII codes
    • Built-in data types
      • Integers
      • Floating point numbers
      • Characters
      • Strings of characters
    • Machine language
    • Assembler language
    • Compiler languages
  • Reading and writing technical documentation (e.g. language reference)
  • Other Optional Topics (based on time and student interest)
    • Header files
    • Multi-file projects
    • GUI based integrated development environment