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 511  Software Tools  (4 Credits)  

This introductory course serves as a foundation for all other computer courses or for General Education as needed. The focus of the course is on personal computers and their applications, concentrating on computers using a Windows operating system. Basic hardware and software concepts are reviewed and examined in depth. The lab activities concentrate on gaining proficiency in the use of a common operating system; software applications, including word-processing, spreadsheets, and presentation software; tools such as the World Wide Web, including electronic mail; and information resources and research databases. Students are introduced to databases and networking.

View Course Outcomes:

  1. Use common computing terminology correctly to explain how computers work and to describe the characteristics of system hardware, software and peripheral devices.
  2. Identify characteristics of common networks such as WANs, (including the Internet) LANs and the protocols that support them.
  3. Manage files and directories in both a single user and networked environment.
  4. Identify and explain the importance of safe computing practices (e.g. spyware and virus preventions, operating system updates.)
  5. Create a formatted word-processing document that utilizes common formatting features.
  6. Create a formatted spreadsheet that performs basic calculations using functions and formulas.
  7. Create an effective presentation using presentation software.
  8. Create a database from an existing design, create the forms for data entry, make queries of the database and generate reports.
  9. Demonstrate ability to navigate a course management system including making postings to a discussion board, submitting assignments and reviewing content. 1
  10. Articulate and discuss basic ethical, legal and societal issues arising from computer use and the implications of electronic technologies. 1
  11. Efficiently search, locate and evaluate information found on the Internet. 1
  12. Format academic and professional documents in MLA, APA or other appropriate citation formats.

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 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 538  Databases in the Workplace  (2 Credits)  

Database Management Systems come in many shapes and sizes and range from low cost options for individual users to complex solutions requiring significant organizational investment. Since there are a variety of DBMSs available for a large number of uses, knowledge workers in any field can benefit from familiarity with some of the basic features, as well as strengths and weaknesses, of the major types. This introductory course focuses on the ways in which databases function in the workplace and provides a starting point for understanding the issues involved in selecting, designing, and making decisions about a DBMS. NOTE: Prior basic computer experience is recommended. This course is not appropriate for Information Technology majors and may not be combined with other IT courses to satisfy degree requirements.

View Course Outcomes:

  1. Demonstrate a beginning knowledge of the function, role, and structure of database systems (such as hierarchical, network, relational, and object-oriented).
  2. Compare and contrast the structure of different database management systems.
  3. Define hierarchical, network, relational, and object-oriented databases.
  4. Create a database from an existing design, create the forms for data entry, make queries of the database, and generate reports.

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 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 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 625 Advanced Programming with Python

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 625 Advanced Programming with Python

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.