Difference: ComputerScienceAGPS (1 vs. 3)

Revision 32013-10-21 - RobertKasper

Line: 1 to 1
 
META TOPICPARENT name="SoftwareEngineeringAcceleratedProposedCurriculum"
Added:
>
>

Course Description

CSC1003 Fundamentals of Computer Programming in Java [3]. An introduction to computer programming using the Java language. Topics include: problem-solving strategies; data types, variables and expressions; input and output methods; elementary algorithms and control structures using branching and iteration.

Note: This course fills the place of CS A in our original course list.


To do: Subdivide these topics into three indiviual courses.

 

Computer Science A, B, C

Deleted:
<
<
To do: Subdivide these topics into the indiviual courses.
 

Topic: Fundamental Constructs

  • Basic syntax and semantics of a higher-level language
  • Variables, types, expressions, and assignment

Revision 22013-10-07 - JimSkon

Line: 1 to 1
 
META TOPICPARENT name="SoftwareEngineeringAcceleratedProposedCurriculum"
Changed:
<
<

Computer Science A

>
>

Computer Science A, B, C

 
Changed:
<
<
PF/FundamentalConstructs [core] Minimum core coverage time: 9 hours Topics:
>
>
To do: Subdivide these topics into the indiviual courses.

Topic: Fundamental Constructs

 
  • Basic syntax and semantics of a higher-level language
  • Variables, types, expressions, and assignment
  • Simple I/O
  • Conditional and iterative control structures
  • Functions and parameter passing
Changed:
<
<
  • Structured decomposition Learning Objectives: 1. Analyze and explain the behavior of simple programs involving the fundamental programming constructs covered by this unit. 2. Modify and expand short programs that use standard conditional and iterative control structures and functions. 3. Design, implement, test, and debug a program that uses each of the following fundamental programming constructs: basic computation, simple I/O, standard conditional and iterative structures, and the definition of functions.
  1. Choose appropriate conditional and iteration constructs for a given programming task.
  2. Apply the techniques of structured (functional) decomposition to break a program into smaller pieces.
  3. Describe the mechanics of parameter passing. PF/AlgorithmicProblemSolving [core] Minimum core coverage time: 6 hours Topics:
>
>
  • Structured decomposition
Learning Objectives:

  1. Analyze and explain the behavior of simple programs involving the fundamental programming constructs covered by this unit.
  2. Modify and expand short programs that use standard conditional and iterative control structures and functions.
  3. Design, implement, test, and debug a program that uses each of the following fundamental programming constructs: basic computation, simple I/O, standard conditional and iterative structures, and the definition of functions.
  4. Choose appropriate conditional and iteration constructs for a given programming task.
  5. Apply the techniques of structured (functional) decomposition to break a program into smaller pieces
  6. Describe the mechanics of parameter passing.

Topic: Algorithmic Problem Solving

 
  • Problem-solving strategies
  • The role of algorithms in the problem-solving process
  • Implementation strategies for algorithms
  • Debugging strategies
Changed:
<
<
  • The concept and properties of algorithms Learning Objectives:
>
>
  • The concept and properties of algorithms
Learning Objectives:
 
  1. Discuss the importance of algorithms in the problem-solving process.
  2. Identify the necessary properties of good algorithms.
  3. Create algorithms for solving simple problems. 10. Use pseudocode or a programming language to implement, test, and debug algorithms for solving simple problems. 1
Changed:
<
<
  1. Describe strategies that are useful in debugging. PF/DataStructures [core] Minimum core coverage time: 10 hours Topics:
  • Representation of numeric data
  • Range, precision, and rounding errors
  • Arrays
  • Representation of character data
  • Strings and string processing
  • Runtime storage management
  • Pointers and references
  • Linked structures
  • Implementation strategies for stacks, queues, and hash tables
  • Implementation strategies for graphs and trees
  • Strategies for choosing the right data structure Learning Objectives:
  1. Describe the representation of numeric and character data.
  2. Understand how precision and round-off can affect numeric calculations.
  3. Discuss the use of primitive data types and built-in data structures.
  4. Describe common applications for each data structure in the topic list.
  5. Implement the user-defined data structures in a high-level language.
  6. Compare alternative implementations of data structures with respect to performance.
  7. Write programs that use each of the following data structures: arrays, strings, linked lists, stacks, queues, and hash tables.
  8. Compare and contrast the costs and benefits of dynamic and static data structure implementations.
  9. Choose the appropriate data structure for modeling a given problem. PF/Recursion [core] Minimum core coverage time: 4 hours Topics:
>
>
  1. Describe strategies that are useful in debugging.

Topic: Recursion

 
  • The concept of recursion
  • Recursive mathematical functions
  • Simple recursive functions
Changed:
<
<
  • Divide-and-conquer strategies
  • Recursive backtracking Learning Objectives:
>
>
Learning Objectives:
 
  1. Describe the concept of recursion and give examples of its use.
  2. Identify the base case and the general case of a recursively defined problem.
  3. Compare iterative and recursive solutions for elementary problems such as factorial.
Changed:
<
<
  1. Describe the divide-and-conquer approach.
  2. Implement, test, and debug simple recursive functions and procedures.
  3. Determine when a recursive solution is appropriate for a problem. PF/EventDrivenProgramming[core] Minimum core coverage time: 4 hours Topics:
>
>
Topic Event Driven Programming
 
  • Event-handling methods
  • Event propagation
Changed:
<
<
  • Exception handling Learning Objectives:
>
>
  • Exception handling
Learning Objectives:
 
  1. Explain the difference between event-driven programming and command-line programming.
  2. Design, code, test, and debug simple event-driven programs that respond to user events.
Changed:
<
<
  1. Develop code that responds to exception conditions raised during execution. PF/ObjectOriented [core] Minimum core coverage time: 8 hours Topics:
>
>
  1. Develop code that responds to exception conditions raised during execution.

Topic: Object Oriented

 
  • Object-oriented design
  • Encapsulation and information-hiding
  • Separation of behavior and implementation
  • Classes and subclasses
  • Inheritance (overriding, dynamic dispatch)
Changed:
<
<
  • Polymorphism (subtype polymorphism vs. inheritance) Learning Objectives:
>
>
  • Polymorphism (subtype polymorphism vs. inheritance)
Learning Objectives:
 
  1. Justify the philosophy of object-oriented design and the concepts of encapsulation, abstraction, inheritance, and polymorphism.
  2. Design, implement, test, and debug simple programs in an object-oriented programming language.
  3. Describe how the class mechanism supports encapsulation and information hiding.
  4. Design, implement, and test the implementation of “is-a” relationships among objects using a class hierarchy and inheritance.
Changed:
<
<
  1. Compare and contrast the notions of overloading and overriding methods in an object-oriented language. PF/FoundationsInformationSecurity [core] Minimum core coverage time: 4 hours Topics:
  • Role and purpose of computer and network security
  • Security goals: confidentiality, integrity, availability triad
  • Security standards and policies
  • Security mindset
  • Defense in depth
  • Common threats: worms, viruses, trojans, denial of service
  • Risk assessment and cost-benefit analyses
  • Security versus usability, time, and/or money tradeoffs Learning Objectives:
  1. Explain the objectives of information security
  2. Analyze the tradeoffs inherent in security
  3. Explain the importance and application of each of confidentiality, integrity, and availability
  4. Understand the basic categories of threats to computers and networks
  5. Discuss issues for creating security policy for a large organization
  6. Defend the need for protection and security, and the role of ethical considerations in computer use
  7. Add a very simple risk-assessment learning outcome here PF/SecureProgramming [core] Minimum core coverage time: 2 hour Topics
  • Important of checking for and avoiding array and string overflows
  • Programming language constructs to avoid and alternatives
  • How attackers use overflows to smash the run-time stack PF/FundamentalConstructs [core] Minimum core coverage time: 9 hours Topics:
  • Basic syntax and semantics of a higher-level language
  • Variables, types, expressions, and assignment
  • Simple I/O
  • Conditional and iterative control structures
  • Functions and parameter passing
  • Structured decomposition Learning Objectives:
  1. Analyze and explain the behavior of simple programs involving the fundamental programming constructs covered by this unit.
  2. Modify and expand short programs that use standard conditional and iterative control structures and functions.
  3. Design, implement, test, and debug a program that uses each of the following fundamental programming constructs: basic computation, simple I/O, standard conditional and iterative structures, and the definition of functions.
  4. Choose appropriate conditional and iteration constructs for a given programming task.
  5. Apply the techniques of structured (functional) decomposition to break a program into smaller pieces.
  6. Describe the mechanics of parameter passing. PF/AlgorithmicProblemSolving [core] Minimum core coverage time: 6 hours Topics:
>
>
  1. Compare and contrast the notions of overloading and overriding methods in an object-oriented language.

Topic: Algorithmic Problem Solving

 
  • Problem-solving strategies
  • The role of algorithms in the problem-solving process
  • Implementation strategies for algorithms
  • Debugging strategies
Changed:
<
<
  • The concept and properties of algorithms Learning Objectives:
  1. Discuss the importance of algorithms in the problem-solving process.
  2. Identify the necessary properties of good algorithms.
  3. Create algorithms for solving simple problems. 10. Use pseudocode or a programming language to implement, test, and debug algorithms for solving simple problems. 1
  4. Describe strategies that are useful in debugging. PF/DataStructures [core] Minimum core coverage time: 10 hours Topics:
  • Representation of numeric data
  • Range, precision, and rounding errors
  • Arrays
  • Representation of character data
  • Strings and string processing
  • Runtime storage management
  • Pointers and references
  • Linked structures
  • Implementation strategies for stacks, queues, and hash tables
  • Implementation strategies for graphs and trees
  • Strategies for choosing the right data structure Learning Objectives:
  1. Describe the representation of numeric and character data.
  2. Understand how precision and round-off can affect numeric calculations.
  3. Discuss the use of primitive data types and built-in data structures.
  4. Describe common applications for each data structure in the topic list.
  5. Implement the user-defined data structures in a high-level language.
  6. Compare alternative implementations of data structures with respect to performance.
  7. Write programs that use each of the following data structures: arrays, strings, linked lists, stacks, queues, and hash tables.
  8. Compare and contrast the costs and benefits of dynamic and static data structure implementations.
  9. Choose the appropriate data structure for modeling a given problem.
PF/FundamentalConstructs [core] Minimum core coverage time: 9 hours Topics: • Basic syntax and semantics of a higher-level language • Variables, types, expressions, and assignment • Simple I/O • Conditional and iterative control structures • Functions and parameter passing • Structured decomposition Learning Objectives:

  1. Analyze and explain the behavior of simple programs involving the fundamental programming constructs
covered by this unit.

  1. Modify and expand short programs that use standard conditional and iterative control structures and functions.

  1. Design, implement, test, and debug a program that uses each of the following fundamental programming
constructs: basic computation, simple I/O, standard conditional and iterative structures, and the definition of functions.

  1. Choose appropriate conditional and iteration constructs for a given programming task.

  1. Apply the techniques of structured (functional) decomposition to break a program into smaller pieces.

  1. Describe the mechanics of parameter passing.
PF/AlgorithmicProblemSolving [core] Minimum core coverage time: 6 hours Topics: • Problem-solving strategies • The role of algorithms in the problem-solving process • Implementation strategies for algorithms • Debugging strategies • The concept and properties of algorithms Learning Objectives:

  1. Discuss the importance of algorithms in the problem-solving process.

  1. Identify the necessary properties of good algorithms.

  1. Create algorithms for solving simple problems.
10. Use pseudocode or a programming language to implement, test, and debug algorithms for solving simple problems. 1
  1. Describe strategies that are useful in debugging.
PF/DataStructures [core] Minimum core coverage time: 10 hours Topics: • Representation of numeric data • Range, precision, and rounding errors • Arrays • Representation of character data • Strings and string processing • Runtime storage management • Pointers and references • Linked structures • Implementation strategies for stacks, queues, and hash tables • Implementation strategies for graphs and trees • Strategies for choosing the right data structure Learning Objectives:

  1. Describe the representation of numeric and character data.

  1. Understand how precision and round-off can affect numeric calculations.

  1. Discuss the use of primitive data types and built-in data structures.

  1. Describe common applications for each data structure in the topic list.

  1. Implement the user-defined data structures in a high-level language.

  1. Compare alternative implementations of data structures with respect to performance.

  1. Write programs that use each of the following data structures: arrays, strings, linked lists, stacks, queues, and
hash tables.

  1. Compare and contrast the costs and benefits of dynamic and static data structure implementations.

  1. Choose the appropriate data structure for modeling a given problem.
PF/Recursion [core] Minimum core coverage time: 4 hours Topics: • The concept of recursion • Recursive mathematical functions • Simple recursive functions • Divide-and-conquer strategies • Recursive backtracking Learning Objectives:

  1. Describe the concept of recursion and give examples of its use.

  1. Identify the base case and the general case of a recursively defined problem.

  1. Compare iterative and recursive solutions for elementary problems such as factorial.

  1. Describe the divide-and-conquer approach.

  1. Implement, test, and debug simple recursive functions and procedures.

  1. Determine when a recursive solution is appropriate for a problem.
PF/EventDrivenProgramming[core] Minimum core coverage time: 4 hours Topics: • Event-handling methods • Event propagation • Exception handling Learning Objectives:

  1. Explain the difference between event-driven programming and command-line programming.

  1. Design, code, test, and debug simple event-driven programs that respond to user events.

  1. Develop code that responds to exception conditions raised during execution.
PF/ObjectOriented [core] Minimum core coverage time: 8 hours Topics: • Object-oriented design • Encapsulation and information-hiding • Separation of behavior and implementation • Classes and subclasses • Inheritance (overriding, dynamic dispatch) • Polymorphism (subtype polymorphism vs. inheritance) Learning Objectives:

  1. Justify the philosophy of object-oriented design and the concepts of encapsulation, abstraction, inheritance, and
polymorphism.

  1. Design, implement, test, and debug simple programs in an object-oriented programming language.

  1. Describe how the class mechanism supports encapsulation and information hiding.

  1. Design, implement, and test the implementation of “is-a” relationships among objects using a class hierarchy
and inheritance.

  1. Compare and contrast the notions of overloading and overriding methods in an object-oriented language.
PF/FoundationsInformationSecurity [core] Minimum core coverage time: 4 hours Topics: • Role and purpose of computer and network security • Security goals: confidentiality, integrity, availability triad • Security standards and policies • Security mindset • Defense in depth • Common threats: worms, viruses, trojans, denial of service • Risk assessment and cost-benefit analyses • Security versus usability, time, and/or money tradeoffs Learning Objectives:

  1. Explain the objectives of information security

  1. Analyze the tradeoffs inherent in security

  1. Explain the importance and application of each of confidentiality, integrity, and availability

  1. Understand the basic categories of threats to computers and networks

  1. Discuss issues for creating security policy for a large organization

  1. Defend the need for protection and security, and the role of ethical considerations in computer use

  1. Add a very simple risk-assessment learning outcome here
PF/SecureProgramming [core] Minimum core coverage time: 2 hour Topics • Important of checking for and avoiding array and string overflows • Programming language constructs to avoid and alternatives • How attackers use overflows to smash the run-time stack PF/FundamentalConstructs [core] Minimum core coverage time: 9 hours Topics: • Basic syntax and semantics of a higher-level language • Variables, types, expressions, and assignment • Simple I/O • Conditional and iterative control structures • Functions and parameter passing • Structured decomposition Learning Objectives:

  1. Analyze and explain the behavior of simple programs involving the fundamental programming constructs
covered by this unit.

  1. Modify and expand short programs that use standard conditional and iterative control structures and functions.

  1. Design, implement, test, and debug a program that uses each of the following fundamental programming
constructs: basic computation, simple I/O, standard conditional and iterative structures, and the definition of functions.

  1. Choose appropriate conditional and iteration constructs for a given programming task.

  1. Apply the techniques of structured (functional) decomposition to break a program into smaller pieces.

  1. Describe the mechanics of parameter passing.
PF/AlgorithmicProblemSolving [core] Minimum core coverage time: 6 hours Topics: • Problem-solving strategies • The role of algorithms in the problem-solving process • Implementation strategies for algorithms • Debugging strategies • The concept and properties of algorithms Learning Objectives:
>
>
  • The concept and properties of algorithms
Learning Objectives:
 
  1. Discuss the importance of algorithms in the problem-solving process.
Deleted:
<
<
 
  1. Identify the necessary properties of good algorithms.
Deleted:
<
<
 
  1. Create algorithms for solving simple problems.
Changed:
<
<
10. Use pseudocode or a programming language to implement, test, and debug algorithms for solving simple problems. 1
>
>
  1. Use pseudocode or a programming language to implement, test, and debug algorithms for solving simple problems.
 
  1. Describe strategies that are useful in debugging.
Deleted:
<
<
PF/DataStructures [core] Minimum core coverage time: 10 hours Topics: • Representation of numeric data • Range, precision, and rounding errors • Arrays • Representation of character data • Strings and string processing • Runtime storage management • Pointers and references • Linked structures • Implementation strategies for stacks, queues, and hash tables • Implementation strategies for graphs and trees • Strategies for choosing the right data structure Learning Objectives:

  1. Describe the representation of numeric and character data.

  1. Understand how precision and round-off can affect numeric calculations.

  1. Discuss the use of primitive data types and built-in data structures.

  1. Describe common applications for each data structure in the topic list.

  1. Implement the user-defined data structures in a high-level language.

  1. Compare alternative implementations of data structures with respect to performance.

  1. Write programs that use each of the following data structures: arrays, strings, linked lists, stacks, queues, and
hash tables.

  1. Compare and contrast the costs and benefits of dynamic and static data structure implementations.

  1. Choose the appropriate data structure for modeling a given problem.

Revision 12013-10-07 - JimSkon

Line: 1 to 1
Added:
>
>
META TOPICPARENT name="SoftwareEngineeringAcceleratedProposedCurriculum"

Computer Science A

PF/FundamentalConstructs [core] Minimum core coverage time: 9 hours Topics:

  • Basic syntax and semantics of a higher-level language
  • Variables, types, expressions, and assignment
  • Simple I/O
  • Conditional and iterative control structures
  • Functions and parameter passing
  • Structured decomposition Learning Objectives: 1. Analyze and explain the behavior of simple programs involving the fundamental programming constructs covered by this unit. 2. Modify and expand short programs that use standard conditional and iterative control structures and functions. 3. Design, implement, test, and debug a program that uses each of the following fundamental programming constructs: basic computation, simple I/O, standard conditional and iterative structures, and the definition of functions.
  1. Choose appropriate conditional and iteration constructs for a given programming task.
  2. Apply the techniques of structured (functional) decomposition to break a program into smaller pieces.
  3. Describe the mechanics of parameter passing. PF/AlgorithmicProblemSolving [core] Minimum core coverage time: 6 hours Topics:
  • Problem-solving strategies
  • The role of algorithms in the problem-solving process
  • Implementation strategies for algorithms
  • Debugging strategies
  • The concept and properties of algorithms Learning Objectives:
  1. Discuss the importance of algorithms in the problem-solving process.
  2. Identify the necessary properties of good algorithms.
  3. Create algorithms for solving simple problems. 10. Use pseudocode or a programming language to implement, test, and debug algorithms for solving simple problems. 1
  4. Describe strategies that are useful in debugging. PF/DataStructures [core] Minimum core coverage time: 10 hours Topics:
  • Representation of numeric data
  • Range, precision, and rounding errors
  • Arrays
  • Representation of character data
  • Strings and string processing
  • Runtime storage management
  • Pointers and references
  • Linked structures
  • Implementation strategies for stacks, queues, and hash tables
  • Implementation strategies for graphs and trees
  • Strategies for choosing the right data structure Learning Objectives:
  1. Describe the representation of numeric and character data.
  2. Understand how precision and round-off can affect numeric calculations.
  3. Discuss the use of primitive data types and built-in data structures.
  4. Describe common applications for each data structure in the topic list.
  5. Implement the user-defined data structures in a high-level language.
  6. Compare alternative implementations of data structures with respect to performance.
  7. Write programs that use each of the following data structures: arrays, strings, linked lists, stacks, queues, and hash tables.
  8. Compare and contrast the costs and benefits of dynamic and static data structure implementations.
  9. Choose the appropriate data structure for modeling a given problem. PF/Recursion [core] Minimum core coverage time: 4 hours Topics:
  • The concept of recursion
  • Recursive mathematical functions
  • Simple recursive functions
  • Divide-and-conquer strategies
  • Recursive backtracking Learning Objectives:
  1. Describe the concept of recursion and give examples of its use.
  2. Identify the base case and the general case of a recursively defined problem.
  3. Compare iterative and recursive solutions for elementary problems such as factorial.
  4. Describe the divide-and-conquer approach.
  5. Implement, test, and debug simple recursive functions and procedures.
  6. Determine when a recursive solution is appropriate for a problem. PF/EventDrivenProgramming[core] Minimum core coverage time: 4 hours Topics:
  • Event-handling methods
  • Event propagation
  • Exception handling Learning Objectives:
  1. Explain the difference between event-driven programming and command-line programming.
  2. Design, code, test, and debug simple event-driven programs that respond to user events.
  3. Develop code that responds to exception conditions raised during execution. PF/ObjectOriented [core] Minimum core coverage time: 8 hours Topics:
  • Object-oriented design
  • Encapsulation and information-hiding
  • Separation of behavior and implementation
  • Classes and subclasses
  • Inheritance (overriding, dynamic dispatch)
  • Polymorphism (subtype polymorphism vs. inheritance) Learning Objectives:
  1. Justify the philosophy of object-oriented design and the concepts of encapsulation, abstraction, inheritance, and polymorphism.
  2. Design, implement, test, and debug simple programs in an object-oriented programming language.
  3. Describe how the class mechanism supports encapsulation and information hiding.
  4. Design, implement, and test the implementation of “is-a” relationships among objects using a class hierarchy and inheritance.
  5. Compare and contrast the notions of overloading and overriding methods in an object-oriented language. PF/FoundationsInformationSecurity [core] Minimum core coverage time: 4 hours Topics:
  • Role and purpose of computer and network security
  • Security goals: confidentiality, integrity, availability triad
  • Security standards and policies
  • Security mindset
  • Defense in depth
  • Common threats: worms, viruses, trojans, denial of service
  • Risk assessment and cost-benefit analyses
  • Security versus usability, time, and/or money tradeoffs Learning Objectives:
  1. Explain the objectives of information security
  2. Analyze the tradeoffs inherent in security
  3. Explain the importance and application of each of confidentiality, integrity, and availability
  4. Understand the basic categories of threats to computers and networks
  5. Discuss issues for creating security policy for a large organization
  6. Defend the need for protection and security, and the role of ethical considerations in computer use
  7. Add a very simple risk-assessment learning outcome here PF/SecureProgramming [core] Minimum core coverage time: 2 hour Topics
  • Important of checking for and avoiding array and string overflows
  • Programming language constructs to avoid and alternatives
  • How attackers use overflows to smash the run-time stack PF/FundamentalConstructs [core] Minimum core coverage time: 9 hours Topics:
  • Basic syntax and semantics of a higher-level language
  • Variables, types, expressions, and assignment
  • Simple I/O
  • Conditional and iterative control structures
  • Functions and parameter passing
  • Structured decomposition Learning Objectives:
  1. Analyze and explain the behavior of simple programs involving the fundamental programming constructs covered by this unit.
  2. Modify and expand short programs that use standard conditional and iterative control structures and functions.
  3. Design, implement, test, and debug a program that uses each of the following fundamental programming constructs: basic computation, simple I/O, standard conditional and iterative structures, and the definition of functions.
  4. Choose appropriate conditional and iteration constructs for a given programming task.
  5. Apply the techniques of structured (functional) decomposition to break a program into smaller pieces.
  6. Describe the mechanics of parameter passing. PF/AlgorithmicProblemSolving [core] Minimum core coverage time: 6 hours Topics:
  • Problem-solving strategies
  • The role of algorithms in the problem-solving process
  • Implementation strategies for algorithms
  • Debugging strategies
  • The concept and properties of algorithms Learning Objectives:
  1. Discuss the importance of algorithms in the problem-solving process.
  2. Identify the necessary properties of good algorithms.
  3. Create algorithms for solving simple problems. 10. Use pseudocode or a programming language to implement, test, and debug algorithms for solving simple problems. 1
  4. Describe strategies that are useful in debugging. PF/DataStructures [core] Minimum core coverage time: 10 hours Topics:
  • Representation of numeric data
  • Range, precision, and rounding errors
  • Arrays
  • Representation of character data
  • Strings and string processing
  • Runtime storage management
  • Pointers and references
  • Linked structures
  • Implementation strategies for stacks, queues, and hash tables
  • Implementation strategies for graphs and trees
  • Strategies for choosing the right data structure Learning Objectives:
  1. Describe the representation of numeric and character data.
  2. Understand how precision and round-off can affect numeric calculations.
  3. Discuss the use of primitive data types and built-in data structures.
  4. Describe common applications for each data structure in the topic list.
  5. Implement the user-defined data structures in a high-level language.
  6. Compare alternative implementations of data structures with respect to performance.
  7. Write programs that use each of the following data structures: arrays, strings, linked lists, stacks, queues, and hash tables.
  8. Compare and contrast the costs and benefits of dynamic and static data structure implementations.
  9. Choose the appropriate data structure for modeling a given problem.
PF/FundamentalConstructs [core] Minimum core coverage time: 9 hours Topics: • Basic syntax and semantics of a higher-level language • Variables, types, expressions, and assignment • Simple I/O • Conditional and iterative control structures • Functions and parameter passing • Structured decomposition Learning Objectives:

  1. Analyze and explain the behavior of simple programs involving the fundamental programming constructs
covered by this unit.

  1. Modify and expand short programs that use standard conditional and iterative control structures and functions.

  1. Design, implement, test, and debug a program that uses each of the following fundamental programming
constructs: basic computation, simple I/O, standard conditional and iterative structures, and the definition of functions.

  1. Choose appropriate conditional and iteration constructs for a given programming task.

  1. Apply the techniques of structured (functional) decomposition to break a program into smaller pieces.

  1. Describe the mechanics of parameter passing.
PF/AlgorithmicProblemSolving [core] Minimum core coverage time: 6 hours Topics: • Problem-solving strategies • The role of algorithms in the problem-solving process • Implementation strategies for algorithms • Debugging strategies • The concept and properties of algorithms Learning Objectives:

  1. Discuss the importance of algorithms in the problem-solving process.

  1. Identify the necessary properties of good algorithms.

  1. Create algorithms for solving simple problems.
10. Use pseudocode or a programming language to implement, test, and debug algorithms for solving simple problems. 1
  1. Describe strategies that are useful in debugging.
PF/DataStructures [core] Minimum core coverage time: 10 hours Topics: • Representation of numeric data • Range, precision, and rounding errors • Arrays • Representation of character data • Strings and string processing • Runtime storage management • Pointers and references • Linked structures • Implementation strategies for stacks, queues, and hash tables • Implementation strategies for graphs and trees • Strategies for choosing the right data structure Learning Objectives:

  1. Describe the representation of numeric and character data.

  1. Understand how precision and round-off can affect numeric calculations.

  1. Discuss the use of primitive data types and built-in data structures.

  1. Describe common applications for each data structure in the topic list.

  1. Implement the user-defined data structures in a high-level language.

  1. Compare alternative implementations of data structures with respect to performance.

  1. Write programs that use each of the following data structures: arrays, strings, linked lists, stacks, queues, and
hash tables.

  1. Compare and contrast the costs and benefits of dynamic and static data structure implementations.

  1. Choose the appropriate data structure for modeling a given problem.
PF/Recursion [core] Minimum core coverage time: 4 hours Topics: • The concept of recursion • Recursive mathematical functions • Simple recursive functions • Divide-and-conquer strategies • Recursive backtracking Learning Objectives:

  1. Describe the concept of recursion and give examples of its use.

  1. Identify the base case and the general case of a recursively defined problem.

  1. Compare iterative and recursive solutions for elementary problems such as factorial.

  1. Describe the divide-and-conquer approach.

  1. Implement, test, and debug simple recursive functions and procedures.

  1. Determine when a recursive solution is appropriate for a problem.
PF/EventDrivenProgramming[core] Minimum core coverage time: 4 hours Topics: • Event-handling methods • Event propagation • Exception handling Learning Objectives:

  1. Explain the difference between event-driven programming and command-line programming.

  1. Design, code, test, and debug simple event-driven programs that respond to user events.

  1. Develop code that responds to exception conditions raised during execution.
PF/ObjectOriented [core] Minimum core coverage time: 8 hours Topics: • Object-oriented design • Encapsulation and information-hiding • Separation of behavior and implementation • Classes and subclasses • Inheritance (overriding, dynamic dispatch) • Polymorphism (subtype polymorphism vs. inheritance) Learning Objectives:

  1. Justify the philosophy of object-oriented design and the concepts of encapsulation, abstraction, inheritance, and
polymorphism.

  1. Design, implement, test, and debug simple programs in an object-oriented programming language.

  1. Describe how the class mechanism supports encapsulation and information hiding.

  1. Design, implement, and test the implementation of “is-a” relationships among objects using a class hierarchy
and inheritance.

  1. Compare and contrast the notions of overloading and overriding methods in an object-oriented language.
PF/FoundationsInformationSecurity [core] Minimum core coverage time: 4 hours Topics: • Role and purpose of computer and network security • Security goals: confidentiality, integrity, availability triad • Security standards and policies • Security mindset • Defense in depth • Common threats: worms, viruses, trojans, denial of service • Risk assessment and cost-benefit analyses • Security versus usability, time, and/or money tradeoffs Learning Objectives:

  1. Explain the objectives of information security

  1. Analyze the tradeoffs inherent in security

  1. Explain the importance and application of each of confidentiality, integrity, and availability

  1. Understand the basic categories of threats to computers and networks

  1. Discuss issues for creating security policy for a large organization

  1. Defend the need for protection and security, and the role of ethical considerations in computer use

  1. Add a very simple risk-assessment learning outcome here
PF/SecureProgramming [core] Minimum core coverage time: 2 hour Topics • Important of checking for and avoiding array and string overflows • Programming language constructs to avoid and alternatives • How attackers use overflows to smash the run-time stack PF/FundamentalConstructs [core] Minimum core coverage time: 9 hours Topics: • Basic syntax and semantics of a higher-level language • Variables, types, expressions, and assignment • Simple I/O • Conditional and iterative control structures • Functions and parameter passing • Structured decomposition Learning Objectives:

  1. Analyze and explain the behavior of simple programs involving the fundamental programming constructs
covered by this unit.

  1. Modify and expand short programs that use standard conditional and iterative control structures and functions.

  1. Design, implement, test, and debug a program that uses each of the following fundamental programming
constructs: basic computation, simple I/O, standard conditional and iterative structures, and the definition of functions.

  1. Choose appropriate conditional and iteration constructs for a given programming task.

  1. Apply the techniques of structured (functional) decomposition to break a program into smaller pieces.

  1. Describe the mechanics of parameter passing.
PF/AlgorithmicProblemSolving [core] Minimum core coverage time: 6 hours Topics: • Problem-solving strategies • The role of algorithms in the problem-solving process • Implementation strategies for algorithms • Debugging strategies • The concept and properties of algorithms Learning Objectives:

  1. Discuss the importance of algorithms in the problem-solving process.

  1. Identify the necessary properties of good algorithms.

  1. Create algorithms for solving simple problems.
10. Use pseudocode or a programming language to implement, test, and debug algorithms for solving simple problems. 1
  1. Describe strategies that are useful in debugging.
PF/DataStructures [core] Minimum core coverage time: 10 hours Topics: • Representation of numeric data • Range, precision, and rounding errors • Arrays • Representation of character data • Strings and string processing • Runtime storage management • Pointers and references • Linked structures • Implementation strategies for stacks, queues, and hash tables • Implementation strategies for graphs and trees • Strategies for choosing the right data structure Learning Objectives:

  1. Describe the representation of numeric and character data.

  1. Understand how precision and round-off can affect numeric calculations.

  1. Discuss the use of primitive data types and built-in data structures.

  1. Describe common applications for each data structure in the topic list.

  1. Implement the user-defined data structures in a high-level language.

  1. Compare alternative implementations of data structures with respect to performance.

  1. Write programs that use each of the following data structures: arrays, strings, linked lists, stacks, queues, and
hash tables.

  1. Compare and contrast the costs and benefits of dynamic and static data structure implementations.

  1. Choose the appropriate data structure for modeling a given problem.
 
This site is powered by the TWiki collaboration platformCopyright &Β© by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding TWiki? Send feedback