IntroSequenceTopics

From MWCSWiki

Jump to: navigation, search

Contents

[edit] CPSC 110

(Could be any programming language)

  • Breadth-first topics concerning the conceptual understanding of computers, computing, and issues with technology
  • Algorithmic problem-solving, expressed in anything resembling a programming language
  • The concept of representing information in a program with variables

[edit] CPSC 220

Language: Java

  • Decision Statements
  • Repetition Statements
  • Recursion
  • Methods
    • The concepts of modularity and reuse
    • Parameter passing
    • Overloaded method names
  • Concept of a Class
    • Using classes
    • Creating a data type
    • The purpose of class members and methods
    • Intro to information hiding, encapsulation, inheritance, & polymorphism
  • Arrays as a data structure and abstract data type
    • Searching algorithms - linear search, vs. binary search (which uses recursion)
    • Sorting algorithms - any basic O(n^2) sort and Merge sort (which uses recursion)
  • The List as an abstract data type
  • Exceptions & Exception handling
  • Using an IDE
  • Testing (developing test cases for algorithms/programs; using a debugger)
  • Input & Output (including file I/O)
  • Department coding/style standards
  • Ethics
  • Careers in computer science
  • Optional topics:
    • Net-Centric Computing
    • Graphics
    • Web development (providing back-end services)
    • Networks
    • Gaming


[edit] CPSC 230

Language: C++

  • Transition to C++, illustrate major differences between it and Java
  • Header files, and compiling multiple source files into a single executable
  • Pointers
  • Dynamic memory allocation (and de-allocation)
  • Pass-by-value vs. pass-by-reference (including C++ reference op)
  • C++ template classes
  • Singly-linked lists
  • Stacks
  • Queues
  • Trees, including binary search trees
  • Graphs
  • Sorting, searching, and basic Big-O complexity analysis
  • Hashtables


  • Optional topics:
    • Doubly-linked lists
    • Heaps
    • Priority Queues
    • B-Trees
    • Breadth-first topics, such as ethics, careers, computing issues, informatics, etc.

[edit] CPSC 330

Language: Java and/or C++ base)

  • The OO paradigm, why it's important, and how it differs historically from procedural programming
  • Design techniques for identifying classes and methods (perhaps, but not necessarily, Rebecca Wirfs-Brock's "Responsibility-Driven Design" paradigm)
  • UML
    • class diagrams
    • sequence diagrams
    • collaboration diagrams
  • Encapsulation
  • Visibility
  • Inheritance
    • interface inheritance
    • implementation inheritance
  • Design Patterns
    • Singleton
    • Factory
    • Template Method
    • Observer
    • Strategy
    • Decorator
    • Composite
  • How to effectively use the C++ STL and/or the Java standard API
  • Optional topics:
    • Other design patterns, as appropriate
Personal tools