Computer Science 
CSCI Student Learning Outcomes & Course Measurable Objectives

 CSCI 110
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 binaryhexadecimaldecimal 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
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
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
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 highlevel 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
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 readunderstandwrite 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
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
CSCI 210 SLO
 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
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
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 wellknown 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 selforganizing 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 objectoriented techniques in design of data structures and algorithms.
 CSCI 110