Computer Science

UW-PARKSIDE 2019-21 CATALOG
Molinaro 248 • 262-595-2314

College:
Business, Economics, and Computing

Degrees and Programs Offered:
Bachelor of Science
Major - Computer Science
Minor - Computer Science
Minor - Web Development
Certificate - Mobile Development
Certificate - UNIX System Administration
Certificate - World Wide Web Publishing
Certificate - Cyber Security
Certificate - Data Science

Student Organizations/Clubs:
Computer Science Club

Career Possibilities:
Software engineer, systems programmer, applications programmer, network administrator, systems developer, systems analyst, web developer, security analyst, information systems auditor, quality assurance analyst.

Department Overview

The computer science department offers strong academic programs that prepare students for work and continuing advancement in information technologies. The pervasive influence of computers in our everyday lives and the strategic importance of computing systems in our economy and government require an increasingly educated and technologically literate citizenry as well as highly skilled and knowledgeable computing professionals who understand, design, implement and manage complex information systems. Since the inception of the computer science major at UW-Parkside in 1979, graduates have found highly successful careers in computing and information technology throughout the region and the country.

Computing professionals must have a solid grounding of fundamentals as a basis for adapting to rapid changes in computing theory and practice. They must also have knowledge and experience with current methodologies which they can apply reliably to solve existing problems and to design new strategies and systems as the demand arises. They must be able to work cooperatively and to communicate effectively. Combining theory, practice, and collaboration, the computer science major at UW-Parkside prepares students for successful careers in computing and information systems and contributes to their growth as professionals.

Laboratory experiences are integral components of many of the department’s computer science courses. Computer science students use the laboratory’s high-performance workstations, servers, and printing facilities – available only to computer science majors – to carry out their programming and laboratory work.

The computer science major includes 63 credits in computer science, mathematics, and the sciences. In addition, computer science students must complete a computer science breadth package of 9 or more credits that includes courses in significant application domains such as science, mathematics, business or economics.

In collaboration with faculty in management information systems, the computer science department offers a master of science in computer and information systems (MSCIS). See the Graduate Programs section of this catalog for detailed MSCIS degree requirements, admissions information, and courses.

The computer science department and the mathematics department jointly offer a double major in computer science and mathematics. The degree requirements for this double major are listed below.

The computer science department also offers a computer science minor, a web development minor, and certificates in world wide web publishing, UNIX system administration, mobile development and cyber security.

Preparation for Graduate School

The computer science major is excellent preparation for students seeking to do graduate work in computer science. Such students may wish to supplement the minimum requirements for a computer science major with additional courses in mathematics and the sciences. Students considering graduate study in computer science are strongly encouraged to complete CSCI 431 as one of their electives.

Dual Degree BS and MSCIS Track

Computer science students who have finished the prerequisite courses for the MSCIS program and at least 40 credits within the CS major may apply for early admission to the MSCIS program. All admissions requirements, except having completed a bachelor’s degree, still apply. By concurrently enrolling in both undergraduate and graduate courses students may complete their MSCIS degree in a considerably shorter time than the 2 years generally required after completing their bachelor’s degree.

Internships

Many major employers and smaller businesses in the area hire UW-Parkside computer science students as interns in computing-related jobs. In addition to facilitating these informal non-credit bearing internships, the computer science department sponsors a credit-bearing internship program.  In a credit-bearing internship, the student, the computer science faculty, and the student’s supervisor collectively agree on the internship’s objectives; progress toward meeting these objectives is evaluated periodically throughout the term. Students should contact the department chair for more information.

Program Level Outcomes

The computer science program enables students to attain, by the time of graduation:

Reasoned Judgment
  1. An ability to apply knowledge of computing and mathematics appropriate to the discipline.
  2. An ability to analyze a problem, and identify and define the computing requirements appropriate to its solution.
  3. An ability to design, implement, and evaluate a computer-based system, process, component, or program to meet desired needs.
Social and Personal Responsibility
  1. An ability to function effectively on teams to accomplish a common goal.
  2. An understanding of professional, ethical, legal, security and social issues and responsibilities.
  3. An ability to analyze the local and global impact of computing on individuals, organizations, and society.
  4. Recognition of the need for and an ability to engage in continuing professional development.

Communication

  1. An ability to communicate effectively with a range of audiences.
  2. An ability to use current techniques, skills, and tools necessary for computing practice.

Requirements for the Computer Science Major (72-73 credits)

In addition to meeting the general university requirements of a UW-Parkside degree, students seeking to graduate with a major in computer science must satisfy the following:

  • Completion of computer science major requirements.
  • Attainment of a minimum UW-Parkside cumulative GPA of 2.50 in all courses eligible to meet the student’s computer science major requirements, including courses that meet the computer science major breadth requirement.
  1. Required Mathematics Course (5 credits)
    MATH 221 Calculus and Analytic Geometry I 5 cr
  2. Required Science Course (5 credits)
    Choose one 5 credit option:
    PHYS 201 General Physics I 5 cr
    OR    
         
    CHEM 101 General Chemistry I 4 cr
    AND    
    CHEM 103 General Chemistry Lab I 1 cr
  3. Required Major Courses (62-63 credits)
    1. Computer Science Courses (41 credits)
      CSCI/
      MATH 231
      Discrete Mathematics 3 cr
      CSCI 241 Computer Science I 5 cr
      CSCI 242 Computer Science II 4 cr
      CSCI 245 Assembly Language Programming 3 cr
      CSCI 309 Probability and Statistics 3 cr
      CSCI 333 Programming Languages 3 cr
      CSCI 340 Data Structures and Algorithm Design 3 cr
      CSCI 355 Computer Architecture 3 cr
      CSCI 370 Operating Systems 3 cr
      CSCI 380 Database Management Systems 3 cr
      CSCI 475 Software Engineering Principles and Practice I 3 cr
      CSCI 476 Software Engineering Principles and Practice II 3 cr
      CSCI 495 Computer Science Seminar 2 cr
    2. Elective Major Courses (12 credits)
      Choose four courses:
      CSCI 405 Artificial Intelligence 3 cr
      CSCI 420 Computer Graphics 3 cr
      CSCI 421 Computer Vision 3 cr
      CSCI 424 Networked Applications 3 cr
      CSCI 431 Computational Models 3 cr
      CSCI 435 UNIX System Administration 3 cr
      CSCI 440 Compiler Design and Implementation 3 cr
      CSCI 444 Event-Driven Programming 3 cr
      CSCI 445 Web Security 3 cr
      CSCI 467 Computability and Automata 3 cr
      CSCI 477 Computer Communications and Networks 3 cr
      CSCI 478 Network Security 3 cr
      CSCI 479 Information Systems Security 3 cr
      CSCI 480 Advanced Databases 3 cr
    3. Required Computer Science Breadth Requirement (9-10 credits)
      Students must complete a package of 9 or more credits outside of computer science in a coherent collection of courses that are relevant to computer science and that meet the approval of the computer science faculty. Several such packages have been pre-approved, in areas such as mathematics, the sciences, art, business and economics.  Pre-approved packages include:
      •  MATH 222 and 301
      • MATH 222 and PHYS 202

      • CHEM 102/104 and either CHEM 206 or 215

      • Select any 3 courses from: ACCT 201, BUS 272, FIN 330, MGT 349, or MKT 350

      • ECON 320 or 321, and two additional 300-level ECON courses

      • GEOG 350, 460 and 465

      • CRMJ 316, 380 and BUS 272

      • ART 105, 377 and 477
        Optionally, a student may submit an individually designed computer science breadth package of 9 or more credits for approval by the computer science faculty. See the department chair for details.

 

Requirements for the Computer Science/Mathematics Double Major (90-91 credits)

Students may satisfy graduation requirements for both computer science and mathematics by completing all required courses for computer science with 9 elective credits and PHYS 201, together with the following mathematics courses (which automatically satisfy the computer science breadth requirement):

Required Math Courses (30 credits)

MATH 222 Calculus and Analytic Geometry II 5 cr
MATH 223 Calculus and Analytic Geometry III 5 cr
MATH 301 Linear Algebra 4 cr
MATH 303 Set Theory, Logic and Proof 4 cr
MATH 317 Differential Equations and Their Applications 4 cr
     
MATH 350 Advanced Calculus 4 cr
OR    
MATH 367 Elementary Number Theory 4 cr
     
MATH 441 Abstract Algebra 4 cr

Students completing the computer science/mathematics double major are strongly encouraged to take CSCI 431 as one of their electives.
 

Course Audit Restrictions

Computer science courses are generally not available for audit.

Disruption of Studies

Normally, students must meet the major requirements in effect at the time they declare a major; however, students majoring in computer science who do not attend continuously may be subject to the major requirements in effect upon their return. In particular, students who do not complete (with a passing grade) a computer science course numbered above 241 for four consecutive semesters will be subject to the major requirements in effect upon their next registration for a computer science course.

Substitutions

Requests for course substitutions to meet the requirements of the computer science major need the approval of the computer science faculty. In the case of the computer science/mathematics double major, substitutions require the approval of both the computer science faculty and the mathematics faculty.

Transfer Credits

In addition to the minimum UW-Parkside cumulative GPA requirement of 2.50 for courses in the major, students with transfer credits applying to the computer science major must also attain a minimum cumulative GPA of 2.50 in all course work required, including transfer credits.

Part-Time Study

The computer science major is available to both full-time and part-time students. Classes meet throughout the day, including evenings. Evening classes are offered on a restricted rotation basis to permit persons working full time during the day to complete major requirements during off-the-job hours. Contact the Computer Science Department chair for details.

 

Requirements for the Computer Science Minor (26 credits)

The computer science department offers a minor in computer science. It is designed to meet the needs of students who are majoring in another field, but who desire a deeper understanding of computers and software. Students seeking to minor in computer science must attain a minimum UW-Parkside cumulative GPA of 2.50 in all courses eligible to meet the student’s computer science minor requirements.

  1. Required Mathematics Course (5 credits)
    MATH 221 Calculus and Analytic Geometry I 5 cr
  2. Required Computer Science Courses (15 credits)
    CSCI/
    MATH 231
    Discrete Mathematics 3 cr
    CSCI 241 Computer Science I 5 cr
    CSCI 242 Computer Science II 4 cr
         
    CSCI 340 Data Structures and Algorithm Design 3 cr
    OR    
    CSCI 380 Database Management Systems 3 cr
  3. Elective Courses (6 credits)
    At least 6 credits of CSCI courses numbered 333 or above, excluding CSCI 495.

 

Requirements for the Web Development Minor (27-29 credits)

The computer science department, in collaboration with the art and business departments, offers a minor in web development. The minor is designed for students who are seeking an in-depth technical understanding of website development and administration. Students completing the minor will be well situated to take on jobs as web programmers, web developers and web server administrators.

  1. Required Courses (24-26 credits)
    ART 105 Introduction to Graphic Design 3 cr
    ART 377 Interactive Design I 3 cr
    ART 477 Interactive Design II 3 cr
         
    CSCI 241 Computer Science I 5 cr
    OR    
    MIS 221 Business Programming I - Visual Basic 3 cr
         
    CSCI 220 Web Concepts I 3 cr
    CSCI 322 Web Concepts II 3 cr
    CSCI 433 Web Development Project 3 cr
         
    Choose one course:  
    ENGL 202 Technical Writing 3 cr
    ENGL 204 Writing for Business and Industry 3 cr
    COMM 255 Writing for Multimedia 3 cr
  2. Elective Course (3 credits)
    Choose one course:
    CSCI 380 Database Management Systems 3 cr
    CSCI 445 Web Security 3 cr
    MIS 328 Database Management Systems 3 cr
    MIS 422 Internet Programming 3 cr
    A pre-approved CSCI 490 or MIS 490 topic such as
    Web Services  3 cr

 

Requirements for the Cyber Security Certificate (9 credits)

The computer science department offers a certificate in cyber security for students interested in careers as an information systems auditor or security analyst. Our certificate is the first offered by a four-year university in Wisconsin that meets the Committee on National Security Systems National Training Standard for: Information Systems Security (INFOSEC) Professionals, NSTISSI No. 4011. With the growth of computer networking and the World Wide Web, cyber security has become of increasing importance to all computer users. Our certificate gives students a background in securing applications and systems software, desktop computers, servers, and the networks that connect them. The certificate is supported by a dedicated laboratory that is isolated from the rest of the campus network, allowing students to gain practical hands-on knowledge of the tools used to both attack and defend computers.

Choose Three Courses (9 credits):
CSCI 445 Web Security 3 cr
     
CSCI 477 Computer Communications and Networks 3 cr
OR    
MIS 424 Advanced Business Data Communications 3 cr
     
CSCI 478 Network Security 3 cr
     
CSCI 279 Basic Information Security 3 cr
OR    
CIS 779 Information Systems Security 3 cr
     
CIS 780 Security and Risk 3 cr

 

Requirements for the Data Science Certificate (9 credits)

The computer science department offers a certificate in Data Science that provides background and experience for students interested in careers such as Data Scientist, Data Analyst and Machine Learning Scientist. This certificate consists of the following courses:

  1. Core Courses (6 credits)
    CSCI 410 Introduction to Data Science 3 cr
    CSCI 411 Programming for Data Science 3 cr
  2. Elective Course (3 credits)
    Choose one course:
    CSCI 412 Data Mining & Machine Learning 3 cr
    CSCI 413 Big Data Analytics 3 cr

 

Requirements for the Mobile Development Certificate (13 credits)

The computer science department offers a certificate in mobile development for students interested in careers involving developing mobile applications for tablet computers and mobile phones.  With the rise in popularity and functionality of mobile devices, the need for skilled mobile developers has increased. Our certificate provides students a background in writing software for multiple mobile device platforms, designing user interfaces for mobile devices, and designing networking architecture to connect mobile devices to each other. Individuals may enter the program at any point, depending on background and experience.

Required Courses (13 credits)

CSCI 242 Computer Science II 4 cr
CSCI 323 Mobile Development in Android 3 cr
CSCI 324 Mobile Development in iOS 3 cr
CSCI 424 Client/Server Development 3 cr

Note: CSCI 242 requires formal programming experience equivalent to CSCI 241.

 

Requirements for the UNIX System Administration Certificate (10-11 credits)

The computer science department offers a certificate in UNIX system administration that provides background and experience for students interested in careers in system administration. This certificate consists of the following courses:

  1. Required Course Options (5-6 credits)
    CSCI 241 Computer Science I 5 cr
    OR    
         
    MIS 221 Business Programming I - Visual Basic 3 cr
    AND    
    MIS 322 Business Programming II - C# 3 cr
  2. Required Courses (5 credits)
    CSCI 274 UNIX Concepts and Tools 1 cr
    CSCI 275 UNIX Scripting 1 cr
    CSCI 435 UNIX System Administration 3 cr

 

Requirements for the World Wide Web Publishing Certificate (15-17 credits)

In cooperation with the art department, the computer science department offers a certificate in world wide web publishing. The certificate serves traditional students who want to augment their major and improve their employability by adding webmaster skills, as well as professionals interested in the essentials of webpage design. Individuals may enter the program at any point, depending on background and experience.

  1. Required Courses (9 credits)
    ART 105 Introduction to Graphic Design 3 cr
    ART 377 Interactive Design I 3 cr
    CSCI 220 Web Concepts I 3 cr
  2. Electives (6-8 credits)
    Choose one course:
    CSCI 130 Introduction to Programming 3 cr
    CSCI 241 Computer Science I 5 cr
         
    Choose one course:  
    CSCI 322 Web Concepts II 3 cr
    ART 477 Interactive Design II 3 cr

All certificates are available to undergraduate students only (not to graduate students).

Courses in Computer Science (CSCI)

105

Introduction to Computers
Prereq: None. Freq: Fall, Spring, Summer.
Explores computer components and the principles of operation; networking, the Internet and the World Wide Web; problem solving techniques, introduction to algorithms, elementary programming concepts.

3 cr
130

Introduction to Programming
Prereq: MATH 111 or equivalent. Freq: Fall, Spring.
Fundamentals of high-level programming language: object-orientation, methods, functions, variables, program control.

3 cr
210

Mobile Device Interfaces
Prereq: MATH 111. Freq: Fall.
Focuses on the fundamentals of interface design for mobile devices. Topics include input, output, organization, and human-computer interaction. Various tools are used to design and implement interfaces appropriate for various screen sizes and resolutions found on mobile devices.

3 cr
220

Web Concepts I
Prereq: C or better in CSCI 130, 241; or MIS 221; or consent of instructor. Freq: Fall.
Explains web client programming concepts: website authoring, dynamic web pages, object usage, events and event-driven programming, markup languages, document object model.

3 cr
231

Discrete Mathematics
Prereq: MATH 112 with a grade of C of better.  Freq: Fall, Spring.
Covers sets, the number system, Boolean algebra, formal logic and proofs, relations and functions, combinatorics and recurrence relations, graphs and trees. Cross-listed with MATH 231.

3 cr
241

Computer Science I
Prereq: C or better in MATH 112 and 113, or 114. Freq: Fall, Spring.
Introduces the fundamentals of software development; including software classes, objects, logic, selection control, repetition control, subprograms, parameter passage, and rudimentary software engineering techniques. Three-hour lecture; one-hour discussion; two-hour lab.

5 cr
242

Computer Science II
Prereq: C or better in CSCI 241. Freq: Fall, Spring.
Explores object-oriented programming concepts including inheritance and polymorphism; recursion. Introduces data structures including: lists, stacks, queues, trees and maps; advanced sorting and searching algorithms. Three-hour lecture, two-hour lab.

4 cr
245

Assembly Language Programming
Prereq: C or better in CSCI 231, 241; 242 or concurrent registration. Freq: Fall, Spring.
Explores organization of computers, digital representation of data, symbolic coding and assembler systems, instructions, addressing modes, program segmentation and linkage, and applications.

3 cr
274

UNIX Concepts and Tools
Prereq: C or better in CSCI 130, 241; or MIS 221, or concurrent registration. Freq: Fall.
Examines concepts and tools for UNIX including file system organization, directory and file manipulation, text processing, UNIX processes, editors, interacting with other users, interacting with Internet hosts systems. One-hour lecture, one-and-one-half-hour lab.

1 cr
275

UNIX Scripting
Prereq: C or better in CSCI 274. Freq: Fall.
Investigates Unix shells, shell variables and the environment, scripting languages, input and output, control structures, argument handling, functions, parameter passing and start-up scripts. One-hour lecture, one-and-one-half-hour lab.

1 cr
279

Basic Information Security
Prereq: None. Freq: Occasionally.
Provides an overview of information security planning. Evaluates security threats, regulations and controls affecting various business types. Students select an industry that is specific to their career goals and consider the threats and controls appropriate for that industry.

3 cr
290

Special Topics in Computer Science
Prereq: Consent of instructor. Freq: Occasionally.
Elementary topics in computer science.

1-4 cr
291

Makerspace Seminar
Prereq: None. Freq: Occasionally.
Requires independent work in a community-operated workspace where students with common interests develop technology related projects.

1 cr
296

Professional Certification
Prereq: Consent of instructor.  Freq: Occasionally.
Instruction and laboratory work preparing students to take professional certification examinations. Credits will vary depending on certification program. Special laboratory fees, add/drop deadlines, and fee refund policies may apply.

1-6 cr
309

Probability and Statistics
Prereq: C or better in MATH 221. Freq: Spring.
Covers elementary probability; random variables, properties of distributions, sampling, queuing theory, central limit theorem and law of large numbers. Cross-listed with MATH 309.

3 cr
322

Web Concepts II
Prereq: CSCI 220 or consent of instructor. Freq: Spring.
Explains server-side programming concepts; server architectures; relational databases and database connectivity; dynamic web pages; form processing and web services.

3 cr
323

Mobile Development in Android
Prereq: C or better in CSCI 242, or consent of instructor. Freq: Fall.
Examines existing tools, environments and programming languages for developing applications for mobile devices on the Android platform. Explores current research on mobile applications and future trends. Cross-listed with CIS 523.

3 cr
324

Mobile Development in iOS
Prereq: C or better in CSCI 323, or consent of instructor. Freq: Spring.
Examines existing tools, environments and programming languages for developing applications for mobile devices on the iOS platform. Explores current research on mobile applications and future trends. Cross-listed with CIS 524.

3 cr
333

Programming Languages
Prereq: C or better in CSCI 231, 242. Freq: Spring.
Introduction to the syntax and semantic issues in programming languages and their effect on language implementation. This includes methods to specify languages, data storage, and the sequence of control in programs. Non-procedural languages, including functional and logic languages, will be examined.

3 cr
340

Data Structures and Algorithm Design
Prereq: C or better in CSCI 231, 242. Freq: Spring.
Study of the design, implementation and analysis of computer algorithms; time and space requirements for sorting, searching, graph theory, mathematics and string processing algorithms.

3 cr
355

Computer Architecture
Prereq: C or better in CSCI 245. Freq: Spring.
The design of computer systems and components. Processor design, control structures and microprogramming; caches, memory hierarchies, mass memory, and memory management; buses, interrupts and I/O structures; multiprocessors and advanced processors.

3 cr
368

Mathematical Modeling
Prereq: MATH 222; PHYS 241 or CSCI 130; or consent of instructor. Freq: Occasionally.
Surveys mathematical models, models involving differential equations, probabilistic models, Markovian models, simulation, and Monte-Carlo methods. Cross-listed with MATH 368.

3 cr
370

Operating Systems
Prereq: C or better in CSCI 242 and 355. Freq: Fall.
Operating system concepts, process definition and implementation, deadlock, memory management and protection, distributed system architecture, and case studies.

3 cr
380

Database Management Systems
Prereq: C or better in CSCI 242. Freq: Fall.
Examines the relational model, database design, relational database query languages such as Relational Algebra and SQL, database normalization techniques, physical database design.

3 cr
405

Artificial Intelligence (AI)
Prereq: C or better in CSCI 333. Freq: Occasionally.
Introduces Artificial Intelligence (AI) techniques that include search, game playing, and knowledge representation. Includes specific subdisciplines of AI such as natural language processing and neural networks. Programming assignments in both Prolog and LISP.  Not open to those with credit in CIS 605.

3 cr
410

Introduction to Data Science
Prereq: CSCI 242; and CSCI 309 or QM 310; or consent of instructor. Freq: Fall.
Introduces extraction of knowledge from data. Covers basics of statistical inference and the identification of probability distributions commonly used as foundations for statistical modeling. Provides an overview of commonly used data science and software tools. Not open to those with credit in CIS 610.

3 cr
411

Programming for Data Science
Prereq: CSCI 410/CIS 610 or consent of instructor. Freq: Spring.
Surveys common programming languages for data science. Explores the development of applications for data-centric software used to extract actionable knowledge and insights from a collection of heterogeneous data sources that answer specific scientific, socio-political, or business questions.  Not open to those with credit in CIS 611.

3 cr
412

Data Mining & Machine Learning
Prereq: CSCI 410/CIS 610 or consent of instructor. Freq: Occasionally.
Explores data mining methods and procedures for diagnostic and predictive analytics. Includes association rules, clustering algorithms, tools for classification, and ensemble methods. Emphasizes computer implementation and applications. Not open to those with credit in CIS 612.

3 cr
413

Big Data Analytics
Prereq: CSCI 410/CSI 610 or consent of instructor. Freq: Occasionally.
Introduces the efficient processing of large data sets, including nonrelational databases and algorithms that allow for the distributed processing of large data sets across clusters.  Not open to those with credit in CIS 613.

3 cr
420

Computer Graphics
Prereq: C or better in CSCI 340. Freq: Occasionally.
Graphics hardware and software, techniques for representation and visualization, two- and three-dimensional transformations, concepts and techniques of visual realism.

3 cr
421

Computer Vision
Prereq: C or better in CSCI 242. Freq: Occasionally.
Reviews algebra of matrices and partial differentiation. Introduces Machine Vision and Image Processing including image formation, thresholding, image filtering, edge detection, image segmentation, image data compression, image similarity and dynamic vision. Cross-listed with CIS 621.

3 cr
424

Client/Server Development
Prereq: C or better in CSCI 324 or consent of instructor. Freq: Fall.
Explores server-side application programming concepts. Topics include server architectures, communication protocols, relational databases and database connectivity, dynamic content delivery and communication security. Cross-listed with CIS 674.

3 cr
431

Computational Models
Prereq: C or better in CSCI 231. Freq: Occasionally.
Delves into regular languages, finite automata, context-free languages and grammars, push-down automata, Turing machines, algorithms and the Church-Turing thesis, and decidability.

3 cr
433

Web Development Project
Prereq: CSCI 322 or consent of instructor. Freq: Occasionally.
Focuses on project-based development of a significant web site or a specific web-based problem or project under the supervision of the instructor. Includes project management techniques, client-server communication and content management systems.

3 cr
435

UNIX System Administration
Prereq: CSCI 275 with a grade of C or better. Freq: Spring.
Covers UNIX system administration concepts and techniques including system organization, kernel configuration, device management, system files and runtime maintenance, software configuration and installation, and network configuration; comparison of UNIX with other operating systems. Two-hour lecture; two-hour lab.

3 cr
440

Compiler Design and Implementation
Prereq: C or better in CSCI 333 or concurrent registration. Freq: Occasionally.
Theory, design and implementation of compilers and other syntax-directed systems. Applies techniques of finite state machines, lexical analysis, symbol tables, parsing, storage allocation and code generation to the development of a compiler. Laboratory work included.

3 cr
444

Event-Driven Programming
Prereq: C or better in CSCI 370. Freq: Occasionally.
Origins of events; the event-driven programming model; interrupt processing as event handling; client-server architectures; windowing environments and GUI programming; development support software; case studies; and student project.

3 cr
445

Web Security
Prereq: C or better in CSCI 242 or 322. Freq: Occasionally.
Vulnerabilities of web languages, interfaces, servers and databases. Identifying and avoiding vulnerabilities with shopping carts, HTTP/ HTTPS and the URL.  Detecting and preventing hacking techniques such as cyber graffiti, e-shoplifting, impersonation, buffer overflows and cross-site scripting.

3 cr
467

Computability and Automata
Prereq: C or better in CSCI 331 or consent of instructor. Freq: Occasionally.
Turing machines, recursive functions, Kleene’s T Predicate, Ackermann’s function, finite automata, grammars and languages. Cross-listed with MATH 467.

3 cr
475

Software Engineering Principles and Practice I
Prereq: C or better in CSCI 333, 340, 370 or 380. Freq: Fall.
An introduction to UML design and teamwork in the development of a larger software system. The use of UML use case, activity, class/object, interaction, and state diagrams in the creation of efficient designs and systems.

3 cr
476

Software Engineering Principles and Practice II
Prereq: C or better in CSCI 475. Freq: Spring.
Software development from an engineering perspective including software development models, team organization and management, implementation strategies, software testing and verification, and project cost estimation. Students will demonstrate their mastery of software engineering design and development strategies through implementation of a significant team-based project.

3 cr
477

Computer Communications and Networks
Prereq: C or better in CSCI 242, 245. Freq: Occasionally.
Transmission protocols, layered network protocols, network topology, message routing, performance analysis, security, and case studies.

3 cr
478

Network Security
Prereq: C or better in CSCI 355, 435, 477 or MIS 327. A background in computer networking is helpful. Freq: Occasionally.
Examines computer and network security related to operating systems, networks and system administration issues, including hacking, incident response, firewalls, VPNs, intrusion detection, and auditing.

3 cr
479

Information Systems Security
Prereq: C or better in CSCI 242 or MIS 328. Freq: Occasionally.
Introduction to information systems security.  Considers technical, administrative, and physical aspects of IT security. Topics include fraud, risk, information protection, business continuity, network security, auditing, and security planning and governance.

3 cr
480

Advanced Databases
Prereq: C or better in CSCI 380. Freq: Occasionally.
Reviews relational database languages such as SQL and Relational Algebra, and query optimization techniques. Non-relational database models including object-oriented databases, XML databases, and deductive databases. Data mining, transaction management, concurrency control, text retrieval, and web data management.

3 cr
490

Special Topics in Computer Science
Prereq: Consent of instructor. Freq: Occasionally.
Advanced topics in computer science with applications.

1-4 cr
493

Internship in Computer Science
Prereq: Consent of instructor and department chair. Freq: Fall, Spring.
Participation in the technical activities of an ongoing organization under the joint guidance and supervision of a member of the organization and member of the faculty. Grading will be on a credit/no-credit basis. A student may register and receive credit in this course for a maximum of 6 credits.

1-2 cr
495

Computer Science Seminar
Prereq: Any 300-level CSCI course or consent of instructor. Freq: Fall.
Examines computer ethics, the computing profession, current trends in information technology, and career opportunities. Includes oral presentations.

2 cr
499

Independent Study
Prereq: Consent of instructor and department chair. Freq: Fall, Spring.
Independent work on a specific problem in computer science under the supervision of faculty.

1-3 cr
Scroll to top