Computer Science

Required Major Courses (40 credits)

MCON 104 - Computing Theory and Applications (4 credits)

This course is the foundation course for those students who are majoring in Computer Science or Management Information Systems. Students will learn core concepts related to web development including front end (browser) technologies and client-side scripting including HTML, CSS and JavaScript. In addition, students will learn fundamentals of Excel, internet standards and fundamental topics relating to security. Prerequisite: None.

MCON 141 - Introduction to Programming (3 credits)

This course introduces students to problem solving techniques used in programming. In order to reinforce these concepts in a concrete manner, students will develop numerous programs using a popular programming language. They will implement programs using objects, input, output and variables and utilize programming control structures such as loops, selection structures, methods, and classes. Corequisite: MCON 104.

MCON 152 - Computer Methodology (3 credits)

This course introduces students to a major software development methodology, e.g. Agile Programming. Topics typically covered include Test-Driven Development, logging, group development, software documentation, standardized naming conventions, best software development practices, design patterns and idioms. All concepts are typically covered in the context of a semester-length programming project. Prerequisite: MCON 232.

MCON 232 - Advanced Programming (3 credits)

This course introduces students to more advanced programming concepts using an OO programming language. This course explores the Object-Oriented Design and Programming paradigm including inheritance versus composition, polymorphism, runtime versus compile time binding, shallow versus deep copying, and exception handling. In addition, some basic container and GUI classes will be covered. Students will complete extensive programming assignments to develop their skills in problem analysis and program coding and testing. They will implement programs using arrays, basic searching and sorting techniques, strings, and classes. Prerequisite: MCON 141.

MCON 264 - Data Structures I (3 credits)

This course discusses the fundamental kinds of data structures, including stacks, queues, linked lists and trees. These data structures are explored and utilized to implement various algorithms such as sorts, searches and more complex data manipulation. The data structures are implemented as classes using the OOP paradigm, reinforcing OO concepts such as design patterns and inheritance and polymorphism. The relationship between data structures and file structures is also addressed and files are used to implement object persistence. Students are also taught to estimate and compare and contrast the relative efficiencies of algorithms and of the different data structures. Students are given intensive programming exercises to further develop their programming and analysis skills. Prerequisite: MCON 232.

MCON 243 - Operating Systems (3 credits)

This course discusses the design and implementation of operating systems. Topics include multi-programming, multi-processing, time-sharing, resource allocation and job scheduling. Communications, conversational computing, computer networks, memory protection, process management, interrupts, segmentation, interprocess communications, paging, virtual memories, memory management will also be taught. The deadlock problem, detection, recovery, and prevention methods will be explored. Input, output, and the use of buffering and channels will be addressed as well. Prerequisite: MCON 232.

MCON 251 - Programming Languages (3 credits)

This course introduces students to the elements of programming languages and the skills required to understand, design, and implement programming languages. Students will learn about control structures, data structures types and scope (static and dynamic), name structures, binding time and storage allocation/representation, subroutines and activation records, and BNF notation and formal language description. Students will receive a brief introduction to about six languages, and will write programs in them. Prerequisite: MCON 232.

MCON 260 - Computer Architecture (3 credits)

This course covers the organization and architecture of modern-day computers. Topics included are: digital circuits, Boolean algebra, combinatorial logic, data representation and transfer, digital storage and accessing, control functions, input-output facilities, micro-programming, system organization and reliability, pipelining, threading and features needed for multi-programming, multi-processing and real-time systems, and alternate machine organizations. It focuses on both the hardware and software level that translate macro requirements into a micro program to implement those macro architecture requirements. Prerequisite: MCON 141.

MCON 353 - Programming Software Development (3 credits)

This course provides students with a comprehensive understanding of the communications industry. The course discusses: OSI and TCP/IP data models, transmission media, transmission impairments, information structure and data accuracy, local area networks, wide area networks topologies, standards and protocols, the Internet and telecommunications technologies, introduction to networking security. Prerequisite: MCON 141.

MCON 364 - Data Structures II (3 credits)

This course covers advanced programming language topics such as advanced and thread safe data structures, multi-threading, database connectivity, web development, networking, graphical user interface development and file processing. Prerequisite: MCON 264.

MCON 368 - Advanced Topics in Object-Oriented Programming (3 credits)

This course utilizes a current object-oriented programming language to explore advanced OOP concepts such as: classes, objects and encapsulation, inheritance and polymorphism, graphical user interface design and event handling, exception handling, multithreaded development and locking, generic templates, and case studies in OOP implementation. Corequisite: MCON 364. 

MCON 452 - Internship in Computer Science (3 credits)

This course requires students to complete an internship in a Computer-Science-related field. Students work on a commercial business project requiring a minimum of 160 hours in a semester. These internships complement students’ academic backgrounds and prepare them for the business world. Achievement is measured by demonstrable attainment of the project's goals. Prerequisite: MCON 264, Senior Standing, and Departmental permission.

One of the following:

MCON 343 - Database Concepts & Design (3 credits)

This course provides students with solid foundation in database management and design concepts and related skills. The course will explore database design techniques such as normalization and entityrelationship modeling, database modeling/design tools such as Microsoft Visio or MySQL Workbench and UML, database management concepts such as database performance optimization, transaction processing and concurrency control, indexing, elementary database security features, database implementation techniques using a RDBMS such as SQL Server Express and a host language to develop a GUI and provides connectivity to a database. Students will design and implement databases and use SQL to construct simple, nested and correlated queries, and inner and outer joins to retrieve and manipulate data. Prerequisite: MCON 232.

MSIN 615 - Database Management and Admin (3 credits)

[course description missing from catalog]

Required Math Courses for Major (7 credits)

MATN 121 - Calculus (4 credits)

Continuity, limits, differentiation, and integration of polynomial, exponential, and trigonometric functions. Curve sketching and related rates. Definite integrals, arc length, parametric equations and conic sections. Applications to geometry, physics, and other areas. Prerequisite: MATN 120 or placement by departmental examination.

MCON 241 - Math for Computer Science Majors (3 credits)

Topics include: the logic of compound statements, argument forms and rules of inference, truth tables, conditional statements, predicates and quantified statements, mathematical proofs and induction, set theory, functions, relations, probability, graphs and circuits, formal languages and regular expressions, finite state automata, and solvability issues and principles. Prerequisite: MATN 120 or Exam.

Three Electives From the Following (9 credits)

MATN 122 - Calculus II (4 credits)

Continuity, limits, differentiation, and integration of polynomial, exponential, and trigonometric functions. Curve sketching and related rates. Definite integrals, arc length, parametric equations and conic sections. Applications to geometry, physics, and other areas. Prerequisite: MATN 120 or placement by departmental examination.

MATN 231 - Probability Theory (3 credits)

Permutations and combinations, Classical and Modern theory, Discrete and continuous theory, Random variables, Probability Distribution Functions, Cumulative Distribution Functions, Binomial, Poisson, normal and other probability distributions, Conditional and marginal distributions, Expectation, mean, variance, Bayes Theorem, Approximations. Prerequisite: MATN 122.

MCON 201 - Digital Electronics (3 credits)

[course description missing from catalog]

MCON 223 - Wide Area Networks I (Cisco) (3 credits)

This course/lab is offered in conjunction with MCON 223-WAN-I. Students will learn how to build and support simple Ethernet and wireless routers and switches, using Cisco command-line interface (CLI) commands to perform basic router and switch configurations. They will also network tools to verify small network operations and analyze data traffic through hands on practice in the computer lab. Corequisite: MCON 223.

MCON 228 - Advanced Computer Hardware and Systems Security (3 credits)

This course covers the advanced concepts of PC computer technology, networking, and security. It emphasizes the advance practical application of skills and procedures needed for hardware and software installations, upgrades, troubleshooting systems and implementing computer system security. Additional topics covered include laptops and portable devices, wireless connectivity and basic implementation skills, system and network security, safety and environmental issues, applied network configuration and troubleshooting skills. Prerequisites: MCON 147.

MCON 234 - Numerical Methods in Computer Programming (1 credit)

In this course students practice on-line network instruction lab exercises utilizing LAN software. Students become hands-on familiar with a popular LAN software package including installation, utilization service, support and troubleshooting. The software will be adjusted to reflect the constantly changing technologies available. Lab time is required for class assignments. Corequisite: MCON 354.

MCON 245 - UNIX Operating Systems (3 credits)

This course introduces students to essential Linux topics, such as the command-line utilities, the file system, the shell, and writing shell scripts. vim, emacs, bash, and tcsh will also be introduced, as well as an understanding of topics such as redirection, wildcards, access permissions, directories, links, and how the command line is parsed. Prerequisite: MCON 141.

MCON 255 - Android Application Development (3 credits)

[course description missing from catalog]

MCON 267 - Linear Algebra for Computer Science (3 credits)

While Traditional Linear Algebra courses are focusing on systems of linear equations. This course focuses on topics applied in Neural Networks, Error-correcting Codes, and Computer Graphics. Standard material on finite dimensional vector spaces, linear transformations and matrix algebra is nevertheless covered. Having taken this course, the students should be able to pursue a bachelor level dissertation / honors project on computer generated graphics or machine learning. Prerequisite: MCON 241.

MCON 275 - Internet Tools and Web Design (3 credits)

This course introduces students to client-side scripting using JavaScript. Modern browsers are capable of performing many simple and complex tasks required to support sophisticated web applications. Such tasks include data validation, dynamic web pages, AJAX and manipulation of the DOM. This course covers the basics of the DOM and how JavaScript is used to programmatically access and change the web page dynamically. All basic JavaScript features are covered in addition to some of the prevalent libraries (i.e. JQuery) used in industry. Basic features of a popular JavaScript framework such as Vue will also be covered. Prerequisite: MCON 141.

MCON 312 - Linux Systems Programming C and C+ (3 credits)

This course covers the basic features of C and C++ programming languages as they are used in Linux systems programming. Topics include Linux system calls, Linux file structure, I/O, buffered and unbuffered file processing, and inter-process communication, including fork/exec, pipes, message queues, semaphores, shared memory. Prerequisite: MCON 243, Corequisite: MCON 264.

MCON 353 - Practicum in Software Development (3 credits)

This course provides students with a comprehensive understanding of the communications industry. The course discusses: OSI and TCP/IP data models, transmission media, transmission impairments, information structure and data accuracy, local area networks, wide area networks topologies, standards and protocols, the Internet and telecommunications technologies, introduction to networking security. Prerequisite: MCON 141.

MCON 354 - Local Area Networks (3 credits)

This course provides students with a basic understanding of various major products and designs related to Local Area Networks (LANs). The course discusses data communication protocols and several programs that are used to implement LANs. The students will learn to plan and setup basic network services, share resources, and implement access security. Prerequisite: MCON 202.

MCON 355 - Advanced Local Area Networks (LAN) (3 credits)

This course presents various LAN architectures and industry standards. Advanced topics in resource sharing and security are covered along with networking protocol suites as they apply to LANs. This course will discuss network management products and software products that allow for central resource management, directory services, and user access control. Prerequisite: MCON 354.

MCON 358 - Web Programming (3 credits)

This course introduces students to the principles and practice of implementing and designing medium-sized web database applications. Students will learn to apply web programming technology and tools for database implementation on the web, including server-side scripting, session management, and authentication. Students will also investigate Internet database application issues including database design, human computer interface techniques, and evaluation criteria for designing good web database applications. Prerequisite: MCON 232.

MCON 423 - Analysis of Algorithms (3 credits)

This course introduces the student to the concepts and applications of algorithms via time and space complexity, lower and upper bounds, as well as the mathematical framework to measure these in iterative and recursive structures. Topics include: cryptography (RSA), directed and undirected graphs, tree structures, divide-and-conquer algorithms, transform and conquer algorithms, greedy algorithms, searching and sorting bounds and optimization, hashing, dynamic programming, data compression, P v NP, and heuristic arguments therein. Corequisite: MCON 264.

MCON 451 - Special Topics in Computer Science (3 credits)

This course will cover topics of current interest in computer science. Possible offerings include: software engineering, microprocessors, computer graphics, system simulation, expert systems, game programming, and Internet applications. Prerequisite: Departmental permission.