(for non-computer science majors)

The minor in Computer Science consists of 15 credits and is available to qualified students. This minor provides students with a foundation in computer science that complements their majors and enhances their employment opportunities and career options. The problem-solving and critical-thinking skills acquired through this minor are essential skills needed to be successful in life and in the workplace. The courses for Computer Science minor:

Required Courses (9 Credits) 

  • CSCI1201 Computer Programming I
  • CSCI2215 Introduction to Computer Science
  • CSCI3268 Database Systems

Elective Courses (6 Credits)

With the approval of the academic advisor, students may take other higher-level CSCI courses as electives. Students intending to pursue an MS in Computer Science or an MS in Management Information Systems must see an advisor for the proper selection of electives.

Two courses must be chosen from the following: 

  • CSCI1202 Computer Programming II
  • CSCI2232 Data Structures
  • CSCI2247 Assembly Language Programming
  • CSCI3240 Computer Networks
  • CSCI3249 Computer Organization
  • CSCI3278 Operating Systems
  • ENGR2286 Digital System Design
  • MATH2255 Discrete Structures

To take any course in the minor, a student must meet all the prerequisites for that course.

 

Course Descriptions

  • CSCI1201 Elements of algorithm design and problem solving. Elementary data types and arrays. Static and dynamic type checking. Basic control structures and data flow: sequential, conditional, iterative. Assignment statements. Basic input/output. Elements of methods. Design, coding and implementation of programs in various areas using a language such as Java. (Equivalent to INFO 2101 Computer Programming for Information Technologists I)

  • CSCI1202 Stepwise refinement as a programming tool.Data abstraction and modules. Objects and classes. Inheritance and Polymorphism. Advanced put/output. Elements of debugging and testing. Design,coding and implementation of programs in various areas using a language such as Java. Prerequisite:grade of C or better in either CSCI 1201 Computer Programming I or INFO 2101 Computer Programming for Information Technologists I (Equivalent to INFO 2102 Computer Programming for Information Technologists II)

  • CSCI2215 Introduction to computer hardware and software, their interaction and trade-offs. Essentials of a computer organization and arithmetic, programming languages, assemblers, compilers and interpreters, I/O devices, operating systems, databases and files. Basic ideas in the areas of computer networks, system organization, computer theory, and security. Foundation for more advanced courses.

  • CSCI2232 Implementation of abstract data types used in computer science. Arrays, character strings, stacks, queues, one-way and two-way linked lists, trees, graphs and file structures. Searching, sorting, storage management, structure and selection.

  • CSCI2247 Assembly language in relation to computer architecture. Program- ming in assembly language of a particular computer. Numerical and symbolic applications. Input/output programming. Assembly systems: assemblers, loaders and linkers. Macros.

  • CSCI3240 Introduction to the theory and practice of compu- ter networking. Protocol design and analysis. Topics include layered protocol architectures, packet and circuit switching, multiplexing, routing, congestion and flow control, error control, sequencing, addressing, and performance analysis. Examples from current data networks. Co-Requisite:MATH 2255 OR permission of instructor.

  • CSCI3249 Introduction to computer organization and architecture:instruction sets, data types and addressing modes. Introduction to pipeline and parallel computing. Design of control unit of CPU and microprogramming. Memory hierarchies: registers, caches, main, secondary and archival memories.Input/output functions and control. Introduction to arithmetic-logic unit.

  • CSCI3268 Overview of the function and architecture of database systems. Study of storage structures and their implementation. Survey of the current types of data models. Examples of data definition and data manipulation languages. Specific database management systems will be studied to support the data base concepts.

  • CSCI3278 Operating system as machine virtualizer and resource manager. Management of parallel processes, concurrency and synchronization. Main memory management; virtual memory. Process management. Secondary storage management. Performance measurement.Distributed systems. System security.

  • ENGR2286 Binary codes, gates and flip-flops, registers, and counters, adders and ALUs, analysis and design of conbinational and sequential circuits. Logic simulation. Logic families. Integrated laboratory experience.

  • MATH2255 Logic, sets, functions, algorithms. Integers, induction and recursion. Relations, posits, equivalence relations, digraphs and matrix representations. Boolean algebra, applications to logic, Boolean identities, Boolean functions, minimization of circuits. Graphs. Trees.