COURSES IN COMPUTER SCIENCE

CSCI 1100  Introduction to Computers and Information Systems - 2 hours
An introductory course in computers including an overview of computer hardware and application software.  Course includes laboratory experiences with word-processing, presentation software, e-mail communications, and exploration of the internet and www resources.

CSCI 1150  Computers and Information Systems Seminar - 1 hour
Prerequisite or Corequisite CSCI 1100. This course provides an exploration of trends in computers and information systems and examines how trends influence our personal, social, and economic systems.  Ethical issues regarding information and information processing will also be included as well as work with spreadsheet and database applications.

CSCI 1200   Technology and Learning - 3 hours
Credit not applicable toward a computer science major or minor.  An introductory course in computers and computing for teacher education majors at all levels.   The course includes  an overview of current computer technology, hands-on experiences with multimedia applications for instructional delivery, exploration of  distance learning and internet resources, and integration of software into the instructional process.  Students not proficient in Word, Excel, PowerPoint, and webpage development should take CSCI 1100 prior to enrollment in CSCI 1200.

CSCI 1301   Computer Science I - 3 hours
This course will cultivate critical thinking skills by presenting computer science as a problem solving discipline with emphasis in: fundamentals of computer science, algorithm development and analysis, and the design, coding, debugging, and documentation of structured programs. Introduction to some software engineering concepts will also be covered.

CSCI 1301L  Computer Science I Lab - 1 hour
Corequisite for CS/CIS majors:  CSCI 1301.  This course is an applied component of CSCI 1301.  Students practice the programming concepts learned in CSCI 1301 through pre designed laboratory assignments in programming.

CSCI 1302   Computer Science II - 4 hours
Prerequisite: Grade of C or above in CSCI 1301 and CSCI 1301L.  This course is a continuation of the topics introduced in CSCI 1301. It extends the discussion of object-oriented programming to include interface, event handling, streams, recursion, and searching and sorting.  This course will have a strong lab component.

CSCI  2100   Technology in Mathematics - 2 hours
Prerequisite:  Grade of C or above in MATH 2450. Credit not applicable to computer science major or minor.  A course to develop skills in use of technology in the teaching and learning of mathematics.   Laboratory experiences include use of Maple, Mathview, Excel, the Geometer’s Sketchpad, Netscape, graphing calculators, CBL equipment and other current technology appropriate for mathematics instruction at the secondary level.

CSCI 2150  Computer Ethics and Social Issues - 3 hours
Prerequisite:  CSCI 1302.  This course introduces the student to the social impact of computers and software.  Topics include professional responsibilities related to copyright, software protection, and privacy.

CSCI 2700   Object-Oriented Systems - 3 hours
Prerequisite: Grade of C or above in CSCI 1302. In this course the students will be introduced to the concepts of Object-Oriented Programming as a means of problem solving. The topics include classes, objects, modeling techniques, inheritance, abstract data types, information hiding, polymorphism, modularity, messages, and reusability.

CSCI 3000   Web Programming - 3 hours
Prerequisite:  Grade of C or above in CSCI 1302.  An introduction to various techniques in client and server-side scripting; topics include dynamic web pages, CGI, interpreted vs. compiled code, and server-side includes.  The course also covers recent trends in world-wide web standards, electronic commerce applications, and web services.  The course requires a substantial amount of programming.

CSCI 3050   Information Security - 3 hours
Prerequisite:  Grade of C or above in CSCI 1302.  An introduction to information systems security issues; topics include threats, vulnerabilities, controls, encryption, and risk assessment.  The course also covers security in programs, operating systems security, database security, security in networks, administrative security, computer crime, and threats to privacy.  The course requires some programming.

CSCI 3100   Computer Organization and Architecture - 3 hours
Prerequisite: Grade of C or above in CSCI 1302. The course covers both the organizational and architectural levels of  computer systems. The topics of the course include instruction sets, addressing, microprogramming, memory, I/O, interrupts and data paths. Multicomputers, multiprocessors, pipeline computers, supercomputers, CICS and RISC architectures will also be covered.

CSCI 3200   Data Structures and Analysis of Algorithms - 3 hours
Prerequisite: Grade of C or above in CSCI 2700. The course covers the structure of data and algorithms. Topics covered include sorting, searching, updating,  hashing techniques, advanced tree structures and a more formal and in-depth treatment of the topics included in CSCI 2700.  An introduction to complexity analysis of algorithms and complexity classes as well as parallel and distributed algorithms will also be covered.

CSCI 3300   Systems Analysis and Design (W) - 3 hours
Prerequisite: Grade of C or above in CSCI 1302. The course introduces techniques of analysis and design of business application systems through the use of CASE tools. Topics include Data Flow Diagrams (DFD), Data Dictionaries (DD), Entity Relationship Diagrams (ERD), structure charts, and object-oriented analysis and design tools. The course will also cover project planning and control and cost benefit analysis. A case study is required for this course.

CSCI 3400   Database Principles - 3 hours
Prerequisite: Grade of C or above in CSCI 1302. This course covers the analysis and design techniques of relational and object-oriented databases.  Topics include entity relationship modeling, semantic object modeling, database design using ERD and semantic object models, integrity constraints, normalization, structured query languages, concurrency control,  and distributed database processing.

CSCI 3500   Management Information Systems - 3 hours
Prerequisite: Grade of C or above in CSCI 1302 and MGMT 3661.  This course covers the analysis of information to support operations, management analysis, and decision-making functions in an organization. Topics include planning, control, and development of computer-based information systems in the organization; and management of the hardware, software, data, and the resources of the organization.

CSCI 3600   Computer Graphics - 3 hours
Prerequisite: Grade of C or above in CSCI 3200 and MATH 3650. The main focus of this course is to provide an introduction to interactive computer graphics. A large component of the class will consist of writing a large-scale graphics program using a high-level language. Topics include machine-independent graphics, graphics standards, a survey of applications, use of graphics libraries, output devices, appropriate data structures, and mathematical manipulation of graphical objects.

CSCI 3650
   Visual Programming - 3 hours
Prerequisite: Grade of C or above in CSCI 2700. Topics include the fundamentals of visual language theory, iconic and symbolic representation, parsing techniques, semantics and pragmatics of visual languages, visual programming systems, visual querying systems, visual information systems, and knowledge-based visualization.

CSCI 3700   Assembly Language - 3 hours
Prerequisite: Grade of C or above in CSCI 1302. The course teaches the fundamentals of assembly language programming. Major topics include basic block diagrams, control paths, instruction cycles, instruction sets and types, addressing modes, control units, instruction fetch and execution, operand fetch, and I/O interrupts.

CSCI 3800   Introduction to UNIX - 3 hours
Prerequisite:  Grade C or above in CSCI 1301.  A survey of UNIX commands, file systems, shells, basic scripting, and applications.  The course involves hands-on programming and laboratory exercises.

CSCI  3810   UN System Administration - 3 hours
Prerequisite:  Grade C or above in CSCI 3800.  Topics include installation, configuration, and maintenance of various implementations of the UNIX operating system.  Students are required to install and configure a UNIX server from start to finish.
 
CSCI 3900   Selected Topics - 1, 2, or 3 hours
Prerequisite: Grade C or above in CSCI 1302. Advanced topics in a special area of computer science.

CSCI 4000   New Media Design - 3 hours
Prerequisites: CSCI 1301, Jour 3010, JOUR 3100, ART 3450, and ART 4450.
Includes applications of technologies to display sophisticated text, graphics, animation, and video for new media such as the Web. This course includes the design and development of a major media project and is the capstone course for the minor in new media design and communication.

CSCI 4100   Operating Systems and File Organization - 3 hours
Prerequisite: Grade of C or above in CSCI 3100 and CSCI 3200.  This course provides an introduction to operating system concepts and file organization. Topics include processes, process coordination and synchronization, physical and virtual memory management, CPU scheduling, concurrent processes, and comparison of some operating systems. File systems and file organization are also covered.

CSCI 4200   Programming Languages - 3 hours
Prerequisite: Grade of C or above in CSCI 1302. This course provides a comparative  study of the various features of programming languages including data typing, sequence control, data structure implementation,  and run time storage management. It also covers the language constructs that support distributed and parallel computing as well as application of these constructs in parallel and distributed computing.

CSCI 4300   Theory of Computation - 3 hours
Prerequisite: Grade of C or above in CSCI 4200. This course introduces the theory of computability, automata, and formal languages. Topics include regular expressions, context-free and context-sensitive grammar, Turing machines, recursive functions, lambda calculus, and formal program semantics.

CSCI 4400   Software Engineering - 3 hours
Prerequisite: Grade of C or above in CSCI 3200.  This course introduces the students to the principles of software methodology and engineering. Topics include specification, design, testing,  and maintenance of software systems.  Documentation style, team organization, software verification and validation, and security and protection are also covered.

CSCI 4500   Data Communications - 3 hours
Prerequisite: Grade of C or above in CSCI 1302. This course covers fundamentals of computer and data communication in some detail. Topics include data transmission  protocols and architecture, guided and unguided transmission media, data encoding techniques, data communication interfaces, data link controls, multiplexing, and local area networks. It also covers the Open System Interconnection model.

CSCI 4510    Network Administration - 3 hours
Prerequisite:  Grade of C or above in CSCI 4500.  Topics include network configuration, integration of LANs and WANs, routers, switches, and network access servers.  Special attention is paid to aspects of security, access control, and problem determination/troubleshooting.

CSCI 4550   Computer Applications in Operations Research - 3 hours
Prerequisite:  Grade of C or above in MATH 3650 and CSCI 1302.  A study of various problems and models in the field of operations research.  Topics will include linear programming, the transportation problem, the assignment problem, project scheduling, network models,  and queuing theory.  Computer software will be available to assist students in the computational aspects of their solutions.

CSCI 4600   Parallel Processing - 3 hours
Prerequisite: Grade of C or above in CSCI 4100 and CSCI 4200.  The course illustrates how parallelism can yield significant speed-up in comparison with sequential execution. Topics include concurrency and synchronization, architectural support, programming language constructs for parallel computing, parallel algorithms and complexity, load balancing, and scheduling. Different parallel architectures (e.g. MIMD, SIMD, and array processors) will also be included.

CSCI 4700   Graphical User Interface Design              3 hours
Prerequisite: Grade of C or above in CSCI 3600 or CSCI 3650. This course teaches the fundamentals of GUI (Graphical User Interface) design. Major topics include objectives of the GUI interface, the GUI design process, objects and actions, elements of an interface, and manipulating objects. The course also teaches the various components and behavior of graphical user interfaces including windows, controls, manipulation,  and application flow. A hands-on practical lab is an essential component of this course.

CSCI 4750   Data Modeling - 3 hours
Prerequisite: Grade of C or above in CSCI 3400. A continuation of CSCI 3400. Topics include database languages, security systems, transaction management, query processing, distributed DBMSs, object-oriented DBMSs, Web technology, and data warehousing.

CSCI 4800   Artificial Intelligence - 3 hours
Prerequisite: Grade of C or above in CSCI 3200. The course teaches fundamentals of artificial intelligence. The topics include expert systems, natural languages, robotics, planning, speech, and vision.

CSCI 4850   Compiler Construction - 3 hours
Prerequisite:  Grade of C or above in CSCI 3200, CSCI 4100, and CSCI 4200.  A course designed to introduce the student to the techniques of modern compiler writing.  Topics include lexical analysis, parsers, semantic analysis, intermediate code generation, and object code generation.

CSCI 4900   Independent Study - 1, 2, or 3 hours
Prerequisite: Approval of the instructor and the department head.  Independent study under the direction of a faculty member.  Topics covered will include areas not regularly offered as part of the program.  May be repeated for credit.

CSCI 4910   Internship in Computer Science - 1, 2, or 3 hours
Prerequisite:  Junior or senior status and approval of the department head.  Hands-on experience in the area of computer science through a combination of scheduled seminar discussion groups and supervised experience.  May be repeated for credit.

CSCI 4950    Senior Project (W) (O) - 3 hours
Prerequisite: Grade of C or above in CSCI 3300 and senior standing. This course is designed for Computer Science majors who are within one semester of graduation. It is a capstone course integrating the analysis and skills acquired from the previous courses in computer science and the student’s area of concentration.