top of page

Relevant Coursework

Computer Science (Major)

User-Centered Design and Prototyping

Tool: Figma

To develop effective software products, Human-Computer Interaction (HCI) methods are needed to align user needs with the product design. Some considerations in this design are how to maximize usefulness and enjoyment while reducing frustration and human error. HCI methods draw from a range of disciplines including computer science, cognitive science, and design. This course engage in a user-centered approach to this design problem including ideation, evaluation of systems based on design principles, gathering and evaluation of user needs, and rapid prototyping and testing of designs

Principles of Digital Hardware

Combinational and sequential logic, registers, arithmetic units. Introduction to computer architecture.

Tools: Quartus, Questa

Automata, Computability and Formal Languages

Finite state machines; formal grammars; computability and Turing machines

Language: Python

Object-Oriented Design and Programming 

Language: Python, Java, C++

Advanced Computational Problem Modeling

Language: Java

Introduction to computer system

Language: C

Computational Problem Solving

Language: Python

Programming Abstractions and Methodologies

Language: Python


Language: Python

Computer Graphics

Language: Python, JavaScript, HTML

Data Science Foundations

Language: Python, R

Classes, encapsulation, inheritance, polymorphism, class derivation, abstract classes, namespaces, function overloading and overriding, function name overload resolution, container classes, template classes; unified modeling language (UML); constructing conceptual models, system sequence diagrams; design patterns; case studies.

Advanced data structures (e.g. graphs, priority queues, quad trees, etc.) from the perspective of solving advanced computational problems. Students will learn to program in the Java programming language using object-oriented features such as inheritance, interfaces and generics. 

Introduction to computer systems; data representation; machine/assembly languages; memory organization; virtual memory; and concurrency.

An introduction to computational problem solving using the Python programming language. Covered the basic elements of programming (e.g. conditionals, loops, inputs/outputs), modular program design, and the basics of data abstraction through object-oriented programming.

A continued exploration of computational problem solving, with a focus on using abstraction to manage program complexity. Students will learn to use both functional and data abstractions, analyze the time and space complexity of algorithms, and utilize functional, object-oriented, and event-driven paradigms within their programs.

​Advanced theory of algorithms. Topics include: algorithm analysis; algorithm design techniques; and computational complexity.

The development of high-level, device-independent graphics routines; basic line drawing algorithms, text design, and other graphics primitives; 2-D representations of coordinate systems, image segmentation, and windowing. 

An introduction to fundamental concepts of data science, data science programming, and problem-solving techniques for data-driven problems. Data ethics and modern practices are discussed. Topics include the basics of R, the application of Python to data science, data acquisition, integration and transformation, problem understanding, data preparation, standardization, and exploratory data analysis. In addition, command-line tools and editors are explored in UNIX, and methods to access and analyze RDBMS databases are examined. 

Operating System

Language: C

Principles of computer operating systems; process management; memory management; file systems; protection; deadlock. Concurrent programming.

Supply Chain Management (Minor)

Introduction to Microeconomics

An introduction to consumer behavior and the theory of the firm. Topics include the demand behavior of households, the supply behavior of business firms, an introduction to market structure, market equilibrium, market failures, the workings of input markets, international trade and the role of the government in the economy.

Principles of Financial Accounting

Introduction to accounting records, their purpose and use, emphasizing the establishment of a solid conceptual background. Accounting procedures for specific asset, liability, and owner’s equity accounts are also examined from the point of view of users of financial statements.

Principles of Managerial Accounting

Introduction of managerial accounting information for planning, controlling, and making decisions within a firm. Current changes to the business environment and their impact on accounting is also presented.

Introduction to Supply Chain Management

Emphasis on the tactical and strategic decisions that match supply to demand. Topics covered include forecasting and evaluating customer demand, design and operation of distribution systems, and integration of operations and purchasing activities to deliver customer value. Overview of strategic supply chain design and the integration of internal and external partners. The roles of marketing, finance, engineering, purchasing and operations in the supply chain are examined. Combination of lecture, seminar, and case discussions.

Global Purchasing and Supply Chain Management

Emphasis on developing and maintaining successful supplier relationships in recognition of their critical importance to organizations. Systematic coverage of the process: strategic make vs. buy and outsourcing decisions; ethics and social responsibility; development of requirements; source selection; price determination and negotiation; quality management; supplier development; and relationship management. Combination of lectures, case studies and class discussions.

bottom of page