Course Catalog
CpSc 100: Introduction to Computing for Liberal Arts
A pass/no credit course to provide an introduction to the computer capabilities needed to succeed in an Information Society. This course is designed to support the SRU Computer Competency requirement. Topics will include computer hardware, system software, application software, societal issues, networking and security & privacy.
Credits: 1 (pass/no credit)Course Outline: CpSc 100
CpSc 102: Collaborative Information Technology and Society
We will explore how the use of collaborative information technology impacts human interaction in globally diverse contexts. The course provides an introduction to the historical development, current use and future directions of collaborative technology in human societies. We will address the ethical, legal and social issues involved in the use of these collaborative technologies.
Credits: 3CpSc 110: Computer Concepts
A computer literacy course stressing the use of applications software on personal computers. It covers a survey of computers and their impact on society and the use of word processing software. Other application software is also covered, such as spreadsheets and database software, but the particular applications examined may vary from section to section.
Credits: 3Course Outline: CpSc 110
CpSc 130: Introduction to Programming and Information Systems
An introductory course devoted to programming and to a description of hardware and software concepts. Programming concepts covered include top-down program development using pseudocode, algebraic notation, standard control structures, and arrays in an appropriate programming language. Other topics include binary representation, storage, and general architecture and functioning of a computer system.
Credits: 3Prerequisites: ACSD 110 Beginning Algebra
Course Outline: CpSc 130
CpSc 140: Introduction to Programming Principles
Techniques are stressed that enable systematic development of clear, correct programs. Other topics include data types, algebraic notation, standard control structures, functions; input/output, arrays, and program testing and debugging.
Credits: 3Prerequisites: ACSD 110 Beginning Algebra/Math 125
Course Outline: CpSc 140
CpSc 146: Programming Principles
Techniques are stressed that enable systematic development of clear, correct programs. Other topics include data types, algebraic notation, standard control structures, functions; input/output, arrays, and program testing and debugging. The course will be taught in the department.s current official programming language of instruction.
Credits: 3Prerequisites: Math 120
Course Outline: CpSc 146
CpSc 207: Shell Commands and Scripting
This course introduces the student to prevalent operating systems, command line interfaces to operating systems, and shell scripting. The course includes user level commands, file management, system utilities, and task management. The relationship between hardware and the operating system is discussed conceptually.
Credits: 3CpSc 210: Productivity Software
An in-depth, practical study of existing productivity software packages that focuses primarily on decision-support systems for microcomputers. Projects will involve the use of intermediate and advanced features of various software packages, as well as the use of several packages in finding computer-based solutions to information storage and retrieval problems.
Credits: 3Prerequisites: Computer Literacy
Course Outline: CpSc 210
CpSc 217: Structured and Dynamic Web Programming
This course is designed to cover the features of popular programming languages specifically for creating web pages. Mouse rollovers, browser detects, pop-up windows that launch when a web page loads or in response to specific actions, and form data-checking are just a few of the most popular uses of web programming languages that will be discussed. Programming will be done in a representative programming language.
Credits: 3Prerequisites:
CpSc 130 Introduction to Programming and Information Systems
And CpSc 140 Introduction to Programming Principles
Course Outline: CpSc 217
CpSc 236: Selected Computer Languages
A selected prevalent computer language(s) other than those taught regularly in other Computer Science courses will be studied and used for programming from an advanced point of view. Topics will include data structure, control structures, data control, modularization and other features of the language. Special applications, if any, of the language will be studied. The student is expected to have programming expertise in at least one other language. For different languages, this course may be repeated for credit toward graduation, but not toward a computer science major or minor.
Credits: 3Prerequisites:
CpSc 246 Advanced Programming Principles
Or CpSc 217 Structured and Dynamic Web Programming
Course Outline: CpSc 236
CpSc 246: Advanced Programming Principles
This course places its emphasis on data and their role in software development. Such a study relies on a two-step approach to data abstraction. In the first step, data must be viewed as abstract objects. These objects are selected and specified so as to be useful in the solution of programming projects. In the second step, the abstract objects are translated into program data structures. An extensive examination of data structures provides the student many opportunities to explore the issues of implementing data abstractions.
Credits: 4Prerequisites:
CpSc 146 Introduction to Programming Principles
And ECON 219 Business Statistics
Or MGMT 219 Business Statistics
Or MATH 120 Intermediate Algebra
Or Permission of the Instructor
Course Outline: CpSc 246
CpSc 300: Challenges of Computer Technology
An in-depth study of the critical issues related to the computerization of society. Ethical, legal, and moral issues raised by the evolution of computer technology will be discussed.
Credits: 3Prerequisites: Advanced Standing
Course Outline: CpSc 300
CpSc 301: Practical Computer Security
A practical introduction to the threats present to the online, electronic community, and how to protect yourself and your organization from them. We will explore the connectivity structure of the Internet, along with the security and criminal threats to members of the online community. The legal, ethical and technical issues related to threats such as viruses, worms, and identity theft will be covered.
Credits: 3Prerequisites: Any CpSc Course Or Permission of the Instructor
CpSc 305: Introduction to Expert Systems
An overview of the purpose, structure, and applications of expert systems. Topics covered will include expert systems technology, knowledge engineering, applications of expert systems, expert systems development, and the future of expert systems.
Credits: 3Prerequisites: Computer Literacy
Course Outline: CpSc 305
CpSc 311: Discrete Computational Structures
Introduces computational implementations of the mathematical structures most frequently used in computing including sets, equivalence relations, functions, graphs, trees and standard logic. Also introduces automata, formal languages, countability, decidability and computational complexity, Markov and stochastic processes. The course will stress traditional programming and mathematical approaches to these structures such as the use of recursion, elementary data structures, and proof techniques to instantiate, parse, traverse, demonstrate correctness, or use these computational objects.
Credits: 4Prerequisites:
CpSc 140 Introduction to Programming Principles
And Math 120 Intermediate Algebra
Course Outline: CpSc 311
CpSc 317: Scripting Languages
This course emphasizes programming using scripting languages for the purpose of collecting and manipulating system information by system administrators and managers. Programming concepts such as data types and control structures will be discussed as well as operating system commands. A variety of languages and utilities will be discussed such as the Bourne shell, Perl, awk, and the Common Gateway Interface. The student is expected to have programming experience and knowledge of the Unix and Windows environments.
Credits: 3Prerequisites:
CpSc 207 System Software and Architecture for End Users
And CpSc 217 Structured and Dynamic Web Programming
Course Outline: CpSc 317
CpSc 323: Database Systems
Database Systems is a study of relational database concepts as applied to comprehensive information systems. These concepts include data design; modeling; normalization; the use of Structured Query Language (SQL) to define, manipulate and test the database; programmatic access to a database; and practical issues faced by database developers.
Credits: 3Prerequisites:
CpSc 130 Introduction to Programming and Information Systems
Or CpSc 140 Introduction to Programming Principles
Or CpSc 210 Productivity Software
Course Outline: CpSc 323
CpSc 327: Systems Administration and Security
Students will learn administration techniques for at least two popular computer operating systems, with special attention to system security. Techniques for managing networking, remote printing, storage allocation, account management, and backup will be discussed. Common techniques for breaching system security, and methods of defense against such attacks, will be emphasized.
Credits: 3Prerequisites: CpSc 317 Scripting Languages
Course Outline: CpSc 327
CpSc 343: File Processing
A practical study of information storage and retrieval using computer data files. Fundamental file structures and organization are emphasized and exemplified through a programming language on personal computers. Advanced file structures and organizations are discussed.
Credits: 3Prerequisites: CpSc 246 Advanced Programming Principles
Course Outline: CpSc 343
CpSc 358: Simulation
Models of real-life phenomena are programmed with a current simulation language. These are run and adjusted for accurate prediction and explanation. Other simulation languages are surveyed, and needed statistical background is reviewed.
Credits: 3Prerequisites:
CpSc 140 Introduction to Programming Principles
And Statistics Course
Course Outline: CpSc 358
CpSc 365: Management Information Systems
Managerial and technological issues that are necessary to understand, establish, manage and use information systems in all functional areas of organizations.
Credits: 3Prerequisites:
CpSc 210 Productivity Software
And Mgmt 351 Organizational Behavior
Course Outline: CpSc 365
CpSc 370: Computer Organization
The fundamental elements of digital logic and their use in computer construction, different kinds of data representation, elements of machine and assembly language programming and the interaction between the hardware design and the instruction set architecture of the computer.
Credits: 3Prerequisites: CpSc 246 Advanced Programming Principles
Course Outline: CpSc 370
CpSc 374: Algorithms and Data Structures
This course establishes a foundation for the systematic study of algorithms and data structure. The integration for these two concepts into a single organizational structure emphasizes that algorithms and data structures are inseparably inter-twined. This course builds and elaborates on the concepts introduced in CpSc 146 and 246.
Credits: 3Prerequisites: CpSc 246 Advanced Programming Principles
Course Outline: CpSc 374
CpSc 376: Programming Languages
Programming languages are studied from the view of users. Features of common computer languages are surveyed along with developments in newer languages. The goal is deeper understanding of computer languages. Topics include compilation, interpretation, data types, data structures, binding, scope, control mechanisms, conversions, storage management, reliability, portability, modularity, documentation, implementation methods, and language extensibility.
Credits: 3Prerequisites: CpSc 246 Advanced Programming Principles
Course Outline: CpSc 376
CpSc 378: Theory of Computation
Both the classical and contemporary theories of computation will be discussed in this course. The topics covered include the theory of automata and formal languages, computability by Turing machines and recursive functions, uncomputability, and proof of correctness of code.
Credits: 3Prerequisites:
CpSc 246 Advanced Programming Principles
And MATH 131 Discrete Mathematics
Or CpSc 311 Discrete Computational Structures
Course Outline: CpSc 378
CpSc 413: Systems Analysis
A course in computer-based information systems. Course content includes: foundations of information science, techniques for system development, information architectures, and resource allocations. Case studies are discussed and utilized as class projects.
Credits: 3Prerequisites: CpSc 323 Database Systems
Course Outline: CpSc 413
CpSc 423: Computer Networks
This is an introduction to computer networks and data communications. Course content includes: the layered model; transmission and multiplexing; data link protocols; packet, point-to-point, and satellite transmission; local area networks; security and privacy. Examples of some well-known networks will be studied.
Credits: 3Prerequisites:
CpSc 246 Advanced Programming Principles
Or CpSc 217 Structured and Dynamic Web Programming
Course Outline: CpSc 423
CpSc 427: Interface Design
This Information Technology major course uses graphical user interface design concepts to introduce interface design possibilities. This senior-level course requires students to produce an intricate interface that utilizes systems design, information management, systems administration & security, and programming concepts from lower-level courses. This course is intended as a capstone course that introduces human user interface theory and practice.
Credits: 3Prerequisites:
CpSc 413 Systems Analysis
And CpSc 317 Scripting Languages
Course Outline: CpSc 427
CpSc 443: Software Project Management
An introduction to project management in the information systems, or IT development, area. Provides an understanding of the purpose, methods and benefits of process management by exposing the student to the concepts, practices, processes, tools and techniques used in process management for software development.
Credits: 3Prerequisites: CpSc 323 Database Systems
Course Outline: CpSc 443
CpSc 450: Internship
An in-depth study of the critical issues related to the computerization of society. Ethical, legal, and moral issues raised by the evolution of computer technology will be discussed.
Credits: 3Prerequisites: Advanced Standing
Course Outline: CpSc 450
CpSc 456: Introduction to Computer Graphics
This course introduces the basics of interactive computer graphics including software and hardware requirements for computer graphics systems, graphics data structures, algorithms and programming languages, raster and random display devices, and graphics applications. Students will work with dedicated graphics computers in completing laboratory exercises and course projects.
Credits: 3Prerequisites:
CpSc 374 Algorithms and Data Structures
Or Permission of the Instructor
Course Outline: CpSc 456
CpSc 464: Principles of Concurrent Programming and Operating Systems
An introduction to operating systems with emphasis on fundamental principles. These include store management, processor management, file systems and input/output. Laboratory exercises are assigned using a language that supports concurrency. Distributed and "real time" illustrations are used, as well as standard operating system illustrations.
Credits: 3Prerequisites:
CpSc 370 Computer Organization
And CpSc 374 Algorithms and Data Structures
And CpSc 376 Programming Languages
Course Outline: CpSc 464
CpSc 466: Compiler Design and Implementation
This is an introduction to language translation. Topics include specification of languages and its relation to automata, lexical analysis, finite state machines, context free languages, LL and LR parsing methods, syntax directed translation, error recovery, code generation, and portability.
Credits: 3Prerequisites:
CpSc 370 Computer Organization
And CpSc 374 Algorithms and Data Structures
And CpSc 376 Programming Languages
And CpSc 378 Theory of Computation
Course Outline: CpSc 466
CpSc 474: Computer Architecture
Architectural features of computer systems are studied. Central processors, storage systems, various forms of parallelism, microcode, and system performance are included as central topics. Hardware support for vector operations, programming languages, concurrency, and distributed processing are included, along with salient architectural features of concurrent integrated processors.
Credits: 3Prerequisites:
CpSc 370 Computer Organization
And CpSc 374 Algorithms and Data Structures
Course Outline: CpSc 474
CpSc 476: Artificial Intelligence
A survey of artificial intelligence topics including heuristic programming, search techniques, knowledge representation, expert systems, vision and speech in automators, pattern recognition and robotics.
Credits: 3Prerequisites: CpSc 374 Algorithms and Data Structures
Or Permission of the Instructor
Course Outline: CpSc 476
CpSc 478: Analysis of Algorithms
An advanced study of algorithms and data structures. Analysis of algorithms, space and time complexity, and the NP classes will be considered. Significant illustrative individual or group programming projects are required. Examples may be drawn from heuristic programming, encipherment, natural language processing, object code generation, combinatorial analysis, graphics, robotics, relational databases, or other algorithmic issues of current importance.
Credits: 3Prerequisites:
CpSc 374 Algorithms and Data Structures
Or Permission of the Instructor
Course Outline: CpSc 478
CpSc 488: Software Engineering
The course is the study of software engineering principles and design. The course will emphasize requirement analysis, design, testing, debugging and implementation of a semester long project. Students will work in groups for the project to be implemented. There will be multiple phases for the design and implementation of the project. The project will be implemented using a standard programming environment.
Credits: 3Prerequisites: CpSc 374 Algorithms and Data Structures
Or Permission of the Instructor
Course Outline: CpSc 488
CpSc 490: Independent Study
Supervised study in a special interest area. Prerequisites: Two computer science courses selected from 370 or above, permission of the instructor, departmental chairperson, and dean of the college where the study will be conducted.
Credits: 1 - 3CpSc 498: Selected Topics
The in-depth examination of a specific topic. For different topics, this course may be repeated for required elective credits toward a computer science major or minor.
Credits: 3Prerequisites: Permission of the Instructor
CpSc 498b: Topics in Computer Science: Machine Learning and Robotics
A survey of artificial intelligence topics including heuristic programming, search techniques, knowledge representation, expert systems, vision and speech in automators, pattern recognition and robotics.
Credits: 3Prerequisites: CpSc 374 Algorithms and Data Structures
Course Outline: CpSc 498b
CpSc 498c: Topics in Computer Science: Compiler Transformations
The in-depth examination of a specific topic. For different topics, this course may be repeated for required elective credits toward a computer science major or minor.
Credits: 3Prerequisites: Permission of the Instructor
Course Outline: CpSc 498c
