# Student Learning Outcomes &

# Course Measurable Objectives

Student Learning Outcomes (SLO) is a means to determine what students know, think, feel or do as a result of a given learning experience. Learn more about SLO.

• Mathematics - 50 - 51 - 51A - 51B - 61 - 71 - 71A - 71B - 71X - 96

- 100 - 110 - 110H - 120 - 130 - 140 - 150 - 160 - 180 - 181 - 210 - 280 - 285 •

• Computer Science - 110 - 140 - 145 - 150 - 170 - 190 - 210 - 220 - 230 •

## Computer Science

**CSCI 110 SLO**

- Students will be able to use and differentiate between basic concepts of computer hardware and software.
- Students will be able to use data representation for the fundamental data types and perform conversions between binary-hexadecimal-decimal representations.
- Students will be able to read, understand and trace the execution of programs written in C language.
- For a given algorithm students will be able to write the C code using a modular approach.

**CSCI 110 CMO**

- Define computer terminology.
- Describe various data representations.
- Demonstrate number system conversion to and from binary, decimal and hexadecimal.
- Discuss fundamental units of digital computers.
- Describe instruction set, computer organization and operating system features.
- Analyze and design efficient algorithms for problem solving.
- Utilize text editors, compilers and IDEs.
- Utilize appropriate data types and structures.
- Write, organize and assemble program documentation.
- Create correct code, and debug simple errors in one of the higher level languages (C, C++ or Java.)

**CSCI 140 SLO**

- Students will be able to analyze problems and design algorithms in pseudo code.
- Students will be able to read, understand and trace the execution of programs written in C++ language.
- Students will be able to use given classes and virtual functions in a class hierarchy to create new derived classes and the code that uses them.
- For a given algorithm students will be able to write modular C++ code using classes in an OOP approach.

**CSCI 140 CMO**

- Analyze problems and design appropriate algorithms.
- Code algorithms into the C++ language.
- Recognize and produce proper C++ syntax.
- Use correct data type and data structures, including objects, linked lists, stacks, queues.
- Utilize recursion, iteration, arrays, pointer arithmetic.
- Demonstrate the paradigm of object oriented programming.
- Write, organize and assemble program documentation.
- Utilize encapsulation, overloading, inheritance and polymorphism.
- Utilize data abstraction, separate program interface and implementation
- Develop standards for comparing the efficiency of various algorithms.
- Demonstrate debugging techniques.

**CSCI 145 SLO**

- Students will be able to analyze problems and design appropriate algorithms.
- Students will be able to code provided algorithms using Java language.
- Students will be able to provide code for a Java class given objects’ attributes and behaviors.
- Students will be able to use existing Java classes to perform required tasks.

**CSCI 145 CMO**

- Analyze problems and design appropriate algorithms.
- Code algorithms into the Java language.
- Recognize and produce proper Java syntax.
- Utilize recursion, iteration and arrays.
- Demonstrate the paradigm of object oriented programming.
- Write, organize and assemble program documentation.
- Develop standards for comparing the efficiency of various algorithms.
- Demonstrate debugging techniques.

**CSCI 150 SLO**

- Students will be able to manipulate data at the bit and byte levels.
- Students will be able to identify the components of a computer and the organization of those components.
- Students will be able to describe disk storage systems and file systems.
- Students will be able to use assembly language instructions to write small programs.

**CSCI 150 CMO**

- Explain different number systems and manipulate bits and bytes.
- Identify the components of a computer and the organization of those components.
- Use assembly language instructions to write programs.
- Map statements and constructs in a high-level language into a sequence of machine instructions.
- Construct internal representations of simple data types.
- Identify the basic principles of the operating system.
- Utilize procedures in assembly programs.
- Analyze disk operations and compare different file systems.
- Write programs in assembly language.

**CSCI 170 SLO**

- Students will be able do basic UNIX OS administration tasks, including account management.
- Students will be able to use the Unix file system
- Students will be able to perform basic UNIX networking tasks including setting up a LAN using NIS
- Students will be able to use Unix programming tools: compilers, Make utility, debugger, profiler, version control.
- Students will be able to read-understand-write short scripts in a Unix shell.

**CSCI 170 CMO**

- Describe the function performed by an operating system.
- Utilize vi and emacs text editors.
- Write scripts for shell programming in UNIX.
- Discuss features of UNIX implementations and compare to other operating systems.
- Manage system administration on SOLARIS and LINUX boxes.
- Utilize file systems under UNIX.
- Utilize process management under UNIX.
- Configure user shells and perform basic tasks as "root" on the system.
- Explain networking basics, routing, TCP/IP and DNS.
- Utilize compilers for C/C++, Java under UNIX.

**CSCI 190 SLO**

- Students will be able to use truth table for propositional calculus.
- Students will be able to use math induction and recursive definitions and algorithms.
- Students will be able to understand the terminology of finite graphs and trees and use the basic algorithms for traversal, shortest path, graph coloring.
- Students will be able to use basic counting techniques, combinatorics concepts and binomial coefficients.

**CSCI 190 CMO**

- Utilize the appropriate mathematical tool in algorithm design
- Define problems in mathematical terms using the language of sets, logic, arithmetic, combinatorics
- Compose proofs using truth tables or predicate calculus
- Develop algorithms using recursion
- Utilize modular arithmetic and integer arithmetic in problem solving with computers
- Demonstrate elementary counting techniques
- Solve problems using mathematical induction
- Utilize the language of graphs in problem solving and algorithm design
- Classify problems according to mathematical aspect that is relevant to it
- Utilize discrete probability for practical problems.

### CSCI 210

- Students will be able to use Boolean algebra for algebraic simplification.
- Students will be able to use truth tables, maps, and tabular reduction methods in combinational network design.
- Students will be able to use state tables and diagrams in sequential network design.
- Students will be able to differentiate between combinational and sequential logic networks.

**CSCI 220 SLO**

- Students will be able to analyze problems and select the appropriate data structure.
- Students will be able to estimate running time given an algorithm.
- Students will be able to implement and use linear data structures including sets, stacks, queues, and lists.
- Students will be able to implement and use trees including binary tree, binary search trees, and heaps.

**CSCI 220 CMO**

- Analyze problems and select the appropriate data structure.
- Design the most efficient data structure for solving a problem.
- Implement the data structure through effective C++/Java code.
- Utilize effective search, insertion and deletion algorithms.
- Demonstrate effective debugging techniques.
- Write and organize documentation for data structures.
- Estimate running time for the algorithm studied in class or new algorithms.

**CSCI 230 SLO**

- Students will be able to implement efficient searching techniques including hash tables and skip lists.
- Students will be able to implement and analyze running time for various sorting algorithms.
- Students will be able to represent graphs and implement well-known graph algorithms.
- Students will be able to differentiate the costs between memory access and disk access.

**CSCI 230 CMO**

- Analyze algorithms and select the most efficient one to solve a problem.
- Implement sorting algorithms.
- Implement hashing algorithms.
- Use self-organizing lists in problem solving.
- Understand and implement graph algorithms.
- Estimate running time for sort, search, and graph algorithms.
- Identify main memory access and disk access costs.
- Utilize object-oriented techniques in design of data structures and algorithms.