| 
  • If you are citizen of an European Union member nation, you may not use this service unless you are at least 16 years old.

  • You already know Dokkio is an AI-powered assistant to organize & manage your digital files & messages. Very soon, Dokkio will support Outlook as well as One Drive. Check it out today!

View
 

Computer Science Curriculum

Page history last edited by Chris and Brenda Winikka 14 years, 1 month ago

NOTE: This page is a draft and is therefore up for correction and modification.

 

It is a work in progress begun at the PAVTEC Technical Skill Assessments Summit on November, 3, 2009.

Jason Galbraith, Stephen Nelson, and Chris Winikka attended the summit and represented both the Information Technology and Computer Technology Programs of Study. We spoke with Tom Thompson from the Oregon Department of Education and received clarification on what standards could be the basis for both Computer Science Curriculum and for developing a Technical Skill Assessment.

 

The Current State of CS Standards in Oregon

The closest thing to a Computer Science endorsement in the state of Oregon is a CTE (Career Technical Education) endorsement in Computer Technology or Information Technology. For this reason, our push for standards proposals are being driven and directed by the work for CTE.

 

Our Goals

The aim of this page is two-fold:

 

 

Proposed Standards for Computer Science

ACM (Association for Computing Machinery)'s "Computing Curriculum 2001" http://www.sigcse.org/resources/cs-2001/chapter6

Below are the standards as published in the Association for Computing Machinery (ACM)'s Special Interest Group for Computer Science Education. I propose we select a subset of these standards (which are aimed at Introductory Computer Science at the college level). Each of the sets of standards below are linked to a page. They are all working drafts; we would appreciate your feedback.

PF1. Fundamental programming constructs [core]

Minimum core coverage time: 9 hours

 

PF2. Algorithms and problem-solving [core]

Minimum core coverage time: 6 hours

 

PF3. Fundamental data structures [core]

Minimum core coverage time: 14 hours 


Proposed Subset of Standards for CTE

Update on the CS CTE Requirements

Jason, Stephen, and I met tonight at the PAVTEC meeting (Feb. 23), and we came to the conclusion that for the CTE skills assessment, we would like to propose a portfolio type assessment (as opposed to a written test). There are a variety of reasons why this would be advantageous to us: one, Jason already uses a similar assessment for the IB Computer Science course; two, it would closely mirror what we already do with our senior projects; three, upon review the state standards, we could easily find a good set of skills that would apply to both Web Design and Programming courses; four, development of a portfolio assessment would have less up-front/development time than trying to prove a written test to be valid and reliable.

 

A  Word from the State of Oregon

Note: this is a work in progress We spoke with Tom Thompson from the Oregon Department of Education.

  • Why were the CSTA standards (ACM K12 Model Curriculum) not accepted (currently) at ODE? - Tom stated that it looked, from a "cursory glance", it was a product of educational institutions and the connection to industry was not clear
    • Note: This is not permanent status - if we can make the case and show a direct tie in from industry that's fine
    • Note also: we have found a set of standards directly located on the ACM SIGSCE (a more direct link to industry (The ACM logo is right at the top of the document)).
  • What are the requirements for state-approved curriculum standards?
  • Purposes for Oregon Technical Skill Assessments (from "Oregon Technical Skill Assessment Part 1: A Conceptual Framework")
    • Document attainment of industry-based technical knowledge and skills
    • Document evidence of career development and preparation
    • Document readiness for secondary-to-postsecondary CTE Program of Study transition; and
    • Evaluate CTE programs for continuous improvement

 

Proposed CTE Curriculum Source:

Based on our discussions on Feb. 23rd, we have decided to choose the following standards from the Oregon Skill Sets: We chose these sets of standards to facilitate the assessment of Computer Technology completers (students who take the highest CTE-level class). ODE states that not all standards can be assessed at this level.Note: I've copied only a subset of the software engineering skill sets, and then I made ones I think we may wish to consider bold and blue:

CSPB01.01 - Identify and analyze customer software needs and requirements. 

   Performance Indicators I've only selected some of the performance indicators, and I recommend we further refine which indicators we want to focus on.

    CSPB01.01.01.00 - Gather data to identify customer requirements

    CSPB01.01.01.02 - Identify input and output requirements. 

    CSPB01.01.01.05 - Identify hardware, networking, and software system functional requirements. .

    CSPB01.01.03.02 - Define system and software requirements. 

    CSPB01.01.03.05 - Resolve conflicting requirements.

    CSPB01.01.03.06 - Review and verify specification with customer

    CSPB01.01.04.02 - Identify constraints. 

    CSPB01.01.05.00 - Use available reference tools as appropriate. 

CSPB01.04 - Demonstrate the effective use of tools for software development.

   
Performance Indicators
      CSPB01.04.01.00 - Apply tools for developing software applications.
      CSPB01.04.01.01 - Demonstrate knowledge of software development environment.
      CSPB01.04.01.02 - Use prototyping techniques.
      CSPB01.04.01.05 - Demonstrate knowledge of reuse and components.
      CSPB01.04.02.00 - Apply language specific programming tools/techniques.
      CSPB01.04.02.01 - Develop programs using appropriate language.
      CSPB01.04.02.02 - Use appropriate development environment for the selected language (e.g., compilers, debuggers, test generation, static analyzer).
      CSPB01.04.02.03 - Use user interface development tools.
      CSPB01.04.03.04 - Demonstrate knowledge of software reuse, design pattern, and components.

CSPB01.06 - Design a software application.

    Collapse Performance Indicators Performance Indicators
      CSPB01.06.01.00 - Create design specification for a computer application.
      CSPB01.06.01.01 - Demonstrate knowledge of the principles of program design (e.g., structured, object oriented, event-driven) to analyze real-world problems.
   
CSPB01.06.01.02 - Perform a logical design.
      CSPB01.06.01.03 - Document design specification according to defined procedures.
      CSPB01.06.01.04 - Design system input, output, processing, and interfaces.
      CSPB01.06.01.05 - Review system design with management and users.
      CSPB01.06.02.00 - Demonstrate comprehension of the trade-off involved in design choices.
      CSPB01.06.02.02 - Identify basic concepts of algorithm and data structure development.
      CSPB01.06.02.03 - Demonstrate knowledge of different data types (e.g., numeric, alphanumeric, tables).
 
  CSPB01.06.02.04 - Identify constraints.
      CSPB01.06.02.06 - Demonstrate knowledge of modular design concepts.
      CSPB01.06.02.07 - Demonstrate knowledge of the features, functions, and architectures of client/server computing.
      CSPB01.06.03.00 - Apply the principles of effective information management, information organization, and information-retrieval skills.
      CSPB01.06.03.01 - Demonstrate knowledge of database management concepts.
      CSPB01.06.03.02 - Define the objectives of a client/server application.
      CSPB01.06.03.05 - Employ interface techniques.
      CSPB01.06.04.00 - Demonstrate knowledge of computing/networking hardware and software architecture.
      CSPB01.06.04.01 - Demonstrate knowledge of how data is stored, organized, managed and retrieve in various computer and network architecture.
      CSPB01.06.04.02 - Demonstrate knowledge of software architectures for different classes of applications.

CSPB01.07 - Produce (code) a computer application.

    Collapse Performance Indicators Performance Indicators
      CSPB01.07.01.00 - Demonstrate knowledge of programming language concepts.
      CSPB01.07.01.01 - Demonstrate knowledge of he hardware-software connection.
      CSPB01.07.01.02 - Demonstrate knowledge of the concepts of data and procedural representation.
      CSPB01.07.01.03 - Demonstrate knowledge of the basic principles for analyzing a programming languages.
      CSPB01.07.01.04 - Demonstrate knowledge of the basics of structured, object-oriented, and event-driven programming.
      CSPB01.07.01.05 - Demonstrate knowledge of how a programming language can support multitasking and exception-handling.
      CSPB01.07.02.00 - Demonstrate proficiency in developing an application using an appropriate programming language.
      CSPB01.07.02.01 - Demonstrate knowledge of current key programming languages and the environment they are used in (e.g., C, C++, Visual Basic, Java, RPG, COBOL, Assembler).
      CSPB01.07.02.02 - Translate data structure and program design into code in an appropriate language.
      CSPB01.07.02.03 - Demonstrate knowledge of key constructs and commands specific to a language.
      CSPB01.07.03.00 - Understand the range of languages used in software development.
      CSPB01.07.03.01 - Demonstrate knowledge of the range of languages used in software development.
      CSPB01.07.04.00 - Demonstrate knowledge of program development methodology.
      CSPB01.07.04.01 - Demonstrate knowledge of how to resolve program implementation issues (e.g., debugging, documentation, auditing).
      CSPB01.07.04.02 - Demonstrate knowledge of software development issues (e.g., correctness, reliability, and productivity).
      CSPB01.07.04.03 - Demonstrate knowledge of code analysis issues related to design, testing, implementation, and maintenance.
      CSPB01.07.04.04 - Demonstrate knowledge of how to design and implement programs in a top-down manner.
      CSPB01.07.04.05 - Demonstrate knowledge of how to translate algorithmic and modular design to develop a program.
      CSPB01.07.04.06 - Demonstrate knowledge of structured/modular programming.
      CSPB01.07.04.07 - Demonstrate knowledge of how programming control structures are used to verify correctness.
      CSPB01.07.04.08 - Use code development tools (debugger, integrated development environments).
      CSPB01.07.05.00 - Demonstrate knowledge of basic software systems implementation.
      CSPB01.07.05.01 - Use appropriate programming language.
      CSPB01.07.05.02 - Analyze and prepare logic using program flowchart.
      CSPB01.07.05.03 - Review design (e.g., peer and/or user walkthrough).
      CSPB01.07.05.04 - Compile and debug code.
      CSPB01.07.05.05 - Prepare code documentation.
      CSPB01.07.05.06 - Prepare unit testing plan.
      CSPB01.07.05.07 - Conduct unit testing and bug fixes.
      CSPB01.07.06.00 - Develop software requirements/specifications.
      CSPB01.07.06.01 - Access needed information using company and manufacturers' references (e.g., procedural manuals, documentation, standards, word flowcharts).
      CSPB01.07.06.02 - Divide design specifications into logical process blocks.
      CSPB01.07.06.03 - Identify parameters.
      CSPB01.07.06.04 - Follow specifications or drawings.
      CSPB01.07.06.05 - Record process (e.g., using flowchart, step-by-step narrative).
      CSPB01.07.06.06 - Record data.
      CSPB01.07.07.01 - Troubleshoot unexpected results.
      CSPB01.07.07.02 - Fix code.

 

 

 

Comments (0)

You don't have permission to comment on this page.