
Relevant Courses
Graduate Level
Software Development:
MSCS 510 - Software Design & Development (Spring 2022 - Grade Received: A)
This course introduces a practical approach to the design and development of modern software systems. We study best practices for crafting and maintaining codes. This includes investigation of certain development, testing, troubleshooting, and debugging patterns, good programming style, and empirical analysis of complexity. The course is project-driven. We work with an original, complex system that has a server-side, client-side, and a well-designed user interface. Java is the language of choice.
MSCS 542 - Database Management Systems (Spring 2022 - Grade Received: A)
A study of the issues related to the design and administration of modern database systems, with special emphasis on relational database systems. This course will study data modeling, query languages, schema refinement and tuning of existing databases, physical implementation of databases, and systems issues in the management of data, Object Relational Mapping, distributed and NoSQL databases. There will be a particular emphasis in this class on database integration within applications.
Undergraduate Level
Software Development:
CMPT 475 and 476 - CS Project I and II (Capping) (Fall 2021 - Grade Received: A)
CMPT 475 is the first in a two-semester-sequence capping course for Computer Science majors. During the first semester, students study project management techniques, review oral presentation skills, study creating software documentation, assemble project teams (integrated teams including students in the ITS capping course), select a project client, perform analysis and design, and begin project implementation. The second semester is used to complete project implementation. The capping experience culminates with an oral presentation to the client and delivery of the software and its documentation.
CMPT 424 - Operating Systems (Fall 2021 - Grade Received: A)
The goal of the course is to provide understanding and appreciation of a computer system’s components; their characteristics, functions, interactions and integration to enhance performance as well as the fundamental concepts of an Operating System viewed as a resource manager and issues that influence the design of Operating Systems. The course will include a project to enable students to gain some learning experience.
CMPT 412 - Robotics (Spring 2021 - Grade Received: A)
This is a hands-on course where the student will learn about robots and about several aspects related to robot design and programming. The course covers material related to mechanical design, issues related to planning and reasoning under uncertainties, and sensors and control. Students will apply the techniques learned in a real robot system, using the LEGO Mindstorm kit, and the NQC programming language.
CMPT 435 - Algorithm Analysis and Design (Fall 2020 - Grade Received: A)
This course continues the study of data abstraction and algorithm complexity from a more mathematically formal viewpoint. Time complexity of algorithms will be examined using Big O notation and worst-, best-, and average-case analyses. The ideas of polynomial-time, NP, exponential, and intractable algorithms will be introduced. Elementary-recurrence relation problems relating to recursive procedures will be solved. Sorting algorithms will be formally analyzed. Strategies of algorithm design such as backtracking, divide and conquer, dynamic programming, and greedy techniques will be emphasized.
CMPT 331 - Theory of Programming Languages (Fall 2020 - Grade Received: B+)
This course focuses on the organization of programming languages, the formal study of language specification and analysis, compilation versus interpretation, data and control structures.
CMPT 422 - Computer Organization and Architecture (Spring 2020 - Grade Received: A-)
The purpose of this course is to acquire an understanding and appreciation of a computer system’s functional components and their characteristics. Students will learn instruction set architecture, the internal implementation of a computer at the register and functional level, and understand how main activities are performed at machine level as well as gain an appreciation for hardware design at micro level.
CMPT 330 -System Design (Spring 2020 - Grade Received: A)
This course discusses the processes, methods, techniques and tools that organizations use to determine how they should conduct their business, with a particular focus on how computer-based technologies can most effectively contribute to the way business is organized. The course covers articulating business requirements for the technology solution, specifying alternative approaches to acquiring the technology capabilities needed to address the business requirements, and specifying the requirements for the information systems solution in particular, in-house development, development from thirdparty providers, or purchased commercial-off-the-shelf (COTS) packages. This course provides an introduction to the field of human-computer interaction (HCI), an interdisciplinary field that integrates cognitive psychology, design, computer science and others. Examining the human factors associated with information systems provides the students with knowledge to understand what influences usability and acceptance of IS. This course will examine human performance, components of technology, methods and techniques used in design and evaluation of IS. Societal impacts of HCI such as accessibility will also be discussed. User-centered design methods will be introduced and evaluated. This course will also introduce students to the contemporary technologies used in empirical evaluation methods.
CMPT 308 - Database Management (Fall 2019 - Grade Received: A)
This course examines the theories and concepts employed in database management systems (DBMS). The function of various types of DBMS is described including their purpose, advantages, disadvantages, and applications in business. The course explores the following topics: DBMS architectures, data modeling, the relational model, database normalization, relational algebra, SQL, client/server systems, DB physical design, multiple user environments, database security. The students will work with a major DBMS to develop a database project.
CMPT 307 - Internetworking (Spring 2020 - Grade Received: A)
This course provides students with hands-on experience in setting up, configuring, and troubleshooting internetworks. It expands on and reinforces network concepts introduced in CMPT 306.
CMPT 306 - Data Communications and Network (Fall 2019 - Grade Received: A)
This course examines the concepts and mechanisms of wired and wireless data-, audio-, and video-transport systems. Network architecture, terminology, control, standards (OSI and TCP/IP models), and general topologies will be discussed. Current equipment and physical interconnections will be explored for a range of network services to support activities such as application development, distributed processing, operating information centers, and providing distance learning. Topics covered include an analysis of the problems and limitations imposed by the physical channel, wireless networks, comparative switching techniques, routing, congestion control, and higher-level protocols needed to complete the end-user to end-user connection.
CMPT 221 - Software Development II (Fall 2019 - Grade Received: A)
This course builds on CMPT 220 to continue our students’ progress towards true software craftsmanship. Students will study advanced concepts in software design and testing while developing skills including but not limited to the areas of advanced client-side programming, server-side programming, data integration, and thinking with portals.
CMPT 220 - Software Development I (Spring 2019 - Grade Received: A)
This course builds on CMPT 120 to introduce our students to the art and science of software development. Students will study software development history while mastering SD skills including but not limited to real-world modeling and multi-language software development.
CMPT 230 - Software Systems and Analysis (Spring 2019 - Grade Received: A)
This course establishes a foundation for the understanding of information systems in organizations and the methods used to analyze an organization’s information needs. Students who complete the course will have a working understanding of techniques for identifying requirements, clarifying and refining requirements, and process modeling, all within an object-oriented framework. Students will gain an understanding of the system development life cycle, systems analysts’ roles and responsibilities, and the interpersonal skills necessary to analyze business problems.
CMPT 120 - Introduction to Programming (Fall 2018 - Grade Received: A)
This course introduces students to problem solving with computer programming. Students will study some historical context for problem solving with programming while mastering introductory programming skills including but not limited to user interaction design, procedures, functions, scope, alternation, repetition, collections, and real-world modeling.
CyberSecurity:
CMPT 479 - Cybersecurity Capping (Fall 2021 - Grade Received: A)
In this course, students will have the opportunity to put into practice the combination of techniques studied throughout the cybersecurity major. Students will implement a complete cybersecurity project, using skills from both Computer Science and ITS. During the course, you will assemble a team for the project, gather project requirements, create and track a project plan, present progress status for the project, implement a working prototype for the project and generate system documentation. The instructor will provide specific guidance on team member roles and responsibilities. At the end of the course, you will make a final presentation and deliver the system with the corresponding documentation as specified by the instructor. Students are encouraged to ask questions and find solutions to real-world problems with hands-on experiences and guidance from faculty members and community partners.
CMPT 488 - Introduction to Quantum Computer Algorithms and Programming (Fall 2020 - Grade Received: A)
This course provides an examination of the landscape, key terms, and concepts needed to understand quantum computing algorithms. Students will learn quantum computing theory, how to code quantum programs, and the fundamentals of several commonly used quantum algorithms. Students will experiment with writing and executing code on a working quantum computer, the IBM Q System, using the open source Qiskit language in a secure, online virtual cloud lab environment. The course provides a technical overview of the fundamental math and physics underlying quantum computers. We discuss the types of problems best suited to quantum computers, and examples of quantum algorithms such as Deutsch-Josza, Simon, Grover, and Shor algorithms. Quantum teleportation and cryptography will also be discussed.
CMPT 418 - Mobile Security (Spring 2021 - Grade Received: A)
This course deals with security concerns in the rapidly evolving world of mobile and wireless devices, which are becoming the primary means of computing and communication for both the workplace and home. The course introduces fundamentals of wireless communication, including the evolution of wireless networking and its impact on the corporate data center. Students will explore the wireless network infrastructure, along with wireless LAN (WLAN) security threats and auditing tools. Students will gain experience with WLAN implementation, management, and countermeasures, fingerprinting mobile devices, and the unique challenges of implementing WLAN security policies. Hands-on experience will be provided using the Android mobile platform, along with virtual cloud security labs where students can safely experiment with different WLAN tools, risk assessments, standards, and security models.
CMPT 417 - Hacking and Penetration Testing (Spring 2021 - Grade Received: A))
This course provides an examination of the landscape, key terms, and concepts that a security practitioner needs to understand in order to protect their data centers. Students will be introduced to best practices before, during, and after a cyberattack has taken place. The course provides a technical overview of hacking, including how attackers conduct surveillance to identify security weaknesses, foot-printing a targeted site, and the methodology hackers follow in exploiting known vulnerabilities. Students will gain experience designing a penetration test plan, implementing intrusion detection systems, and performing incident response with basic digital forensics. Ethical hacking and penetration testing tools will be described, with the aid of a secure, online virtual cloud lab environment where students can safely practice their skills.
CMPT 421 - Computer Forensics (Fall 2020 - Grade Received: A)
This course deals with computer forensics, the science of identifying and analyzing digital evidence in cybercrimes. This is a comprehensive computer architecture course with an emphasis on cybercrime investigation. Students will study the hardware and software architecture of computer systems, including devices used on the Internet of Things, and learn how to use forensics for cybercrimes that affect individual and corporate privacy. Topics covered include: risks, vulnerabilities, and countermeasures; illegal activities based on traces left on computer hardware and peripherals; uncovering attacks using standard operating system tools. Ethical concerns related to cybersecurity will be addressed. Students will also learn to tackle different forensics situations using digital evidence, and learn how to collect evidence that have legal value, using frameworks such as the open source Linux Caine distro. We will examine the fundamentals of system forensics, including the roles and responsibilities of computer forensics specialists, dealing with computer forensic evidence, and application of forensic analysis skills. Real world examples will be provided to support the course material.
CMPT 416 - Introduction to Cybersecurity (Fall 2020 - Grade Received: A)
This course provides an introduction and overview of key concepts in cybersecurity for cloud and enterprise data centers. We provide a framework for understanding cybersecurity concepts based on the NIST cybersecurity lifecycle. Students will be introduced to core concepts including physical data center security, authentication, access control, identity management, secure software development principles and practice, cryptography, cloud security, compliance, and governance. Students will be introduced to a variety of common security attacks, including code injection, man-in-the-middle, phishing, buffer overflows, and adjacency attacks. Using a self-contained lab environment, isolated from the campus network and the Internet, students will be able to practice common hacks and defense strategies, and learn how to scan websites and cloud environments for security vulnerabilities. Practical examples of real world security breaches will be used as case studies to illustrate key concepts.
Other:
MATH 205 - Discrete Mathematics (Spring 2019 - Grade Received: A)
This course introduces the algebraic concepts, methods, and techniques that form the basis of computer science, including the relevant areas of logic, set theory, matrices, graphs, geometric linear algebra, and the theory of relations; functions; bounds; and permutations.
BUS 101 - Introduction to Business and Management (Fall 2018 - Grade Received: A)
This course introduces students to the world of business and the practice of management. It is designed to be an interactive and lively experience that provides the student a basic understanding of organizations, managers, business, and themselves. Students will learn to see and analyze an organization as a complete and integrated system. We will cover the dynamic world of business, the nature of managerial work, the history of managerial thought, planning and decision making, organization structure and design, individual responsibility, and the nature of careers in today’s business environment. Students will be challenged to think critically and discuss the implications of organizational action.