Computer (CMPL)

CMPL 502  Excel  (2 Credits)  

A comprehensive examination of spreadsheet software. Students will build a variety of spreadsheets using simple and complex formulas, functions, graphics, database features, sorts, linkages within spreadsheet and between spreadsheets, and macros.

Prerequisite(s): Basic Algebra and knowledge of computer operating system. This course is valuable for all Business students and Computer Science Students. It provides competency and fluency in the standard software used for business analysis and as a link between large computer software systems and the end user.

View Course Outcomes:

  1. Design, build, edit, and format workbooks.
  2. Use spreadsheet software to present and analyze quantitative information, draw conclusions, and evaluate the reliability of those conclusions.
  3. Practice advanced Excel capabilities.

CMPL 515  Programming Fundamentals  (4 Credits)  

The course is designed to provide students with a sound background in structured programming logic and design. These foundational concepts can be applied regardless of which programming languages a student eventually uses to write programs. The demonstration language for programming concepts will be Microsoft Visual Basic. The course covers the key mathematical and logical constructs that are the basis of much programming. Topics include the software development life cycle, particularly the programming phase; structured programming techniques; problem-solving and algorithm development; decision control structures, including selection (IF/CASE) and repetition (looping) structures; variables and arrays; and data structures.

Prerequisite(s): MATH 502; Proficiency in Excel is necessary for success in this course.
CMPL 518  Visual Programming I  (4 Credits)  

This course introduces programming in the Windows graphical user interface environment, focusing on modular and object-oriented design, event driven activity, the use of controls, and integration with the .NET framework architecture. Upon completion of this course students will be able to develop programs that incorporate visual programming conventions, user interaction and interface, database interaction and interface, and other tools fundamental to visual programming.

Prerequisite(s): CMPL 515 Programming Fundamentals

View Course Outcomes:

  1. Understand the language by creating working C# programs using both the simple command line and the Visual Studio environment.
  2. Learn about data and how to input, store, and output data in C#.
  3. Explore classic programming structures—making decisions, looping, and manipulating arrays—and how to implement them in C#.
  4. Provide a thorough study of methods, including passing parameters into and out of methods and overloading them.
  5. Understand object-oriented concepts of inheritance and exception.
  6. Understand error and exception handling.

CMPL 525  Foundations of Cybersecurity  (4 Credits)  

This course addresses the foundations of cybersecurity, including threats and vulnerabilities as well as the tools, technologies, and strategies used to manage those threats and vulnerabilities. PREQUISITE(S): None

View Course Outcomes:

  1. Define key concepts and terminology in cybersecurity.
  2. Identify threats to cybersecurity.
  3. Articulate strategies to identify and remediate vulnerabilities in information assets.
  4. Discuss the systemic components (including personnel) necessary for an effective cybersecurity program.
  5. Apply appropriate solutions to cybersecurity incidents.

CMPL 530  Introduction to Programming with Python  (4 Credits)  

In this introductory programming with Python course, students will have the opportunity to learn about data types, control flow, object-oriented programming, and graphical user interface-driven applications. The examples and problems used in this course are drawn from diverse areas such as text processing, simple graphics creation, and image manipulation. This course will explore the large standard library of Python 3, which supports many common programming tasks.

Prerequisite(s): CMPL 515 Programming Fundamentals

View Course Outcomes:

  1. Demonstrate the fundamentals of writing Python scripts.
  2. Develop a program using core Python scripting elements such as variables and flow control structures.
  3. Discover how to work with lists and sequence data.
  4. Write Python functions to facilitate code reuse.
  5. Use Python to read and write files.
  6. Develop robust code by handling errors and exceptions properly.
  7. Utilize the Python standard library.
  8. Explore Python's object-oriented features.
  9. Search text using regular expressions.

CMPL 537  Intermediate Programming with Python  (4 Credits)  

Students will have the opportunity to take their Python programming skills to the next level with this intermediate course. This course includes a review of basic concepts such as lists, strings, and dictionaries, and more advanced topics such as threading, multiprocessing, context managers, and generators.

Prerequisite(s): CMPL 530 Introduction to Programming with Python

View Course Outcomes:

  1. Write Python applications for data-analysis problems.
  2. Apply the concepts and use the constructs of Python libraries, including numpy, pandas, and the re (regular expression) package in a course project.
  3. Demonstrate ability to load, cleanse, and process data according to accepted professional standards.
  4. Use Web APIs and/or web scraping to download data.
  5. Create, load, and process data in a relational database.
  6. Write object-oriented programs.

CMPL 540  Best Practices in Website Design  (2 Credits)  

This hands-on course outlines the fundamentals of web design. Students consider ethical use of information and best practices when creating websites using free web page design programs. Working with a basic design program, students explore layout, graphics, text, color, links, tables, frames and content. Students use website design software to create a simple website of their own, as well as examine publication and promotion options. NOTE: Basic computer competence is required. This course is not appropriate for Information Technology majors and may not be combined with other Information Technology courses to satisfy degree requirements.

CMPL 612  Advanced Software Tools  (4 Credits)  

This is a project-oriented software applications course to help the student gain competency with advanced features of office productivity software and to introduce more advanced database application concepts. NOTE: Excel is recommended for success in this course.

CMPL 614  Computer and Network Systems  (4 Credits)  

This course offers a practical study of the hardware and software of modern computing systems and networks. Participants increase their knowledge of hardware and operating system software by studying the functions and interactions of computer and peripheral components such as central processing units (CPU), memory, storage, print engines, etc. Learners also study the workings of network components such as protocols, hubs, routers, and switches. Through exposure to a mix of theory, extensive vocabulary, and specific knowledge about trends in contemporary systems, learners develop skills to effectively communicate with others regarding the specification, purchase, and installation of an office or home computer system/network.

Prerequisite(s): CMPL 515 Programming Fundamentals or CMPL 612 Advanced Software Tools.

View Course Outcomes:

  1. Demonstrate a deeper understanding of electronic data processing and data transport, developing both conceptual knowledge and practical skills.
  2. Explain the relationships that exist between performance considerations of the hardware and software components of a computer system.
  3. Describe representative network protocols, the constraints that system software and device selection may impose on protocol selection and the problems engendered by multiple (incompatible) protocols within an organization.
  4. Demonstrate a practical knowledge that focuses on the typical advanced user, types of questions pertaining to hardware and system-level software of common personal computers, its applications software, and its connections to a network.
  5. Use the vocabulary of the field to communicate effectively with technical professionals.
  6. Recognize the potential benefits and dangers of intranet/internet implementations.
  7. Identify and use current trade and professional resources to keep abreast of trends in the field.

CMPL 618  Visual Programming II  (4 Credits)  

This course introduces learners to advanced programming techniques in .Net Graphical User Interface as well as C#. Winforms, XAML and UWP (Universal Windows Platform) will be explored employing: Pattern Matching, Delegates, Events, Operator Overloading, Indexers, Extension Methods, Lambda Expressions, Query Expressions, Threads, Asynchronous Programming, Dynamic Objects, and Basic introduction to Windows forms.

Prerequisite(s): CMPL 518 Visual Programming I.

View Course Outcomes:

  1. Design and develop applications and components using Visual Studio .NET., and C#.
  2. Apply Object-oriented concepts and techniques to code development.
  3. Describe and apply generics.
  4. Use collections, decouple application logic and handle events in a programming situation.
  5. Conduct query in-memory data through utilization of query expressions, Asynchronous Operations, Operator Overloading, and improve throughout by using tasks.
  6. Build Universal Windows Platform apps.

CMPL 620  Virtualization and Cloud Computing  (4 Credits)  

In this course students will have the opportunity to learn the fundamental concepts, components, infrastructure, as well as security and privacy considerations of cloud computing and virtualization systems. Course activities will address the skills and knowledge necessary to install, configure, and manage virtual environments and how to effectively plan, implement, and manage cloud computing.

Prerequisite(s): CMPL 614 Computer and Network Systems, CMPL 525 Foundations of Cybersecurity.

View Course Outcomes:

  1. Identify the components of the cloud infrastructure and their functions.
  2. Examine service models such as Software-as-a-Service, Platform-as-a-Service, and Infrastructure-as-a-Service.
  3. Describe deployment models of the cloud.
  4. Create, manage, and troubleshoot virtual machines.
  5. Describe virtual networks and configure virtual switches and virtual storages.
  6. Examine the features and functions of different storage protocols, such as FC, FCoE, iSCSI, and NFS.
  7. Use troubleshooting methodology to fix issues in a virtualized environment.

CMPL 622  Human Computer Interaction  (4 Credits)  

This course builds an understanding of human behavior with interactive objects, focusing on how to develop and evaluate interactive software using a human-centered approach. This includes examining the many different types of interactive software, understanding the principles of effective graphical user interface design, evaluating human-centered software and software development and exploring aspects of collaboration and communication as they affect individual and group interaction with software systems.

View Course Outcomes:

  1. Articulate how different disciplines (human factors, cognitive psychology, engineering, graphics design) influence the design of computer systems.
  2. Classify input/output devices and techniques and their effect on human-computer interaction.
  3. Specify human-computer interaction dialogues.
  4. Describe the main concepts (conceptual model, metaphors and paradigms) that influence human-computer interaction) and demonstrate that influence.
  5. Describe the main theories of cognition and demonstrate how these are used when designing interactive systems.
  6. Describe and apply the process for designing interaction.
  7. Demonstrate why a user-centered approach is preferred.
  8. Choose the appropriate method for evaluating an interactive system.
  9. Model problems.

CMPL 625  Advanced Programming with Python  (4 Credits)  

In this course, students will have the opportunity to take a deep dive into several advanced concepts of Python programming and explore larger-scale application development using the language. Students will also develop an understanding of the issues associated with more extensive software projects and undertake code reviews. This course also surveys web application development tools, along with specialized skills such as Client/Server application development.

Prerequisite(s): CMPL 537 Intermediate Programming with Python

View Course Outcomes:

  1. Demonstrate effective use of a debugger, PyUnit, docTest, logging, and special environments.
  2. Program decorators, closures, lambda, and list comprehensions.
  3. Describe how iterators, generators, threads, and multiprocessing work.
  4. Explore modern data structures to include collections, array, and queues.
  5. Utilize platform independent file manipulation, and file pattern matching in a course project.
  6. Apply mmap, temporary files, and Request module in a course project.
  7. Work with string files and set up a client-server program using WebApp2 or Flask.
  8. Understand and be able to process HTML, JSON, YAML, and REST.

CMPL 628  Visual Programming III  (4 Credits)  

This course introduces learners to a robust tool for creating high performance applications for the Windows Graphical User Interface and for the World Wide Web. The tools presented in this course prepare the learner for participation in large, potentially mission-critical projects at the enterprise level. Application of advanced algorithmic and programming techniques is expected.

Prerequisite(s): CMPL 618 Visual Programming II.

View Course Outcomes:

  1. Create and modify console applications.
  2. Create and modify Windows applications.
  3. Create and modify Microsoft Foundation Class applications.
  4. Plan and implement well-structured C++ programs appropriate to the problem presented.
  5. Understand and apply the appropriate tools for successful memory management in a large application.
  6. Write functions using appropriate programming control structures.
  7. Create dialog-based applications.
  8. Create document-based applications.
  9. Create visual interface components. 1
  10. Create applications that interface and interact with database. 1
  11. Design and implement complex algorithms. 1
  12. Demonstrate fluency in the syntax and structure of Visual C++.NET.

CMPL 633  Mobile Application Development  (4 Credits)  

This course introduces students to programming technologies, design, and development related to mobile applications. Topics include accessing device capabilities, industry standards, operating systems, and programming for mobile applications using an OS Software Development Kit (SDK). Through course activities, students will have the opportunity to develop the skills needed to create basic applications for mobile devices.

Prerequisite(s): CMPL 515 Programming Fundamentals.

View Course Outcomes:

  1. Examine mobile application environments and technology.
  2. Explain the concepts and processes of mobile application development.
  3. Articulate the main design and development issues specific to mobile applications.
  4. Install and configure mobile application development tools.
  5. Design and develop user Interfaces for both the Android and iOS platforms.
  6. Save information across multiple operating system platforms.
  7. Apply Python programming concepts to mobile application development.

CMPL 638  Web Application Development  (4 Credits)  

This course addresses modern website development using contemporary languages like PHP and Python. Development skills include presenting and receiving information through a website, validating entered information, and storing entered information in text files or databases. Students will have an opportunity to develop an understanding of the principles of web page and website design; standard object models, and the use of server-side programs for database and file access; testing, software quality assurance; and the process of publishing websites.

Prerequisite(s): CMPL 515 Programming Fundamentals.

View Course Outcomes:

  1. Examine mobile application environments and technology.
  2. Explain the concepts and processes of mobile application development.
  3. Articulate the main design and development issues specific to mobile applications.
  4. Install and configure mobile application development tools.
  5. Design and develop user Interfaces for both the Android and iOS platforms.
  6. Save information across multiple operating system platforms.
  7. Apply Python programming concepts to mobile application development.

CMPL 650  Best Practices in Information Technology  (4 Credits)  

This course is a project-oriented capstone learning experience that is designed to integrate learning from coursework with related work or other experience. Students focus on best practices in information technology and project management, with specific attention to their area of specialty. Students will complete an integrative project related to their program option and career interests.

Prerequisite(s): CRIT 602 Advanced Critical Analysis and Strategic Thinking, IDIS 601 Interdisciplinary Seminar, and all major requirements must be completed prior to enrollment in this course. Academic Advisor approval is required for registration to be processed.

View Course Outcomes:

  1. Conceptualize the independent project including problem definition, general scope, and possible approaches.
  2. Compile a project plan for completing the independent aspect of the study.
  3. Develop functional and design specifications appropriate to the area of specialty.
  4. Analyze theory to select and document best practices for the independent project.
  5. Create a prototype of a specified portion of the independent project.
  6. Develop a test plan.
  7. Integrate design principles with methodology to create an implementation plan.
  8. Demonstrate an appropriate level of expertise in the professional application of tools in the area of specialty.
  9. Produce effective documentation for all aspects of the project.