College of Informatics

Department of Computer Science

CSC Courses

Course ID Course Description

CSC 150

Computer Concepts and Applications (3,0,3)

Survey of computer technology and computer science; basic practice with contemporary office applications; design of simple web pages; topics in computer ethics. PREREQ: C or better in MAH 099 or placement. Note: Effective Fall 2008 this course has been replaced by INF 101. INF 101

CSC 270

Mathematics Software Programming (3,0,3)

Programming and problem solving with a high-level mathematical software package; variables, control, modularity, processing of lists and vectors; recursion; visualization of functions; basic numerical and symbolic computation; simulation. PREREQ: C or better in MAT 121. MAT 121

CSC 299

Directed Readings/Independent Study (1-3 semester hours)

PREREQ: consent of instructor.

CSC 301

Web Programming (3,0,3)

Design of interactive web applications and web sites containing dynamic content; software design for web-based clientserver applications and database interaction; client-side and server-side techniques; language specific design issues. PREREQ: C or better in INF 260, and INF 286. INF 260, INF 286

CSC 325

Introduction to Neural Networks and A.I. (3,0,3)

Survey of concepts in artificial neural networks for associative memory and learning; software simulations applied to sample problems; logic-based artificial intelligence; approximate reasoning; search concepts and problems, the limits of machine intelligence. PREREQ: INF 260 or BIO 370 or PSY 311, or consent of instructor. BIO 370, INF 260, PSY 311

CSC 360

Object-Oriented Programming II (3,0,3)

Intermediate object-oriented programming concepts and practice: inheritance, basic graphical user interface elements; introduction to recursion; implementation of linked lists; use of basic container types. PREREQ: C or better in INF 260 and MAT 119. INF 260, MAT 119

CSC 362

Computer Systems (3,0,3)

ANSI C, pointers, pointer arithmetic; dynamic memory allocation; introduction to instruction sets, registers, addressing modes and assembly language; binary representations and bit manipulations; computer organization concepts. PREREQ: C or better in CSC 360. CSC 360

CSC 364

Data Structures and Algorithms (3,0,3)

Analysis and efficient implementation of container types such as stacks, queues, hash tables, search trees, and graphs; sorting algorithms. PREREQ: C or better in CSC 360. CSC 360

CSC 375

Intermediate Topics in Programming (1-3, 0, 1-3)

A project-oriented introduction to a contemporary programming language or development platform. PREREQ: varies with topic.

CSC 394

Intermediate Topics: Computer Science (3,0,3)

Various topics in computer science. PREREQ: varies with topic (see Schedule of Classes) CSC 399 Intermediate Directed Readings/Independent Study (1-3 sem. hrs.) PREREQ: consent of instructor.

CSC 399

Intermediate Directed Readings/Independent Study (1-3 sem.)

PREREQ: consent of instructor

CSC 402

Advanced Programming Methods (3,0,3)

High-performance OO and generic programming in C++; concurrent and distributed programming; STL; multi-paradigm design patterns; extensive practice with sophisticated programming projects. PREREQ: C or better in CSC 362 and 364. CSC 362, CSC 364

CSC 407

Concepts of Programming Languages (3,0,3)

History of high-level languages; grammars and the compilation process; axiomatic semantics; language design and implementation issues; procedural, object-oriented, functional, and logic programming paradigms; case studies in important contemporary languages. PREREQ: C or better in CSC 362. CSC 362

CSC 410

Compiler Construction (3,0,3)

Lexical analysis; parsing; code generation; compiler project. PREREQ: C or better in CSC 402 and MAT 385. CSC 402, MAT 385

CSC 425

Artificial Intelligence (3,0,3)

Concepts and techniques of artificial intelligence; heuristic search, expert systems, AI languages, natural language processing, and elementary neural networks. PREREQ: C or better in CSC 364. CSC 364

CSC 433

Computer Networks (3,0,3)

Direct link networks, packet switching networks, internet working (IP), end-to-end protocols (TCP), Windows socket programming. PREREQ: C or better in CSC 362 and INF 284. CSC 362, INF 284

CSC 440

Software Engineering (3,1,4)

Techniques in computer software specification, design, implementation, testing, documentation, and maintenance; development of a large-scale software project by students working in teams. PREREQ: C or better in CSC 402 and senior standing. CSC 402

CSC 450

Database Management Systems (3,0,3)

Design and implementation of relational database applications; implementation of various parts of a relational database management system; Structured Query Language, entity-relationship model, normal forms, concurrency control, crash recovery, indexing, evaluation of relational operators, relational query optimization. PREREQ: C or better in CSC 360 and INF 282. CSC 360, INF 282

CSC 460

Operating Systems (3,0,3)

Internal structures and algorithms for file systems, I/O, memory management and process scheduling; examples drawn from contemporary operating systems such as UNIX and Windows NT. PREREQ: C or better in CSC 362 and CSC 364. CSC 362, CSC 364

CSC 462

Computer Architecture (3,0,3)

Implementation of control unit and arithmetic-logic unit, microprocessor organization and design, main memory and cache organizations, I/O subsystem; RISC vs. CISC instruction sets, pipelining, parallel processing; mechanisms for evaluating computer architectures and microprocessor performance. PREREQ: C or better in CSC 362. CSC 362

CSC 464

Design and Analysis of Algorithms (3,0,3)

Proofs of time and space bounds on important algorithms; advanced algorithms on graphs, sequences and sets; divide-and-conquer and dynamic programming; randomized algorithms; parallel algorithms. PREREQ: C or better in CSC 364 and MAT 385. CSC 364, MAT 385

CSC 480

Computer Graphics (3,0,3)

Basic concepts of two-and three-dimensional graphics including incremental methods, geometric transformations, windowing and clipping, hidden line and surface algorithms, and animations. PREREQ: C or better in CSC 364 and MAT 234. CSC 364, MAT 234

CSC 482

Computer Security (3,0,3)

Theory and algorithms of computer security, including security policies, access control, secure programming, identity and authentication, information flow, and information assurance techniques. PREREQ: C or better in CSC 360. CSC 360

CSC 483

Cryptology (3,0,3)

Cryptology of classical ciphers, mathematical foundations of cryptology, Hill cipher, DES and AES, cryptography of public key cryptosystems. PREREQ: MAT 234 or CSC 362 or CSC 364. CSC 362, CSC 364, MAT 234

CSC 485

Theory of Computation (3,0,3)

Regular and context-free grammars; Turing machines; recursive and recursively enumerable languages; uncomputability; the Chomsky hierarchy; complexity classes such as P, NP, and NP-complete. PREREQ: C or better in MAT 385. MAT 385

CSC 493

Research Seminar in Computer Science (1-3, 0, 1-3)

Examination and presentation of contemporary research work in computer science. PREREQ: C or better in MAT 385 and CSC 364, and consent of instructor. CSC 364, MAT 385

CSC 494

Advanced Topics: Computer Science (3,0,3)

Various advanced topics in computer science. PREREQ: varies with topic (see Schedule of Classes).

CSC 499

Advanced Directed Readings/Independent Study (1-3 semester hours

PREREQ: consent of instructor.

CSC 501

Intermediate Programming Workshop (3,0,3)

Intensive review of programming and data structures from an object-oriented perspective using the C++ language. Intended for students whose computer programming skills need refreshing or updating. PREREQ: graduate standing; background in computer programming and data structures.

CSC 502

Advanced Programming Methods (3,0,3)

High-performance OO and generic programming in C++; concurrent and distributed programming; STL; multi-paradigm design patterns; extensive practice with sophisticated programming projects. PREREQ: Regular admission to MSCS program.

CSC 507

Concepts of Programming Languages (3,0,3)

History of high-level languages; grammars and the compilation process; axiomatic semantics; language design and implementation issues; procedural, object-oriented, functional, and logic programming paradigms; case studies in important contemporary languages. PREREQ: Regular admission to MSCS program.

CSC 510

Compiler Construction (3,0,3)

Lexical analysis; parsing; code generation; compiler project. PREREQ: Regular admission to MSCS program.

CSC 525

Artificial Intelligence (3,0,3)

Concepts and techniques of artificial intelligence; heuristic search, expert systems, AI languages, natural language processing, and elementary neural networks. PREREQ: Regular admission to MSCS program.

CSC 533

Computer Networks (3,0,3)

Direct link networks, packet switching networks, internet working (IP), end-to-end protocols (TCP), Windows socket programming. PREREQ: Regular admission to MSCS program.

CSC 540

Software Engineering (3,1,4)

Techniques in computer software specification, design, implementation, testing, documentation, and maintenance; development of large-scale project by students working in teams. PREREQ: Regular admission to MSCS program and CSC 502. CSC 502

CSC 550

Database Management Systems (3,0,3)

Database design, normal forms, concurrent processing, recovery, security, relational model, Structured Query Language, hierarchical and network models. PREREQ: Regular admission to MSCS program.

CSC 560

Operating Systems (3,0,3)

Internal structures and algorithms for file systems, I/O memory management and process scheduling; examples drawn from contemporary operating systems such as Unix and Windows. PREREQ: Regular admission to MSCS program.

CSC 562

Computer Architecture (3,0,3)

Implementation of control unit and arithmetic-logic unit, microprocessor organization and design, main memory and cache organizations, I/O subsystem; RISC vs. CISC instruction sets, pipelining, parallel processing; mechanisms for evaluating computer architectures and microprocessor performance. PREREQ: Regular admission to MSCS program.

CSC 564

Design and Analysis of Algorithms (3,0,3)

Proofs of time and space bounds on important algorithms; advanced algorithms on graphs, sequences and sets; divide-and-conquer and dynamic programming; randomized algorithms; parallel algorithms. PREREQ: Regular admission to MSCS program.

CSC 580

Computer Graphics (3,0,3)

Basic concepts of two- and three-dimensional graphics including incremental methods, geometric transformations, windowing and clipping, hidden line and surface algorithms, and animations. PREREQ: Regular admission to MSCS program and MAT 234 or equivalent. MAT 234

CSC 582

Computer Security (3,0,3)

Theory and algorithms of computer security, including security policies, access control, secure programming, identity and authentication, information flow, and information assurance techniques. PREREQ: Regular admission to MSCS program.

CSC 584

Cryptography (3,0,3)

Cryptology of classical ciphers, DES and AES, public key cryptosystems, authentication and cryptographic hash functions. PREREQ: consent of instructor.

CSC 585

Theory of Computation (3,0,3)

Regular and context-free grammars; Turing machines; recursive and recursively enumerable languages; uncomputability; the Chomsky hierarchy; complexity classes such as P, NP, and NP-complete. PREREQ: Regular admission to MSCS program.

CSC 593

Research Seminar: Computer Science (1-3,0,1-3)

Examination and presentation of contemporary research work in computer science. PREREQ: Regular admission into MSCS program.

CSC 594

Intermediate Graduate Topics: Computer Science (3,0,3)

Various advanced topics. PREREQ: Regular admission to MSCS program and consent of instructor.

CSC 599

Intermediate Independent Study (1-3,0, 1-3)

PREREQ: Regular admission to MSCS Program, consent of instructor.

CSC 601

Advanced Programming Workshop (3,0,3)

Practitioners workshop on creative approaches to challenging, realistic programming problems; advanced object-oriented and generic design patterns; use of appropriate tools and critical evaluation of solutions. PREREQ: CSC 502. CSC 502

CSC 625

Advanced Artificial Intelligence (3,0,3)

In-depth study of current topics in artificial intelligence such as machine learning, pattern recognition, intelligent agents, data mining, and natural language understanding. Specific topics may vary by semester. PREREQ: CSC 525. CSC 525

CSC 633

Advanced Computer Networks (3,0,3)

Content distribution, routers and queue management, multicast routing, mobility and the network layer, wireless links, multimedia networking. PREREQ: CSC 502, CSC 533, and CSC 560. CSC 502, CSC 533, CSC 560

CSC 640

Advanced Software Engineering (3,0,3)

Effective software development methods: software design, quality management, improving the software process. PREREQ: CSC 540. CSC 540

CSC 645

Software Interface Design and Human Factors (3,0,3)

Graphical user interfaces for computer applications; usability engineering research and practice; software tools; design and implementation projects. PREREQ: CSC 540. CSC 540

CSC 650

Advanced Database Systems (3,0,3)

Continuation of CSC 550; advanced database programming and data modeling; object- based systems; parallel systems; data warehousing and other advanced topics. PREREQ: CSC 502 and CSC 550 or equivalent. CSC 502, CSC 550

CSC 660

Advanced Operating Systems (3,0,3)

Advanced operating system capabilities such as concurrency, networking, distributed file systems, clustering, and multiprocessing; case studies in design and internal organization of contemporary operating systems. PREREQ: CSC 560 and CSC 502. CSC 502, CSC 560

CSC 666

Secure Software Engineering (3,0,3)

Secure software development processes, threat modeling, security requirements and policies, secure architecture and design, secure coding principles, verification and validation of software security. PREREQ: CSC 540 and CSC 582. CSC 540, CSC 582

CSC 670

Social Implications of Computing (3, 0, 3)

Social, ethical, and legal issues arising in development and dissemination of computer software and its associated technologies; critical thinking and written expression. Assumes experience in professional software development. PREREQ: 6 hours of graduate level coursework in the MSCS or MBI program, or consent of instructor.

CSC 680

Advanced Computer Graphics (3, 0, 3)

Representing curves and surfaces; using color, illumination, shading; visible-surface determination; advanced modeling techniques; collision detection and intersection geometry; virtual physics; real-time rendering, scene graph architectures, and high-performance game engine design. PREREQ: CSC 480 and CSC 502. CSC 480, CSC 502

CSC 682

Advanced Computer Security (3,0,3)

Advanced topics in computer security including selections from the following areas: access control, cryptology of modern ciphers, critical infrastructure protection, information warfare, intrusion detection, language-based security, security protocols, software security, steganography, and usable security. PREREQ: CSC 582. CSC 582

CSC 685

Logic and Computation (3,0,3)

Introduction to formal reasoning applied to computer science; propositional and predicate logic; algebraic specification of abstract data types; program correctness; survey of computability theory. PREREQ: CSC 485 and CSC 601. CSC 485, CSC 601

CSC 691

Thesis Direction (1-6,0,1-6)

Guided thesis direction for students electing the thesis option for the MS in Computer Science. PREREQ: Consent of MSCS program director.

CSC 694

Advanced Graduate Topics in Computer Science (3,0,3)

Various topics. May be repeated for credit when topics vary. PREREQ: regular admission to MSCS program and consent of instructor.

CSC 699

Directed Readings/Independent Study (1-3 semester hours)

PREREQ: consent of instructor

 

Informatics Courses

In addition to Computer Science courses, students in this major take a selection of Informatics courses.

Course ID Course Description

INF 101

Computer Literacy and Informatics (3,0,3)

Understanding the basic concepts of informatics in a context including computer technology; examination of hardware and software; impact computers have on society including employment, privacy, ethics, and security; working with information as a resource. The course includes computer laboratory exercise in Office (Word, Excel, PowerPoint, Access) and Internet technology applications.

INF 101H

Honors Computer Literacy and Informatics (3,0,3)

Application of computer hardware, software, and computing techniques to common business problems and activities; microcomputers and business productivity packages including word processors, spreadsheets, databases, and other systems and applications software; extensive hands- on work in a graphical user environment.

INF 110

Business Programming (3,0,3)

Strategies, techniques, and tools for professional programming in a business environment; problem definition, software design, program design, and system implementation; development of systems of programs to implement common business applications.

INF 120

Elementary Programming (3,0,3)

An elementary introduction to programming for those with no previous programming experience. Emphasis on understanding how to read and write basic procedural programs, and on understanding the concepts of algorithm and execution. PREREQ: C or better in MAH 099 or placement. MAH 099

INF 186

Elementary Web Design (3,0,3)

An introduction to web design and development for majors outside the informatics fields. Web page creation and HTML; site organization and best practices; introduction to cascading style sheets. No credit after INF 286.

INF 194

Topics: Informatics (3,0,3)

Various topics in Informatics. PREREQ: varies with topic (see Schedule of Classes).

INF 260

Object-Oriented Programming I (3,0,3)

Elementary object-oriented programming concepts and practice: types, decisions, loops, methods, arrays, classes; design and problem-solving. An intensive introduction intended for students with programming experience. PREREQ: C or better in MAT 109 or placement; C or better in INF 110 or INF 120 or placement. INF 110, INF 120

INF 260L

Object-Oriented Programming Laboratory (0,1.5,1)

Laboratory to accompany INF 260 in which students gain hands-on experience in programming and using programming tools such as debuggers. COREQ: INF 260. IN F260

INF 282

Introduction to Databases (3,0,3)

Core concepts for the design, creation, and manipulation of relational databases. Analysis of data requirements, conceptual modeling, definition of the relational model, relational database design and normalization, and database implementation; manipulation of relational databases using relational algebra with SQL. PREREQ: C or better in MAT 109 (or higher). MAT 109

INF 284

Intro to Networks and Data Communication (3,0,3)

Introduction to computer networking; data communications; data transmission, data encoding, data link control; communications network techniques; network protocols; wireless networking; network server configuration; and planning and deploying a local area network. PREREQ: C or better in MAT 109 (or higher) and INF 110, INF 120 or CIT 140. CIT 140, INF 110, INF 120

INF 286

Introduction to Web Development (3,0,3)

An introduction to web design and development for majors in the informatics fields. Web page creation and HTML; site organization and best practices; e-business planning, models and strategies; overview of SML and CSS; introduction to client-side and server-side programming. PREREQ: C or better in MAT 109 (or higher) and INF 110 or INF 120. INF 110, INF 120

INF 294

Topics: Informatics (3,0,3)

Various topics in Informatics. PREREQ: varies with topic (see Schedule of Classes.)

INF 345

Wireless Commerce Technology (3,0,3)

This class covers content such as the basics of wireless technology, standards, and devices, and the development of environments for creating mobile and wireless applications. The class will also discuss the opportunities for wireless technology in business and consumer services, advanced messaging (SMS and IM), wireless CRM, security and privacy issues, and business models. PREREQ: Junior standing or approval of instructor.

INF 394

Intermediate Topics: Informatics (3,0,3)

Various topics in Informatics. PREREQ: varies with topic (see Schedule of Classes.)

INF 444

Social Informatics (3,0,3)

Examination of the roles of individuals, organizations, and governments relative to changes brought by new communication and computer technologies to the home, workplace and society. Topics include free speech, privacy, intellectual property, sovereignty, globalization, and technology and the individual. These topics are examined from multiple theoretical perspectives.

Contact Dorothy Wright for more information. Phone: (859) 572-5333 • E-Mail