Computer Science
College: College of Business, Economics, and Computing
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 Computational Models 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
- An ability to apply knowledge of computing and mathematics appropriate to the discipline.
- An ability to analyze a problem, and identify and define the computing requirements appropriate to its solution.
- An ability to design, implement, and evaluate a computer-based system, process, component, or program to meet desired needs.
Social and Personal Responsibility
- An ability to function effectively on teams to accomplish a common goal.
- An understanding of professional, ethical, legal, security and social issues and responsibilities.
- An ability to analyze the local and global impact of computing on individuals, organizations, and society.
- Recognition of the need for and an ability to engage in continuing professional development.
Communication
- An ability to communicate effectively with a range of audiences.
- An ability to use current techniques, skills, and tools necessary for computing practice.
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.
Occasionally, transferred computer science courses do not match the number of credits to their equivalent UWP CSCI courses, in such cases, the credit difference is waived. However, transferred courses that satisfy the breadth requirement will not be granted credit difference waivers since the breadth requirement has to have at least 9 credits of coursework required.
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.
Programs Offered
All certificates are available to undergraduate students only (not to graduate students).
Courses in Computer Science
CSCI 105 | Introduction to Computers | 3 cr
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.
Prerequisites: None.
Offered: Fall, Spring, Summer.
Meets: Natural Science: CSCI, Natural Science: CSCI, Natural Science: CSCI, Natural Science: CSCI, Natural Science: CSCI
CSCI 130 | Introduction to Programming | 3 cr
Fundamentals of high-level programming language: object-orientation, methods, functions, variables, program control.
Prerequisites: MATH 111 or equivalent.
Offered: Fall, Spring.
Meets: Natural Science: CSCI, Natural Science: CSCI, Natural Science: CSCI, Natural Science: CSCI, Natural Science: CSCI
CSCI 220 | Client Web Programming | 3 cr
Explains web client programming concepts, website authoring, dynamic web pages, object usage, events and event-driven programming, markup languages, document object model.
Prerequisites: C or better in CSCI 130, or CSCI 241 or MIS 221; or B+ or better in CSCI 105; or consent of instructor.
Offered: Fall.
Meets: Natural Science: CSCI, Natural Science: CSCI, Natural Science: CSCI, Natural Science: CSCI, Natural Science: CSCI
CSCI 231 | Discrete Mathematics | 3 cr
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.
Prerequisites: MATH 112 with a C or better.
Offered: Fall, Spring.
CSCI 241 | Computer Science I | 5 cr
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.
Offered: Fall, Spring.
Meets: Natural Science: CSCI, Natural Science: CSCI, Natural Science: CSCI, Natural Science: CSCI, Natural Science: CSCI
CSCI 242 | Computer Science II | 4 cr
Explores object-oriented programming concepts including inheritance and polymorphism; and recursion. Introduces data structures including: lists, stacks, queues, trees and maps; advanced sorting; and searching algorithms. Three-hour lecture, two-hour lab.
Prerequisites: CSCI 241with C or better.
Offered: Fall, Spring.
CSCI 245 | Assembly Language Programming | 3 cr
Explores organization of computers, digital representation of data, symbolic coding and assembler systems, instructions, addressing modes, program segmentation and linkage, and applications.
Offered: Fall, Spring.
CSCI 275 | Linux Concepts, Tools and Scripting | 2 cr
Examines concepts and tools for Linux including file system organization, text processing, Linux processes, editors, and interacting with internet host systems. Investigates Linux shells and the environment, scripting languages, input/output, functions, and start-up scripts. One hour lecture, one and one half hour lab.
Offered: Fall.
CSCI 279 | Basic Information Security | 3 cr
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.
Prerequisites: None.
Offered: Occasionally.
Meets: Social & Behavioral Science: CSCI, Social & Behavioral Science: CSCI, Social & Behavioral Science: CSCI, Social & Behavioral Science: CSCI, Social & Behavioral Science: CSCI
CSCI 290 | Special Topics in Computer Science | 1-4 cr
Elementary topics in computer science.
Prerequisites: Consent of instructor.
Offered: Occasionally.
CSCI 291 | Makerspace Seminar | 1 cr
Requires independent work in a community-operated workspace where students with common interests develop technology related projects.
Prerequisites: None.
Offered: Occasionally.
CSCI 309 | Probability and Statistics | 3 cr
Covers elementary probability, random variables, properties of distributions, sampling, queuing theory, central limit theorem and law of large numbers. Cross-listed with: MATH 309.
Prerequisites: MATH 221 with C or better.
Offered: Spring.
CSCI 322 | Server Web Programming | 3 cr
Examines server-side programming concepts including server architectures, relational databases, and database connectivity; dynamic web pages; form processing; and web services.
Prerequisites: CSCI 220 or consent of instructor.
Offered: Spring.
CSCI 323 | Mobile Development in Android | 3 cr
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. Multi-career cross-listing: CIS 523.
Prerequisites: CSCI 242 with C or better, or consent of instructor.
Offered: Fall.
CSCI 324 | Mobile Development in iOS | 3 cr
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. Multi-career cross-listing: CIS 524.
Prerequisites: CSCI 242 with C or better, or consent of instructor.
Offered: Spring.
CSCI 333 | Programming Languages | 3 cr
Introduces syntax and semantic issues in programming languages and their effect on language implementation. Includes methods to specify languages, data storage, and the sequence of control in programs. Examines non-procedural languages, including functional and logic languages.
Offered: Spring.
CSCI 340 | Data Structures and Algorithm Design | 3 cr
Study of the design, implementation and analysis of computer algorithms; time and space requirements for sorting, searching, graph theory, mathematics and string processing algorithms. Multi-career cross-listing: CIS 540.
Offered: Spring.
CSCI 355 | Computer Architecture | 3 cr
The design of computer systems and components. Processor design, control structures and micro-programming; cache, memory hierarchies, mass memory, and memory management; buses, interrupts and I/O structures; multiprocessors and advanced processors.
Prerequisites: CSCI 245 with C or better.
Offered: Spring.
CSCI 368 | Mathematical Modeling | 3 cr
Surveys mathematical models, models involving differential equations, probabilistic models, Markovian-models, simulation, and Monte Carlo methods. Cross-listed with: MATH 368.
Offered: Yearly.
CSCI 370 | Operating Systems | 3 cr
Operating system concepts, process definition and implementation, deadlock, memory management and protection, distributed system architecture, and case studies. Multi-career cross-listing: CIS 570.
Offered: Fall.
CSCI 380 | Database Management Systems | 3 cr
Examines the relational model, database design, relational database query languages (such as relational algebra and SQL), database normalization techniques, and physical database design.
Prerequisites: CSCI 242 with C or better.
Offered: Fall.
CSCI 405 | Artificial Intelligence | 3 cr
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. Multi-career cross-listing: CIS 605.
Prerequisites: CSCI 333 with C or better.
Offered: Occasionally.
CSCI 410 | Introduction to Data Science | 3 cr
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 software tools. Not open to students with credit in CIS 610.
Offered: Fall.
CSCI 411 | Data Science Programming and Visualization | 3 cr
Surveys common programming languages for data science with visualization. Explores the development of applications for data-centric software used to visualize and 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. Multi-career cross-listing: CIS 611.
Prerequisites: CSCI 410 or consent of instructor.
Offered: Spring.
CSCI 412 | Data Mining and Machine Learning | 3 cr
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. Multi-career cross-listing: CIS 612. Not open to those with credit in: CIS 612.
Prerequisites: CSCI 410 or CIS 610 or consent of instructor.
Offered: Occasionally.
CSCI 413 | Big Data Analysis | 3 cr
Introduces the efficient processing of large data sets, including non-relational databases and algorithms that allow for the distributed processing of large data sets across clusters. Not open to those with credit in CIS 613. Multi-career cross-listing: CIS 613.
Prerequisites: CSCI 410 or CIS 610 or consent of instructor.
Offered: Occasionally.
CSCI 415 | Data Science/Machine Learning Project | 3 cr
Develops practical experience via a data science research project, including applying various machine learning models, researching concepts, and preparing research articles. Multi-career cross-listing: CIS 615. Not available for students with credit in: CIS 615.
Offered: Occasionally.
CSCI 420 | Computer Graphics | 3 cr
Graphics hardware and software, techniques for representation and visualization, two- and three-dimensional transformations, concepts and techniques of visual realism. Multi-career cross-listing: CIS 620.
Prerequisites: CSCI 340 with C or better.
Offered: Occasionally.
CSCI 421 | Computer Vision | 3 cr
Reviews algebra of matrices and partial differentiation. Introduction to Machine Vision and Image Processing including image formation, thresholding, image filtering, edge detection, image segmentation, image data compression, image similarity and dynamic vision. Multi-career cross-listing: CIS 621.
Prerequisites: CSCI 242 with a grade of C or better.
Offered: Occasionally.
CSCI 424 | Client/Server Development | 3 cr
Explores server-side application programming concepts. Includes server architectures, communication protocols, relational databases and database connectivity, dynamic content delivery and communication security. Multi-career cross-listing: CIS 674.
Prerequisites: CSCI 324 with C or better, or consent of instructor.
Offered: Fall.
CSCI 431 | Computational Models | 3 cr
Delves into regular languages, finite automata, context-free languages and grammars, push-down automata, Turing machines, algorithms and the Church-Turing thesis, and decidability.
Offered: Occasionally.
CSCI 433 | Web Development Project | 3 cr
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.
Prerequisites: CSCI 322 or consent of instructor.
Offered: Occasionally.
CSCI 435 | Linux System Administration | 3 cr
Covers Linux system administration concepts and techniques, including system organization, kernel configuration, device management, system files and runtime maintenance, software configuration and installation, and network configuration. Compares Linux with other operating systems. Two-hour lecture; two-hour lab. Multi-career cross-listing: CIS 635.
Prerequisites: CSCI 275 with C or better.
Offered: Spring.
CSCI 440 | Compiler Design and Implementation | 3 cr
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. Multi-career cross-listing: CIS 640.
Prerequisites: C or better in CSCI 333 or concurrent registration.
Offered: Occasionally.
CSCI 444 | Event-Driven Programming | 3 cr
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. Multi-career cross-listing: CIS 644.
Prerequisites: C or better in CSCI 370.
Offered: Occasionally.
CSCI 445 | Web Application Security | 3 cr
Explores vulnerabilities and defenses of web-based software systems. Covers web architecture, document security, authentication and attacks and defenses of client-side controls, authentication, session management, access controls, data stores and back-end components. Multi-career cross-listing: CIS 645. Not available for students with credit in: CIS 645.
Offered: Summer.
CSCI 467 | Computability and Automation | 3 cr
Turing machines, recursive functions, Kleene's T Predicate, Ackermann's function, finite automata, grammars and languages.
Cross-listed with: MATH 467.
Prerequisites: C or better in MATH 331 or CSCI 331 or consent of instructor.
Offered: Occasionally.
CSCI 469 | Embedded Systems Design | 3 cr
Covers firmware and hardware development. Includes assembly and/or C programming of micro-controllers, interrupt processing, basic hardware and logic design, programming micro-controller peripherals like Analag/Digital Converters (ADC & DAC), timers, Pulse Width Modulation (PWM), comparators, programming and using serial interfaces, basics of printed boards design. Multi-career cross-listing: CIS 669.
Prerequisites: CSCI 245.
Offered: Fall.
CSCI 475 | Software Engineering Principles and Practice I | 3 cr
Introduces UML design and teamwork in the development of a larger software system. Covers UML use case, activity, class/object, interaction, and state diagrams in the creation of efficient designs and systems. Multi-career cross-listing: CIS 675.
Prerequisites: C or better in CSCI 380 and one of the following: CSCI 323 or CSCI 324 or CSCI 333 or CSCI 340 or CSCI 370.
Offered: Fall.
Meets: Community Based Learning, Community Based Learning, Community Based Learning, Community Based Learning, Community Based Learning
CSCI 476 | Software Engineering Principles and Practice II | 3 cr
Continuation of CSCI 475; further work on a significant team project; includes oral presentations and written documentation. Multi-career cross-listing: CIS 676.
Prerequisites: CSCI 475 with C or better.
Offered: Spring.
CSCI 477 | Computer Communications and Networks | 3 cr
Examines transmission protocols, layered network protocols, network topology, message routing, performance analysis, security, and case studies. Multi-career cross-listing: CIS 677.
Offered: Occasionally.
CSCI 478 | Network Security | 3 cr
Examines computer and network security related to operating systems, networks and system administration issues, including hacking, incident response, firewalls, VPNs, intrusion detection, and auditing. A background in computer networking is helpful. Multi-career cross-listing: CIS 678.
Offered: Occasionally.
CSCI 479 | Information Security Planning | 3 cr
Introduces information security design. Considers technical, administrative, and physical aspects of IT security. Includes fraud, risk, information protection, business continuity, network security, auditing, secure software and privacy.
Offered: Spring.
CSCI 480 | Advanced Databases | 3 cr
Review of 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. Multi-career cross-listing: CIS 680.
Prerequisites: CSCI 380 with C or better.
Offered: Occasionally.
CSCI 481 | Security Risk | 3 cr
Focuses on risk analysis, including qualitative, quantitative, and ethical risk. Involves investigates an industry or topic of choice, delving into sources of risk information, researching regulation and statistics, and developing a comprehensive analysis of risk related to the selected topic. Multi-career cross-listing: CIS 681.
Prerequisites: A previous course in security and consent of instructor.
Offered: Occasionally.
CSCI 490 | Special Topics In Computer Science | 1-4 cr
Advanced topics in computer science with applications. May repeat for credit with different topic.
Prerequisites: Consent of instructor.
Offered: Occasionally.
CSCI 493 | Internship | 1-2 cr
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.
Prerequisites: Consent of instructor and department chair.
Offered: Fall, Spring.
CSCI 495 | Computer Science Seminar | 2 cr
Examines computer ethics, the computing profession, current trends in information technology, and career opportunities. Includes oral presentations.
Prerequisites: Any 300-level computer science course or consent of instructor.
Offered: Fall.
CSCI 499 | Independent Study | 1-3 cr
Independent work on a specific problem in computer science under the supervision of faculty.
Prerequisites: Consent of instructor and department chair.
Offered: Fall, Spring.