Please enable JavaScript for full functionality.          
         
         
            
               
                  
                  
                     
                     		
                     		
                     	
                     	
                     	
                     
                        
                           
                              Computer Science 
                              
                              
                              
                              
                              CSCI Student Learning Outcomes  &  Course Measurable Objectives 
                              
                              
                                 
                                    
                                       CSCI 110 - Fundamentals of Computer Science 
                                             
                                             
                                             
                                             
                                                
                                                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. 
                                                 
                                             
                                             
                                             
                                             
                                                
                                                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 - C++ Language and Object Development 
                                             
                                             
                                             
                                             
                                                
                                                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. 
                                                 
                                             
                                             
                                             
                                             
                                                
                                                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 - Java Language and Object Oriented Programming 
                                             
                                             
                                             
                                             
                                                
                                                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. 
                                                 
                                             
                                             
                                             
                                             
                                                
                                                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 - Assembly Language/Machine Architecture 
                                             
                                             
                                             
                                             
                                                
                                                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. 
                                                 
                                             
                                             
                                             
                                             
                                                
                                                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 190 - Discrete Mathematics Applied to Computer Science 
                                             
                                             
                                             
                                             
                                                
                                                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. 
                                                 
                                             
                                             
                                             
                                             
                                                
                                                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 240 - Data Structures and Algorithms 
                                             
                                             
                                             
                                             
                                                
                                                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. 
                                                
                                                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.  
                                                 
                                             
                                             
                                             
                                             
                                                
                                                Analyze problems and select the appropriate data structure. 
                                                
                                                Design the most efficient data structure for solving a problem. 
                                                
                                                Utilize effective search, insertion and deletion algorithms. 
                                                
                                                Estimate running time for the algorithm studied in class or new algorithms. 
                                                
                                                Implement sorting algorithms. 
                                                
                                                Implement effective search with search trees and hashing. 
                                                
                                                Understand and implement graph algorithms. 
                                                
                                                Identify main memory access and disk access costs.  
                                                 
                                              
                                        
                                     
                                  
                               
                              
                               
                              
                              Courses Not Currently Offered 
                              
                              
                                 
                                    
                                       CSCI 170 
                                             
                                             
                                             
                                             
                                                
                                                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. 
                                                 
                                             
                                             
                                             
                                             
                                                
                                                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 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 - Data Structures I 
                                             
                                             
                                             
                                             
                                                
                                                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. 
                                                 
                                             
                                             
                                             
                                             
                                                
                                                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 - Data Structures II 
                                             
                                             
                                             
                                             
                                                
                                                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. 
                                                 
                                             
                                             
                                             
                                             
                                                
                                                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.