Courses/CS 50x2/Outcomes

From A-State Computer Science Wiki
Jump to: navigation, search

Course-Level Outcomes

After completion of this course, students will have met the following student learning outcomes:

  • Demonstrate a general understanding of computing technology.
  • Design and implement programs in the C++ programming language.
  • Ability to use an industry-standard toolchain for writing, compiling, and executing C++ code.
  • Demonstrate an understanding of the basic principles of computer programming.
  • Demonstrate an understanding of the Structured Programming paradigm.
  • Develop algorithms and programs to apply mathematical concepts.
  • Apply critical thinking and problem-solving skills to develop solutions to non-trivial programming problems.
  • Demonstrate technical communication skills through written algorithms and code documentation.
  • Understanding Abstract Data Types: motivations and basic concepts.
  • Understanding of the behavior of basic data structures (lists, stacks, queues, trees (binary trees and tree traversals), graphs).
  • Ability to analyze a problem and determine the appropriate data structure for the problem.
  • Understand the importance of data modeling and data structures in advanced programming.
  • Understand and analyze elementary algorithms: sorting and searching.
  • Ability to analyze the impact of data structures technique on the performance of algorithms (time and space complexity)/programs.
  • Data structure implementation issues. Understanding of dynamic versus array implementations of data structures, factors involved in deciding on an implementation technique.
  • Practice in writing modular programs using the data structures that have been studied.
  • Understanding the mechanics of code design, organization, and the development environment.
  • Understanding data structure implementation in C++ using header files and implementation files.
  • Demonstrate adeptness of object oriented programming in developing solutions to problems demonstrating usage of data abstraction, encapsulation, and inheritance
  • Be familiar with basic techniques of algorithm analysis
  • Be familiar with writing recursive methods
  • Be familiar with advanced data structures such as balanced search trees, hash tables, priority queues and the disjoint set union/find data structure
  • Be familiar with several advanced sorting algorithms including quicksort, mergesort and heapsort
  • Be familiar with some graph algorithms such as shortest path and minimum spanning tree
  • Master analyzing problems and writing program solutions to problems using the above techniques

Degree-Level Outcomes

CS 5012/5022/5032 is intended to provide core undergraduate Computer Science competencies linked to the following B.S. degree-level student learning outcomes:

  • Graduates of the B.S./B.A. Computer Science degree program attain the ability to apply knowledge of computing and mathematics appropriate to the discipline.
  • Graduates of the B.S./B.A. Computer Science degree program attain the ability to analyze a problem, and identify and define the computing requirements appropriate to its solution.
  • Graduates of the B.S./B.A. Computer Science degree program attain the ability to design, implement, and evaluate a computer-based system, process, component, or program to meet desired needs.
  • Graduates of the B.S./B.A. Computer Science degree program attain an understanding of professional, ethical, legal, security and social issues and responsibilities.
  • Graduates of the B.S./B.A. Computer Science degree program attain the ability to analyze the local and global impact of computing on individuals, organizations, and society.
  • Graduates of the B.S./B.A. Computer Science degree program attain recognition of the need for and an ability to engage in continuing professional development.
  • Graduates of the B.S./B.A. Computer Science degree program attain the ability to use current techniques, skills, and tools necessary for computing practice.