University Catalog

CSCI 169. Computers in Society

Credits: 3 View Details
Description: Same as CNA 169. History, moral and social implications of computer technology, problem solving, extensive hands-on microcomputer experience involving software packages (including word processing, database management, spreadsheets).
Semester Offered: Fall| Spring| Summer


CSCI 200. Elements of Computing

Credits: 3 View Details
Description: Problem-solving strategies, top-down design, and computer algorithms. Files and editing. Documentation and testing. Control structures, input and output, and functions. Boolean functions and circuits. Social considerations.
Prerequisites: MATH 196 or Coreq.: MATH 112 or test out of MATH 112 via math placement exam.
Corequisites:
Semester Offered: Fall| Spring| Summer
Goal Area: GOAL AREA 4: MATHEMATICAL THINKING & QUANTITATIVE REASONING


CSCI 201. Computer Science 1

Credits: 4 View Details
Description: Data abstraction, elementary data structures, and dynamic data structures. Sorting and searching. Error handling and recovery. Time and space analysis of algorithms and big-O notation. Linked and sequential implementations of the list, stack, queue, set, and matrix abstract data types. Time management.
Prerequisites: MATH 112 or equivalent and either CSCI 200, ECE 102, CNA 267, IS 251 or permission of instructor
Semester Offered: Fall| Spring


CSCI 220. Computer Architecture I

Credits: 4 View Details
Description: CPU architecture, number systems, digital circuit design, assembly language programming, VHDL programming.
Prerequisites: CSCI 200 or CSCI 201, MATH 115 or MATH 211
Corequisites: CSCI 201
Semester Offered: Fall| Spring


CSCI 260. Programming in C

Credits: 2 View Details
Description: Study of the features of the C programming language. Application of C in problem solving.
Prerequisites: Programming experience in a block-structured language.
Semester Offered: Fall| Spring| Summer


CSCI 261. Programming in C++

Credits: 2 View Details
Description: Study of the features of the C++ programming language. Application of C++ in problem solving.
Prerequisites: CSCI 260 or equivalent
Semester Offered: Fall| Spring| Summer


CSCI 262. Programming in Java

Credits: 2 View Details
Description: Study of the Java programming language features. Applications of Java in problem solving.
Prerequisites: Introductory-level programming experience. This course may not be used to satisfy any of the requirements of the computer science undergraduate programs.
Semester Offered: Fall| Spring| Summer


CSCI 263. Advanced Programming in C

Credits: 2 View Details
Description: Study of advanced features of C programming language. Application of C in problem solving.
Prerequisites: Programming in C. This course may not be used to satisfy any of the requirements of the computer science undergraduate program.
Semester Offered: Fall| Spring| Summer


CSCI 264. Advanced Programming in C++

Credits: 2 View Details
Description: Study of advanced features of C++ programming language. Application of C++ in problem solving.
Prerequisites: Programming in C++. This course may not be used to satisfy any of the requirements of the computer science undergraduate programs.
Semester Offered: Fall| Spring| Summer


CSCI 265. Advanced Programming in Java

Credits: 2 View Details
Description: Study of advanced features of Java programming language. Application of Java in problem solving.
Prerequisites: Programming in Java. This course may not be used to satisfy any of the requirements of the computer science undergraduate programs.
Semester Offered: Fall| Spring| Summer


CSCI 266. Programming in C#.net

Credits: 2 View Details
Description: Study of the C# programming language features. Applications of C# in problem solving. This course may not be used to satisfy any of the requirements of the computer science undergradaute programs.
Prerequisites: Introductory-level programming experience.
Semester Offered: Fall| Spring| Summer


CSCI 301. Computer Science 2

Credits: 4 View Details
Description: Recursion and recurrence. Trees, binary trees, 2/3 trees, directed and undirected graphs, searching and sorting, program layering. Sequential file processing, indexed files, and hashing techniques.
Prerequisites: CSCI 201
Corequisites: MATH 273
Semester Offered: Fall| Spring


CSCI 310. Introduction to Operating Systems

Credits: 3 View Details
Description: Multiprogramming operating systems concepts, system structures, functions, and services. Process scheduling and synchronization. Primary storage management. Secondary storage organization, directory and file management concepts. Access and information security. Performance analysis.
Prerequisites: CSCI 220 or ECE 322; CSCI 301
Corequisites: CSCI 320 or ECE 323
Semester Offered: Fall| Spring


CSCI 311. Systems Programming

Credits: 2 View Details
Description: System calls for process creation, destruction, management and synchronization, and file and directory management. Operating systems implementation and installation.
Prerequisites: CSCI 310
Semester Offered: Fall| Spring


CSCI 320. Computer Architecture 2

Credits: 4 View Details
Description: Design of arithmetic and sequential circuits, instruction sets, and CPU controllers. Memory organization, pipelined processors, and I/O interface. Advanced assembly language programming.
Prerequisites: CSCI 220, MATH 273
Semester Offered: Fall| Spring


CSCI 330. Programming Language Concepts

Credits: 3 View Details
Description: Survey of several high-level languages, their compilers and inherent data structures. Formal description of high-level languages.
Prerequisites: CSCI 301, CSCI 320
Corequisites: CSCI 320
Semester Offered: Spring


CSCI 331. Software Systems

Credits: 3 View Details
Description: Problem solving strategies and concepts applied in the context of issues associated with the design and implementation of software systems using a combination of current software packages/environments. Subjects addressed include file processing, data modeling and mapping to storage structures, data base systems, and software design and implementation.
Prerequisites: CSCI 220 OR ECE 221; CSCI 301
Semester Offered: Fall


CSCI 332. Computing Ethics

Credits: 3 View Details
Description: Issues of software reliability and risk, private property, gender, minority, multicultural perspectives, privacy, the effect of value systems on computer science. Issues of computer ethics affecting individuals and society.
Prerequisites: Completion of all other 300-level computer science requirements or permission of instructor.
Semester Offered: Spring


CSCI 334. Communication for Computing Sciences

Credits: 1 View Details
Description: Oral and written communication in the context of the computing sciences.
Prerequisites: CSCI 301
Corequisites: CSCI 331 or any CSCI 400-level course
Semester Offered: DEMAND


CSCI 402. Introduction to the Theory of Computation

Credits: 3 View Details
Description: Regular languages, finite-state automata, context-free languages, grammars, push-down automata, Turing machines, Church's thesis, the halting problem and computability.
Prerequisites: CSCI 320 and MATH 253 or MATH 373
Semester Offered: DEMAND


CSCI 403. Theory, Design and Construction of Compilers

Credits: 5 View Details
Description: Formal grammars, lexical analysis, symbol tables, syntax analysis and parsing, type checking, code generation, code optimization.
Prerequisites: CSCI 320, CSCI 330, MATH 373
Semester Offered: DEMAND


CSCI 404. Design and Analysis of Algorithms

Credits: 3 View Details
Description: Computing time functions; maximum, minimum and average computing time of various algorithms.
Prerequisites: CSCI 331, MATH 253 or 373
Semester Offered: DEMAND


CSCI 406. Formal Methods

Credits: 3 View Details
Description: Formal methods for specification, validation and verification in software development life cycle. Specification techniques. Formal methods integration with programming languages. Application of formal methods in requirements and safety analysis, testing, software reuse.
Prerequisites: CSCI 311, CSCI 330, or permission of instructor.
Semester Offered: DEMAND


CSCI 411. Database Theory and Design

Credits: 3 View Details
Description: Principles of database systems, theory of relational databases, design techniques, concurrency control and recovery, object-oriented systems.
Prerequisites: CSCI 331
Semester Offered: DEMAND


CSCI 412. Distributed Systems Principles

Credits: 3 View Details
Description: Distributed systems architecture. Process synchronization. Distributed operating systems, file systems and database systems. Projects.
Prerequisites: CSCI 311
Semester Offered: DEMAND


  Back
The contents in this catalog and other university publications, policies, fees, bulletins or announcements are subject to change without notice and do not constitute an irrevocable contract between any student and St. Cloud State University.