Undergraduate Catalog 2013-2014

CSCI - Computer Science

CSCI 1000 Intro to Computer Sci & Appl

An introduction to software applications, equipment, information representation, information security, ethical issues, and the use of Internet information resources. Laboratory assignments employ a variety of application software including word processing, electronic spreadsheets, presentation systems, database systems, and the design and creation of web pages. Credit for this course is not allowed if CBIS 2215 has been previously taken.

3

CSCI 1200 Curr Topic in Comp & Info Tech

This course provides an introduction to contemporary issues in computer and information technology and the impact on society and culture. Topics include the evolution of the World Wide Web to current social networks, the technology and economics of social networking, the software development process and issues related to modern mobile computing devices, security and privacy, cyberethics, and globalization of the computing industry.

1

CSCI 1301 Computer Science I

Course topics include an overview of computers and programming; problem-solving and algorithm development; simple data types; arithmetic and logical operators; selection structures; text files; arrays; procedural abstraction and software design; modular programming.

3

CSCI 1302 Computer Science II

Prerequisite: C or better in CSCI 1301. The course includes an overview of abstract data types; multi-dimensional arrays and records; strings; binary files; searching and sorting; software engineering concepts; software engineering concepts; dynamic data structures; introduction to object oriented languages and the concepts of object oriented design of algorithms. Additional special course fee required; see semester course schedule for amount.

3

CSCI 2350 Object Oriented Programming

Prerequisite: C or better in CSCI 1302. Students strengthened in the knowledge of object oriented languages and the concepts of object oriented design of algorithms. The central issues of data hiding, encapsulation and polymorphism are emphasized throughout the course. This course is non-repeatable.

3

CSCI 3211 Assem Lang & Digital Logic Dsg

Prerequisite: CSCI 1302. The internal organization of digital computers is introduced through the study of assembly language. Digital logic design, sequential and combinational circuit design and implementation are introduced. Laboratory projects include the implementation of circuits using integrated circuit technology and assembly language programming. Corequisite CSCI 3410. This course is non-repeatable.

3

CSCI 3212 Computer Organization & Archit

Prerequisite: C or better in CSCI 3211. Study of computer architecture. Topics include CPU organization, memory addressing, internal bus organization, and control. Laboratory emphasis is given to design and construction of an operational digital computer system. This course is non-repeatable. Additional special course fee required; see semester course schedule for amount.

3

CSCI 3341 Operating Systems

Prerequisite: C or better in CSCI 3410. Basic principles, structure, and functions of operating systems, especially UNIX. Topics include concurrency, multitasking and process synchronization, multiprogramming, and memory, processor, and device management. This course is non-repeatable.

3

CSCI 3342 System & Network Programming

Prerequisite: C or better in CSCI 3410. This course is a continuation of CSCI 3341 and is a study of the design and development of multitasking systems, client-server organizations, and distributed applications. Computer network design, implementations and protocols are included. This course is non-repeatable.

3

CSCI 3343 Computer Systems Security

Prerequisite: C or better in CSCI 3341 Operating Systems. The course covers principles of computer systems security. We will discuss various attack techniques and how to defend against them. Topics include Network attacks and defenses, Operating system holes, application security (Web, e-mail, databases, viruses, social engineering attacks, privacy, digital rights management, cryptography, access control, and security protocols). Course projects will focus on building reliable code.

3

CSCI 3410 Intro to Data Structures

Prerequisite: C or better in CSCI 1302. Introduction to data structures and their applications. Topics include pointers and references, linked structures, stacks, queues, lists, graphs, trees, hashed tables, introductory algorithm analysis, and recursion. Basic implementation and algorithms for manipulating these structures in the context of typical problems are covered.

3

CSCI 3610 Internet Programming I

This course includes an overview of the World Wide Web along with an introduction of client side scripting, server side scripting, HTTP protocol, database connectivity, and programming for the Web. Topics include HTML, CSS, JavaScript, DOM, PHP and/or other internet programming languages. The course is non-repeatable.

3

CSCI 3680 Discrete Structures

Prerequisites: C or better in MATH 1113 and CSCI 1302. This course offers an intensive introduction to discrete mathematics as it is used in computer science. Topics include functions, relations, sets, propositional and predicate logic, simple circuit logic, proof techniques, elementary combinatorics, and discrete probability. This course is non-repeatable

3

CSCI 3950 Special Topics

Prerequisite: Permission of instructor. Selected topics not available in other departmental courses.

1 - 4

CSCI 4320 Software Engineering

Prerequisite: C or better in CSCI 3410 and Senior status. An introduction to software engineering methodologies addressing each phase in the life cycle of software. Programming assignments use modern software engineering tools and languages.

3

CSCI 4330 Programming Lang:Design & Surv

Prerequisite: C or better in CSCI 3410. The study of programming languages including the concept of compiler and interpreter, data types, type checking, names and scopes, the concept of binding, requirements for passing parameters, exception handling, imperative programming, object-oriented programming, functional programming, logic programming, formal language theory, and a broad survey of programming languages.

3

CSCI 4520 Analysis of Algorithms

Prerequisite: C or better in CSCI 2680 and CSCI 3410. Topics include analysis of algorithms, fundamental computing algorithms, algorithms and problem-solving, algorithmic strategies (brute-force algorithms, greedy algorithms, divide-and-conquer, dynamic programming, backtracking, branch-and-bound, heuristics, pattern matching and string/text algorithms, numerical approximation algorithms), and basic computability.

3

CSCI 4610 Internet Programming II

This course is a continuation of CSCI 3610 and an in-depth study of the design and development of web applications. Topics include the XML and RSS, JSON, Ajax, web services, and web security. This course is non-repeatable.

3

CSCI 4680 Human Computer Interaction

Prerequisites: C or better in CSCI 3410 or CBIS 4210. This course explores the design, evaluation and implementation of usable interactive computing systems. Topics include methodologies and processes for designing, modeling and implementing interfaces, techniques for evaluating and comparing interfaces, and new paradigms for interaction.

3

CSCI 4710 Databases

Prerequisite: C or better in CSCI 3410 and CSCI 2680. An introduction to managing data as a resource by examining basic concepts in database management systems and contrasting them with standard file systems. Topics include data modeling, relational databases, database query languages, relational database design, transaction processing, and distributed databases.

3

CSCI 4920 Senior Seminar

Prerequisites: C or better in CSCI 3410 and permission of the instructor. Selected topics of current interest in computer science will be presented. In addition, each student will complete a project suited to the student's educational and professional interests.

3

CSCI 4940 Independent Study

Prerequisite: C or better in CSCI 3410 and permission of the instructor. Investigation of a topic of special interest under the guidance of a faculty member. Appropriate topics are those not available in other courses.

1 - 4

CSCI 4950 Special Topics

Prerequisite: Permission of the instructor. Selected topics not available in other departmental courses.

1 - 4

CSCI 4960 Internship and/or Cooperative

Prerequisite: Approval of the Computer Science Program Coordinator. An individually designed and planned learning experience involving off-campus field experience and study in the private or public sector. A technical report documenting the experience will be presented to the Computer Science program coordinator.

1 - 15

CSCI 4999 Undergraduate Research

Prerequisites: Completion of all Area F computer science requirements with a grade of B or better and permission of the instructor. This course affords interested junior and senior students an opportunity to participate in a basic research experience with a member of the department faculty.

1 - 4