Computer Science (CSC)

CSC 184  Introduction to Computer Programming     Credits: 3

Typically Offered: Fall.

Course Description: Introduction to problem solving utilizing the Python programming language. Topics include algorithm and program development, syntax of Python, file input/output, variables, program control structures, functions, and collections. Prerequisite(s): ACT math subscore of at least 22, a sufficient score on the math placement exam, or a grade of C or higher in either ACT 101 or a general studies math course.

CSC 187  Java Programming Fundamentals     Credits: 3

Typically Offered: Fall, Spring.

Course Description: Introduction to problem solving utilizing the Java programming language. Topics include algorithm and program development, syntax of Java, input/output, assignment operations, program control structures, character data manipulation, functions, and single dimension arrays. Emphasis is placed on program design techniques and program modularity. Prerequisite(s): An ACT math sub score of 22 or higher, a sufficient score on the math placement exam, or a grade of C or higher in either ACT 101 or a general studies math course.

CSC 208  Discrete Structures I     Credits: 3

Typically Offered: Spring.

Course Description: This course is a study of mathematical reasoning including the nature and methods of proof, relations and functions, combinatorics and graph theory, Boolean algebra, and applications of these topics. Attention will be given to the direct applications to computer science. Prerequisite(s): CSC 187, MAT 147, or MAT 167.

CSC 245  Enterprise Systems Computing: COBOL I     Credits: 3

Typically Offered: Departmental Discretion.

Course Description: This course explores the structure of the COBOL programming language, to include basic syntax, flow control, record and memory structures, input/output and report writing. A real-world enterprise system environment will be used to provide exposure to JCL and various tools that support business processes and information flow. Prerequisite(s): A grade of C or higher in CSC 254.

CSC 246  Programming Languages and Paradigms     Credits: 3

Typically Offered: Fall.

Course Description: This course explores major programming paradigms (including the functional, object-oriented, and logic programming paradigms) and principles of the design of programming languages. Students will learn to adapt quickly to new programming languages, select appropriate programming languages for projects, compare and contrast languages, and make the best use of features of languages they have learned. Prerequisite(s): A grade of C or higher in CSC 254.

CSC 254  Object Oriented Programming     Credits: 3

Typically Offered: Fall, Spring.

Course Description: This course is a continuation of CSC 187 and introduces the Java programming language. Java is used to introduce Object Oriented Programming concepts including data abstraction, classes, inheritance, and polymorphism. Other programming topics covered include multidimensional arrays and array processing, elementary sorting and searching techniques, dynamic memory allocation, linked lists, and GUI interface creating. Prerequisite(s): A grade of C or higher in CSC 187.

CSC 264  Computer Architecture and Assembly Language Programming     Credits: 3

Typically Offered: Fall.

Course Description: This course is an investigation of the logical basis of computers at the machine language level. Machine representation of numbers and characters, instruction formats, machine operations, addressing techniques, and assembly level programming techniques will be covered. Prerequisite(s): A grade of C or higher in CSC 184 or CSC 187.

CSC 274  Introduction to Unix/Linux     Credits: 3

Typically Offered: Fall.

Course Description: An introductory course on UNIX/Linux and its applications. Topics covered include: basic commands, connecting to remote machines, basic system structures, system tools, output redirection, command line text editing, file system basics, security basics, and basic shell scripting. The course material is intended to prepare students for versatile use of any UNIX/Linux system and as a foundation for numerous UNIX/Linux certification programs. Prerequisite(s): Previous computer experience recommended.

CSC 283  Introduction to Research Methods in Computer Science     Credits: 1-2

Typically Offered: Departmental Discretion.

Course Description: Introduction to basic research methods in Computer Science. Individual and team projects involving methods for solving computer science-related research problems. Prerequisite(s): Departmental approval.

CSC 285  Data Structures     Credits: 3

Typically Offered: Fall.

Course Description: Topics include algorithm analysis and the implementation of stacks, queues, linked lists, trees, and other data structures. Principles of data abstraction are emphasized throughout the course. Prerequisite(s): A grade of C or higher in both CSC 254 and MAT 112, MAT 116, or higher.

CSC 289  Computational Methods for Computer Science     Credits: 3

Typically Offered: Fall.

Course Description: This course provides the underlying mathematical foundations and applied algorithms that are used across the basic fields in Computer Science. The course will focus on the computational algorithms in the fields of semantic search, data encryption and computer security, computer graphics, gaming and simulation. Further the course will consider the impact/computational limitations of current hardware on the application of these algorithms. Prerequisite(s): A grade of C or higher in CSC 254.

CSC 294  Networking and Telecommunications     Credits: 3

Typically Offered: Fall.

Course Description: An examination of current computer communication technologies and their protocol structures as applied to computer networks and telecommunication systems. Topics include the physical layers, architectural elements, and information layers of a communication network; protocols; switching; routing; LANs; and WANs. Prerequisite(s): Credit or concurrent enrollment in CSC 184 or CSC 187.

CSC 305  Database Architecture and Concepts     Credits: 3

Typically Offered: Spring.

Course Description: An introduction to Database Concepts and Architecture, with an emphasis on the Relational Database Model. Prerequisite(s): A grade of C or higher in ACT 301.

CSC 318  Simulation and Modeling     Credits: 3

Typically Offered: Spring.

Course Description: An introduction to computerized simulations. Focus is on the architecture and development of time-step and event-sequenced models used extensively by industry and government. Other topics include process generators for random events, the development of computerized games for management training, and current simulation research. Prerequisite(s): A grade of C or higher in CSC 285.

CSC 324  Software Testing and DevOps     Credits: 3

Typically Offered: Spring.

Course Description: This course covers fundamentals of software testing and DevOps important to software developers, system administrators, and quality assurance / software testing engineers. A vendor neutral approach will be taken, focusing on popular open source tools for unit testing, integration testing, system testing, version control, build automation, configuration management, virtualization, continuous integration, and deployment management. Relevant software development principles and philosophies such as test-driven development and agile software development will also be discussed. Prerequisite(s): A grade of C or higher in CSC 184 and CSC 274.

CSC 328  Computer Graphics     Credits: 3

Typically Offered: Fall.

Course Description: A course in the techniques for picture transformation, curve and surface approximation; study and implementation of graphical languages and data structure; organization of graphical systems; use of the microcomputer as tools for displaying graphical data. Prerequisite(s): A grade of C or higher in CSC 285.

CSC 345  Enterprise Systems Computing: COBOL II     Credits: 3

Typically Offered: Departmental Discretion.

Course Description: This course explores the advanced features of COBOL, to include validation and exception handling, table control processing, sorting, master/transaction indexed file processing and management of large-scale software development. Students will continue using a real-world enterprise system environment to integrate their business driven software packages. This is a continuation of CSC 245. Prerequisite(s): A grade of C or higher in CSC 245.

CSC 346  Enterprise Systems with Java     Credits: 3

Typically Offered: Spring.

Course Description: This course covers the front and back end development of large software systems. The course includes data exchange and the use of APIs. Use of frameworks and professional development tools is emphasized. Prerequisite(s): ACT 301 with a grade of C or higher and either ACT 211 or CSC 254 with a grade of C or higher.

CSC 374  UNIX/Linux System Administration     Credits: 3

Typically Offered: Spring (odd-numbered years).

Course Description: This course covers the essential skills needed to administer a mainstream linux distribution such as Fedora, Ubuntu, SUSE, etc. The key topics include hardware and system configuration, system operation and maintenance, security, troubleshooting and diagnostics, automation and scripting. Prerequisite(s): CSC 274.

CSC 386  Operating Systems Concepts     Credits: 3

Typically Offered: Spring.

Course Description: This course is an introduction to operating system principles. Students will become familiar with the function and implementation of modern operating systems from the perspectives of a user, designer, and developer. Topics include user interfaces, programming interfaces, system resource management, multiprocessing, concurrent programming, and system security. Prerequisite(s): CSC 264 and a grade of C or higher in CSC 274.

CSC 400  Systems Analysis and Design     Credits: 3

Typically Offered: Fall.

Course Description: Study of structured systems development. Emphasis on strategies and techniques of structured analysis and object oriented design for producing logical methodologies for dealing with the development of information systems. Prerequisite(s): Credit or concurrent enrollment in CSC 305.

CSC 406  Object Oriented Applications and Program Development     Credits: 3

Typically Offered: Spring.

Course Description: This course emphasizes the application of Object Oriented Programming (OOP) concepts in the java programming language to large-scale programming problems. The course includes application of techniques such as the Unified Modeling Language (UML). Prerequisite(s): A grade of C or higher in CSC 285 and credit or concurrent enrollment in CSC 305.

CSC 410  Network Security Technologies     Credits: 3

Typically Offered: Departmental Discretion.

Course Description: This course covers various facets of network security and the tools that are available to secure and monitor networks. Topics include commercial and open source security tools, public-key cryptography, firewalls, authentication, intrusion detection, control of malicious code, OS hardening fundamentals, and security assessment. Prerequisite(s): A grade of C or higher in CSC 294.

CSC 445  Mobile Device Application Development     Credits: 3

Typically Offered: Departmental Discretion.

Course Description: This course focuses on developing applications for modern Smartphone operating systems. Most of the course is dedicated to some specific mobile device OS at the discretion of the instructor. Rapid application development techniques are covered, as well as setup of the development environment, real-world testing, and deployment. Prerequisite(s): A grade of C or higher in CSC 254.

CSC 450  Independent Research/Project     Credits: 1-3

Typically Offered: Fall, Spring.

Course Description: Investigation of a research problem, project, or topic on an individual conference basis. May be repeated for credit. Prerequisite(s): Minimum of 2.5 GPA in major field and departmental approval.

CSC 451  Internship in Computer Science     Credits: 1-3

Typically Offered: Fall, Spring, Summer.

Course Description: An academic program which offers Computer Science majors an opportunity to integrate theory with practice. Students work full-time or part-time for a company in a position related to the Computer Science major. Anticipated learning objectives are established in a contract agreed to by the student, the company supervisor, and the departmental faculty sponsor. May be repeated for credit, but at most 3 hours may count towards the total number of hours required for the major. Prerequisite(s): Declared Computer Science or Computer Information Systems major or declared CIS minor, a minimum of 2.5 GPA, and permission of the faculty sponsor.

CSC 452  Professional Certification in Computing     Credits: 3

Typically Offered: Departmental Discretion.

Course Description: This course provides an opportunity for students to prepare for a professional certification exam at the intermediate and advanced levels while being tutored by a faculty member holding the certification they are seeking. Students will meet individually with their instructor to develop a study plan, review study materials, and make other preparations for the exam.

CSC 475  Advanced Topics in Computer Science     Credits: 3

Typically Offered: Departmental Discretion.

Course Description: Selected advanced topics in computer science. Prerequisite(s): Departmental approval.

CSC 484  Compiler Theory     Credits: 3

Typically Offered: Departmental Discretion.

Course Description: An introduction to the basic structures of compilers and their design. Course topics include computer language structure, translation/recognition techniques of lexical analysis, parsing and syntax-directed translation. The course will also consider the impact of run-time environments on the design of computer languages and the constraints of code optimization on code generation. A small compiler will be developed. Prerequisite(s): A grade of C or higher in CSC 264.

CSC 487  Digital Animation and Production     Credits: 3

Typically Offered: Fall (even-numbered years).

Course Description: This class will concentrate on the methods used to build digital animated characters. Subjects will include character design and development, animation of characters, lighting, camera shots, sound and production editing. Prerequisite(s): Junior standing and declared Computer Information Systems, Computer Science, or Communication Studies and Theatre major.

CSC 490  CS Career Preparation     Credits: 1

Typically Offered: Fall.

Course Description: In this course students will begin applying their MWSU education towards building a career in CS. Students will learn how to navigate a career path in CS, explore alternative career paths, and explore opportunities for continuing education and professional development. Students will develop application materials and attempt entrance, exit, and / or certification exams in preparation for graduation, applying to jobs, and applying to graduate schools. Graded pass/fail. Prerequisite(s): Senior status and a declared major in CSC.