Coursework

A list of security related courses taken during my academic tenure at Arizona State University

Course Number Course Title [U = Undergraduate , G = Graduate] Brief Description
CSE 301 [U] Computing Ethics This course covers the history of computing, intelectual property, privacy, enthical frameworks, professional ethical responsibilities and risks of computer-based systems.
CSE 310 [U] Data Structures and Algorithms This course covers data structures and algorithms right from the most simple data structures to the more complex ones such as Red-Black trees, AVL trees, hashing, and external sorting.
IEE 494 [U] Project Management Intuitively from its title, this course covers the different project management techniques, methodologies utilized to handle large projects and developing project strategies for projects from scratch. The primary puspose of this course was to prepare students to take the PMP exam.
CSE 494 (468) [U] Computer and Network Forensics This course provided students with a basic and comprehensive understanding of computer forensics and corresponding techniques and tool. This involved understading the principles, technologies, tools and relevant topics in the field of computer forensics including incident responses, cybercrimes, and ethics and legal issues.
CSE 412 [U] Database Management This course introduces the concept of Database Management Sytems (DBMS) including data models, and languages. Additional topics covered include relational database theory, database security, integrity and concurrency.
CSE 465 [U/G] Information Assurance This course provided students with a basic and comprehensive understanding of the problems of information assurance and coresponding solutions. The goal of this course is to understand the security objectives, principles,  technologies and issues and to additionally understand how "security" can fit in real systems.
CSE 466 [U] Computer Systems Security This course covers the art of countermeasures to attacks on general purpose systems, operating systems, applications and the end-user. The topics provide the student a keen insight into the methods employed by the miscreants, the loopholes that exist and how they come about and the methodology to prevent and degen against such attacks.
CSE 566 [G] Software Project, Process and Quality Management This course provides the students with a more indepth perspective into software project management. This includes, risk management, configuration management, quality management, and simulated management experience.
CSE 590 [G] Reading and Conference This course is an "Independent Study" course that students working on a Thesis or Dissertation are eligible to take so as to enable them to perform research and explore a field in computer science along with their adviser or committee chair. As part of my independent study course, I explored the field of security more particularly a topic called "Access Control". The work performed in this independent study was part of a published paper in ACM which can be viewed here
CSE 545 [G] Software Security The primary objective of this course is to build "Secure Software". This course provides students with good understanding of theories and tools used for secure software design, threat analysis and modeling, security coding and testing.
CSE 598 [G] Design Analysis of Algorithms This course covers a more indepth view into the design and analysis of algorithms including methodologies such as Divide and Conquer, Dynamic Programming, Greedy Algorithms, Network Flows, NP- completeness and Approzimation Algorithms.
CSE 539 [G] Applied Cryptography This course covers the usage of cryptographic protocols for computer and network applications. With the advent of electronic commerce, online transactions, consumer computing and authentication, cryptography is playing an important role in securing the privacy and authenticity of electronically stored and transmitted information.
CSE 598 [G] Distributed Software Development This course enables students to develop an understanding of software engineering of programs using concurrency and synchronization. In addition to that it also helps students develop an understanding of the development of distributed software and an ability to design and publish services as building blocks of service-oriented applications.