Skip to main content

ITU Class Schedule


Schedule is subject to change

For more information about the application process, click here.
For information about how to pay for courses, check out our Accepted Forms Of Payments page.

All courses are 3 credit hours unless otherwise noted.


Search Filter

Business Administration

Internship
Course Code Course Classroom Session Dates Time Instructor
INT 593F-BA Internship (Full-Time)
Please see the Internship Policy.
1/7-4/21 Jahan Ghofraniha
INT 593F-BA.1 Internship
Jahan Ghofraniha
INT 593P-BA.1 Internship
1 credit hour (unit)
Frank Aguilera
INT 593F-BA.1 Internship
Frank Aguilera
INT 593P-BA.1 Internship
Jahan Ghofraniha
INT 593F-BA.1 Internship
Jahan Ghofraniha
INT 593P-BA.1 Internship
Frank Aguilera
INT 593F-BA Internship (Full-Time)
1/7-4/21 Jahan Ghofraniha
INT 593P-BA Internship (Part-Time)
1/7-4/21 Frank Aguilera
Online Session I
Course Code Course Classroom Session Dates Time Instructor
HCM 525 -1 Principles of Managed Care
5/7 - 6/24 Barbara Arnoldussen
MKT 551 -1 Competitive Marketing Strategies
5/7 - 6/24 Patricia Wiggin
MIS 527 -1 Technology and Operations Management
5/7 - 6/24 Ramesh Konda
MKT 591 -1 Advertising Strategy
5/7 - 6/24 Jeffery Kennedy
ACT 601 -1 Cost Accounting
1/8-2/25 Online Session 1 Carmelita Omran
MKT 551 -1 Competitive Marketing Strategies
9/4 - 10/21 Patricia Wiggin
MGT 582 -1 Team and Group Dynamics
9/4 - 10/21 Barbara Arnoldussen
MGT 571 -1 Critical Thinking Strategies in Decision Making
1/7-2/24 Barbara Arnoldussen
MIS 527 -1 Technology and Operations Management
1/7-2/24 Ramesh Konda
MKT 551 -1 Competitive Marketing Strategies
1/7-2/24 Patricia Wiggin
Online Session II
Course Code Course Classroom Session Dates Time Instructor
MGT 503 -1 Organizational Leadership Theories
6/25 - 8/12 Patricia Wiggin
MGT 572 -1 High-Technology Entrepreneurship
6/25 - 8/12 Leila Halawi
MGT 503 -4 Organizational Leadership Theories
2/26-4/15 Karen Haley Allen
MKT 551 -2 Competitive Marketing Strategies
2/26-4/15 George Ackerman
MGT 503 -2 Organizational Leadership Theories
2/26-4/15 Patty Wiggin
MKT 551 -2 Competitive Marketing Strategies
2/26-4/15 Online Session 2 George Ackerman
MIS 537 -1 Management Information Systems
2/26-4/15 Leila Halawi
FIN 534 -1 Financial and Economic Analysis
10/22 - 12/9 George Guim
Monday
Course Code Course Classroom Session Dates Time Instructor
MGT 566 -1 Production and Operations Management
203 5/7-8/19 6:00PM - 9:00PM Nik Tehrani
MKT 582-1 Marketing Management
204 6:00 pm - 9:00 pm Nik Tehrani
Tuesday
Course Code Course Classroom Session Dates Time Instructor
BUS 517-1 Organization Culture and Diversity
203 5/7-8/19 6:00PM - 9:00PM Esmail Rahimian
INB 553-1 Fundamentals of International Business
306 6:00 pm - 9:00 pm Soly Paterson
MBN 697 -1 MBA Thesis
204 6:00 pm - 9:00 pm Magdy Hussein
MGT 576 -1 Organizational Theory
301 9/4 - 12/16 6:00 PM - 9:00 PM Esmail Rahimian
Friday
Course Code Course Classroom Session Dates Time Instructor
BUS 901-B Doctoral Dissertation
204 5/7-8/19 6:00PM - 9:00PM Ramesh Konda
BUS 901-1 Doctoral Dissertation
100H 6:00 pm - 9:00 pm Ramesh Konda
BUS 901A -1 Doctoral Dissertation
301 9/4 - 12/16 4:00 PM - 7:00 PM Ramesh Konda
Weekend Schedule
Course Code Course Classroom Session Dates Time Instructor
MGT 575 -1 Project Management
302 5/26-5/27, 6/9-6/10, 7/21-7/22 9:00AM - 6:00PM Frank Aguilera
MIS 541 -1 Managing Global Information Systems Projects
301 5/26-5/27, 6/16-6/17, 7/14-7/15 9:00AM - 6:00PM Rao Nemani
FIN 534 -1 Financial and Economic Analysis
406 5/26-5/27, 7/7-7/8, 8/18-8/19 9:00AM - 6:00PM George Guim
ERP 509 -1 Introduction to ERP Systems Using SAP
302 6/2-6/3, 6/16-6/17, 7/14-7/15 9:00AM - 6:00PM Nutan Bhat
MKT 551 -2 Competitive Marketing Strategies
204 6/2-6/3, 7/7-7/8, 8/4-8/5 9:00AM - 6:00PM Patricia Wiggin
MBN 697 -2 MBA Thesis
302 5/12-5/13, 6/30-7/1, 8/11-8/12 9:00AM - 6:00PM Frank Aguilera
MGT 690 -1 Pitching a Business Plan to Venture
306 5/12-5/13, 6/23-6/24, 8/11-8/12 9:00AM - 6:00PM Nik Tehrani
BUA 690 -1 Simulation and Optimization for Business Analytics
301 5/12-5/13, 6/23-6/24, 8/11-8/12 9:00AM - 6:00PM Jahan Ghofraniha
BUA 503 -1 Game Theory, Business Strategy, and Thinking Strategically
301 5/19-5/20, 6/9-6/10, 7/21-7/22 9:00AM - 6:00PM Jahan Ghofraniha
HCM 690 -1 Healthcare Innovation Management Project
304 1/20-1/21, 2/24-2/25, 3/31-4/1 9:00 am - 6:00 pm Venkatesh Gopal
MKT 551 -1 Competitive Marketing Strategies
301 2/10-2/11, 3/17-3/18, 4/21-4/22 9:00 am - 6:00 pm Patricia Wiggin
MGT 690 -1 Pitching a Business Plan to Venture Capitalists
307 1/13-1/14, 2/17-2/18, 4/21-4/22 9:00 am - 6:00 pm Nik Tehrani
MGT 564 -1 Principles of Public Relations
303 2/3-2/4, 3/10-3/11, 4/14-4/15 9:00 am - 6:00 pm Patty Wiggin
MBN 697 -2 MBA Thesis
304 1/13-1/14, 2/17-2/18, 4/21-4/22 9:00 am - 6:00 pm Ramesh Konda
ERP 513 -1 Sales Order management with ERP
301 2/3-2/4, 3/10-3/11, 4/14-4/15 9:00 am - 6:00 pm Nutan Bhat
MIS 527 -1 Technology and Operations Management: Creating Value
302 2/10-2/11, 3/17-3/18, 4/21-4/22 9:00 am - 6:00 pm Wael Abdeljabbar
BUA 508 -1 Risk Analytics
406 1/20-1/21, 2/24-2/25, 3/31-4/1 9:00 am - 6:00 pm Jahan Ghofraniha
FIN 534 -1 Financial and Economic Analysis
406 2/3-2/4, 3/10-3/11, 4/14-4/15 9:00 am - 6:00 pm George Guim
FIN 519 -1 Corporate Valuation
301 1/13-1/14, 2/17-2/18, 3/24-3/25 9:00 am - 6:00 pm Hiram Willis
HCM 519-1 Healthcare Ethics
204 1/27-1/28, 3/3-3/4, 4/7-4/8 9:00 am - 6:00 pm Shraddha Desai
BUA 690 -1 Simulation and Optimization for Business Analytics
204 1/13-1/14, 2/17-2/18, 4/21-4/22 9:00 am - 6:00 pm Jahan Ghofraniha
ACT 603-1 Accounting Information Systems/ERP
203 9/29-9/30, 11/3-11/4, 12/15-12/16 9:00 AM - 6:00 PM Nutan Bhat
BUA 511 -1 Data Visualization and Interpretation Using Tableau
301 9/22-9/23, 10/27-10/28, 12/1-12/2 9:00 AM - 6:00 PM Jahan Ghofraniha
BUS 520 -1 Emerging Technologies for Product Development
302 9/15-9/16, 10/20-10/21, 11/17-11/18 9:00 AM - 6:00 PM Jahan Ghofraniha
BUS 807 -1 Emerging Issues in Strategic Decision Making
307 9/29-9/30, 11/03-11/04, 12/15-12/16 9:00 AM - 6:00 PM Frank Aguilera
HCM 537 -1 Commercializing Medical Devices, Diagnostics and Biomedical Innovation
301 9/29-9/30, 11/3-11/4, 11/17-11/18 9:00 AM - 6:00 PM Nik Tehrani
MBN 697 -1 MBA Thesis
302 9/8-9/9, 10/13-10/14, 12/8-12/9 9:00 AM - 6:00 PM Frank Aguilera
MGT 503 -1 Organizational Leadership Theories
302 9/22-9/23, 10/27-10/28, 12/1-12/2 9:00 AM - 6:00 PM Patricia Wiggin
MGT 578 -1 Business Communications
302 10/6-10/7, 11/10-11/11, 12/15-12/16 9:00 AM - 6:00 PM Patricia Wiggin
MGT 690 -1 Pitching a Business Plan to Venture Capitalists
203 9/8-9/9, 10/13-10/14, 12/8-12/9 9:00 AM - 6:00 PM Nik Tehrani
MIS 527 -1 Technology and Operations Management: Creating Value
203 9/22-9/23, 10/27-10/28, 12/1-12/2 9:00 AM - 6:00 PM Ramesh Konda
BUS 804 -1 Management and Organizational Theor
306 1/12-1/13, 2/16-2/17, 3/23-3/24 9:00 AM - 6:00 PM Frank Aguilera
FIN 534 -1 Financial and Economic Analysis
301,304 2/2-2/3, 2/16-2/17, 3/23-3/24 9:00 AM - 6:00 PM Raj Sharma
HCM 536 -1 High Reliability Health Care Organizations
301 1/19-1/20, 2/16-2-17, 3/30-3/31 9:00 AM - 6:00 PM Staff
INB 556 -1 Global Strategic Management
304 1/26-1/27, 3/2-3/3, 4/6-4/7 9:00 AM - 6:00 PM Staff
MBN 697 -1 MBA Thesis
305 1/26-1/27, 3/2-3/3, 4/13-4/14 9:00 AM - 6:00 PM Frank Aguilera
MGT 503 -1 Organizational Leadership Theories
304 1/19-1/20, 2/23-2/24, 3/30-/31 9:00 AM - 6:00 PM Patricia Wiggin
MGT 581 -1 Managing Emotions, Managing Self and Others
304 2/2-2/3, 3/9-3/10, 4/13-4/14 9:00 AM - 6:00 PM Patricia Wiggin
MGT 690 -1 Pitching a Business Plan to Venture
306 1/26-1/27, 3/2-3/3, 4/13-4/14 9:00 AM - 6:00 PM Nik Tehrani
MIS 545 -1 Data Mining and Business Intelligence Using SAP
305 1/19-1/20, 2/23-2/24, 3/30-/31 9:00 AM - 6:00 PM Nutan Bhat and Ramesh Konda
ACT 504 -1 Tax Accounting Principles
306 2/9-2/10, 3/16-3/17, 4/20-4/21 9:00 AM - 6:00 PM Staff
BUA 511 -1 Data Visualization and Interpretation using Tableau
303 1/12-1/13, 2/16-2/17, 3/23-3/24 9:00 AM - 6:00 PM Jahan Ghofraniha
BUA 513 -1 Financial Engineering: Computational And Quantitative Methods
303 1/19-1/20, 2/23-2/24, 3/30-3/31 9:00 AM - 6:00 PM Jahan Ghofraniha

Computer Science

Online Session I
Course Code Course Classroom Session Dates Time Instructor
SWE 561 -1 Cloud Computing
5/7 - 6/24 Dongming Liang
CSC 518 -1 OO Programming with Java
5/7 - 6/24 Leandro Loss
CSC 520 -1 Python Programming
5/7 - 6/24 Srinivasan Mandyam
CSC 525 -1 HTML/CSS Programming
5/7 - 6/24 Hann So
CSC 530 -1 JavaScript Programming
5/7 - 6/24 Hann So
SWE 602 -2 Software Requirements Elicitation
5/7 - 6/24 Victor Yu
SWE 600 -2 Advanced Software Engineering
5/7 - 6/24 Donna Dulo
CSC 530 -1 JavaScript Programming
1/8-2/25 Hann So
CSC 670 -1 Network and Data Security
1/8-2/25 Tony Nguyen
CSC 522 -1 R Language Programming
1/8-2/25 Patricia Hoffman
SWE 561 -1 Cloud Computing
1/8-2/25 Dongming Liang
SWE 546 -1 SQA/Performance Testing
1/8-2/25 Dick Liu
SWE 680 -2 Software Architecture
1/8-2/25 Srinivasan Mandyam
CSC 525 -1 HTML/CSS Programming
1/8-2/25 Hann So
CSC 525 -2 HTML/CSS Programming
9/4 - 10/21 Hann So
CSC 530 -1 JavaScript Programming
Online 1/7-2/24 Hann So
CSC 522 -1 R Language Programming
Online 1/7-2/24 Patricia Hoffman
CSC 525 -1 HTML/CSS Programming
Online 1/7-2/24 Hann So
Online Session II
Course Code Course Classroom Session Dates Time Instructor
SWE 546 -1 SQA/Performance Testing
6/25 - 8/12 Dick Liu
SWE 562 -1 Oracle Database Management / Administration
6/25 - 8/12 Dongming Liang
SWE 562 -1 Oracle Database Management / Administration
2/26-4/15 Dongming Liang
CSC 633 -1 Machine Learning
2/26-4/15 Patricia Hoffman
SWE 500 -2 Software Engineering
2/26-4/15 Srinivasan Mandyam
CSC 501 -2 Discrete Structures
2/26-4/15 Donna A. Dulo
CSC 633 -1 Machine Learning
10/22 - 12/9 Patricia Hoffman
SWE 546 -1 SQA/Performance Testing
10/22 - 12/9 Dick Liu
SWE 562 -1 Oracle Database Management/Administration
10/22 - 12/9 Dongming Liang
SWE 500-2 Software Engineering
10/22 - 12/9 Hann So
Monday
Course Code Course Classroom Session Dates Time Instructor
CSC 631 -1 Data Mining
305 5/7-8/19 6:00PM - 9:00PM Fang Yuan
CSC 580 -1 Computer Algorithms
306 5/7-8/19 7:00PM - 10:00PM Richard Sun
CSC 501 -1 Discrete Structures
307 5/7-8/19 7:00PM - 10:00PM Ming-Hwa Wang
CSC 631 -1 Data Mining
203 Monday 6:00 pm - 9:00 pm Fang Yuan
CSC 631 -1 Data Mining
203 1/9-4/23 6:00 pm - 9:00 pm Fang Yuan
SWE 640 -1 Artificial Intelligence
304 1/9-4/23 6:00 pm - 9:00 pm Zhupei Shi
CSC 580 -1 Computer Algorithms
302 1/9-4/23 7:00 pm - 10:00 pm Richard Sun
CSC 501 -1 Discrete Structures
406 9/4 - 12/16 7:00 PM - 10:00 PM Ming-Hwa Wang
CSC 580 -1 Computer Algorithms
302 9/4 - 12/16 7:00 PM - 10:00 PM Richard Sun
CSC 520 -1 Python Programming
305 1/7-4/21 6:00 PM - 9:00 PM Zhupei Shi
CSC 580 -1 Computer Algorithms
302 1/7-4/21 7:00 PM - 10:00 PM Richard Sun
CSC 631 -1 Data Mining
303 1/7-4/21 6:00 PM - 9:00 PM Fang Yuan
CSC 633 -1 Machine Learning
204 1/7-4/21 7:00 PM - 10:00 PM Ming Hwa Wang
Tuesday
Course Code Course Classroom Session Dates Time Instructor
SWE 560 -1 Principles of Database Systems
305 5/7-8/19 6:00PM - 9:00PM Mar Castro
SWE 560 -1 Principles of Database Systems
305 1/9-4/23 6:00 pm - 9:00 pm Mar Castro
SWE 520 -1 Principles of Ethical Hacking
303 1/7-4/21 6:00 PM - 9:00 PM Mamoun Samaha
Wednesday
Course Code Course Classroom Session Dates Time Instructor
ICS 501 -1 Introduction to Cybersecurity
307 5/7-8/19 6:00PM - 9:00PM Jeremy Tzeng
ICS 520 -1 Personal Computer Security
304 1/9-4/23 6:00 pm - 9:00 pm Qamar Asghar
CSC 501 -1 Discrete Structures
301 1/9-4/23 6:00 pm - 9:00 pm Zhupei Shi
CSC 570-1 Web Security Fundamentals
301 9/4 - 12/16 7:00 PM - 10:00 PM Ahmed Ezzat
ICS 501 -1 Introduction to Cybersecurity
406 9/4 - 12/16 6:00 PM - 9:00 PM Donna Dulo
SWE 640 -1 Artificial Intelligence
301 1/7-4/21 6:00 PM - 9:00 PM Zhupei Shi
CSC 502 -1 Principles of OS & Distributed Systems
204 1/7-4/21 6:00 PM - 9:00 PM Ahmed Ezzat
ICS 502 -1 Cyber Attack Countermeasures
303 1/7-4/21 6:00 PM - 9:00 PM Donna Dulo
SWE 680 -1 Software Architecture
302 1/7-4/21 6:00 PM - 9:00 PM Tony Nguyen
Thursday
Course Code Course Classroom Session Dates Time Instructor
CSC 690 -1 Capstone Project
307 5/7-8/19 6:00PM - 9:00PM Ming-Hwa Wang
SWE 518 -1 User Interface Design & Implementation
203 5/7-8/19 6:00PM - 9:00PM Gurminder Singh
CSC 690 -1 Capstone Project
302 1/9-4/23 7:00 pm - 10:00 pm Ming-Hwa Wang
SWE 602 -2 Software Requirements Elicitation
306 1/9-4/23 Victor Yu
SWE 690 -2 Capstone Project
406 1/9-4/23 6:00 pm - 9:00 pm Richard Riehle
SWE 518 -1 User Interface Design & Implementation
307 1/9-4/23 6:00 pm - 9:00 pm Gurminder Singh
Friday
Course Code Course Classroom Session Dates Time Instructor
SWE 640 -1 Artificial Intelligence
303 5/7-8/19 6:00PM - 9:00PM Zhupei Shi
SWE 690 -3 Capstone Project
406 5/7-8/19 6:00PM - 9:00PM Avid Farhoodfar
CSC 680 -1 Advanced Computer Algorithms
304 5/7-8/19 6:00PM - 9:00PM Richard Sun
CSC 512 -1 Data Structures
203 5/7-8/19 6:00PM - 9:00PM Tushar Chandra
SWE 500 -2 Software Engineering
302 5/7-8/19 7:00PM - 10:00PM Tony Nguyen
CSC 690 -2 Capstone Project
306 5/7-8/19 7:00PM - 10:00PM Ming-Hwa Wang
SWE 690 -2 Capstone Project
306 5/7-8/19 1:00PM - 4:00PM Victor Yu
SWE 690 -3 Capstone Project
203 1/9-4/23 1:00 pm - 4:00 pm Victor Yu
CSC 512 -1 Data Structures
204 1/9-4/23 6:00 pm - 9:00 pm Tushar Chandra
CSC 560 -1 Introduction to Data Science
305 1/9-4/23 6:15 pm - 9:15 pm Alex Wu
CSC 680 -1 Advanced Computer Algorithms
301 1/9-4/23 6:00 pm - 9:00 pm Richard Sun
CSC 680-1 Advanced Computer Algorithms
203 9/4-12/16 6:00 PM - 9:00 PM Richard Sun
CSC 520 -1 Python Programming
303 9/4 - 12/16 6:00 PM - 9:00 PM Zhupei Shi
CSC 690 -1 Capstone Project
307 9/4 - 12/16 7:00 PM - 10:00 PM Ming-Hwa Wang
ICS 601 -1 Advanced Cybersecurity
204 1/7-4/21 6:00 PM - 9:00 PM Tony Nguyen
CSC 512 -1 Data Structures
304 1/7-4/21 6:00 PM - 9:00 PM Tushar Chandra
CSC 560 -1 Introduction to Data Science
303 1/7-4/21 6:00 PM - 9:00 PM Alex Wu
CSC 680 -1 Advanced Computer Algorithms
301 1/7-4/21 6:00 PM - 9:00 PM Richard Sun
CSC 690 -1 Capstone Project
302 1/7-4/21 7:00 PM - 10:00 PM Ming Hwa Wang
Weekend Schedule
Course Code Course Classroom Session Dates Time Instructor
CSC 505 -1 The Unix/Linux OS
204 6/9-6/10, 7/14-7/15, 8/18-8/19 9:00AM - 6:00PM Arjit Das
SWE 602 -1 Software Requirements Elicitation
406 5/12-5/13, 6/16-6/17, 7/21-7/22 9:00AM - 6:00PM Victor Yu
SWE 600 -1 Advanced Software Engineering
304 5/19-5/20, 6/23-6/24, 7/28-7/29 9:00AM - 6:00PM Qamar Asghar
SWE 680 -1 Software Architecture
303 6/02-6/03, 6/30-7/1, 8/4-8/5 9:00AM - 6:00PM Tony Nguyen
CSC 502 -1 Principles of OS & Distributed Systems
303 5/12-5/13, 6/16-6/17, 8/11-8/12 9:00AM - 6:00PM Yurong Xu
SWE 500 -1 Software Engineering
203 6/2-6/3, 7/7-7/8, 8/11-8/12 12:00PM - 8:00PM Qamar Asghar
CSC 620 -1 Programming Language Theory
305 5/19-5/20, 6/23-6/24, 7/28-7/29 9:00AM - 6:00PM Richard Riehle
CSC 550 -1 Big Data
203 5/19-5/20, 6/23-6/24, 7/28-7/29 9:00AM - 6:00PM Da Qi Ren
CSC 633 -1 Machine Learning
203 6/9-6/10, 7/14-7/15, 8/18-8/19 12:00PM - 8:00PM Xiaoshu Qian
INT 593F-SE.3 Internship
Richard Sun
INT 593P-SE.1 Internship
Richard Riehle
CSC 690 -2 Capstone Project
204 Saturday 6:00 pm - 9:00 pm Alex Wu
SWE 690 -5 Capstone Project
304 Saturday 6:00 pm - 9:00 pm Tushar Chandra
CSC 520 -1 Python Programming
204 2/3-2/4, 3/10-3/11, 4/14-4/15 9:00 am - 6:00 pm Srinivasan Mandyam
CSC 509 -1 C Programming
203 2/10-2/11, 3/17-3/18, 3/24 - 3/25 9:00 am - 6:00 pm Arijit Das
CSC 502 -2 Principles of OS & Distributed Systems
306 1/13-1/14, 2/17-2/18, 3/24-3/25 9:00 am - 6:00 pm Yurong Xu
SWE 600 -1 Advanced Software Engineering
406 2/10-2/11, 3/17-3/18, 4/21-4/22 9:00 am - 6:00 pm Qamar Asghar
SWE 500 -1 Software Engineering
302 2/3-2/4, 3/10-3/11, 4/14-4/15 9:00 am - 6:00 pm Qamar Asghar
CSC 620 -1 Programming Language Theory
406 1/27-1/28, 3/3-3/4, 4/7-4/8 9:00 am - 6:00 pm Richard Riehle
CSC 550 -2 Big Data
305 1/27-1/28, 3/3-3/4, 4/7-4/8 9:00 am - 6:00 pm Da Qi Ren
CSC 680 -2 Advanced Computer Algorithms
302 1/27-1/28, 3/3-3/4, 4/7-4/8 12:00 pm - 8:00 pm Xiaoshu Qian
CSC 518 -1 OO Programming with Java
305 2/3-2/4, 3/10-3/11, 4/14-4/15 9:00 am - 6:00 pm Yurong Xu
SWE 600 -1 Advanced Software Engineering
204 9/22-9/23, 10/27-10/28, 12/1-12/2 9:00 AM - 6:00 PM Qamar Asghar
SWE 602 -1 Software Requirements Elicitation
303 9/29-9/30, 11/3-11/4, 12/8-12/9 9:00 AM - 6:00 PM Victor Yu
SWE 680 -1 Software Architecture
406 10/6-10/7, 11/10-11/11, 12/15-12/16 9:00 AM - 6:00 PM Tony Nguyen
SWE 690 -1 Capstone Project
301 9/4 - 12/16 6:00 PM - 9:00 PM Alex Wu
CSC 502 -1 Principles of OS & Distributed Systems
406 9/8-9/9, 10/13-10/14, 11/17-11/18 9:00 AM - 6:00 PM Yurong Xu
CSC 550 -1 Big Data
303 9/15-9/16, 10/6-10/7, 11/10-11/11 9:00 AM - 6:00 PM Da Qi Ren
CSC 620 -1 Programming Language Theory
204 9/8-9/9, 10/13-10/14, 11/17-11/18 9:00 AM - 6:00 PM Richard Riehle
SWE 500 -1 Software Engineering
303 9/8-9/9, 10/13-10/14, 11/17-11/18 12:00 PM - 8:00 PM Xiaoshu Qian
SWE 602 -1 Software Requirements Elicitation
302 1/12-1/13, 2/16-2/17, 3/23-3/24 9:00 AM - 6:00 PM Victor Yu
CSC 501 -1 Discrete Structures
204 1/12-1/13, 2/16-2/17, 3/23-3/24 12:00 PM - 8:00 PM Xiaoshu Qian
ICS 501 -1 Introduction to Cybersecurity
305 2/9-2/10, 3/16-3/17, 4/20-4/21 9:00 AM - 6:00 PM Wael Abdeljabbar
SWE 690 -1 Capstone Project
204 1/19-1/20, 2/23-2/24, 3/30-/31 9:00 AM - 6:00 PM Bhairav Mehta
CSC 505 -1 The UNIX/Linux OS
406 1/19-1/20, 2/23-2/24, 3/30-/31 9:00 AM - 6:00 PM Arijit Das
CSC 511 -1 OO Programming with C++
406 1/26-1/27, 3/2-3/3, 4/6-4/7 12:00 PM - 8:00 PM Xiaoshu Qian
CSC 550 -1 Big Data
204 1/26-1/27, 3/2-3/3, 4/6-4/7 9:00 AM - 6:00 PM Da-Qi Ren
SWE 680-2 Software Architecture
406 2/2-2/3, 3/9-3/10, 4/13-4/14 9:00 AM - 6:00 PM Tony Nguyen
CSC 620 -1 Programming Language Theory
305 1/12-1/13, 2/16-2/17, 3/23-3/24 9:00 AM - 6:00 PM Richard Riehle
SWE 500 -1 Software Engineering
Saturday Only
302 1/7-4/21 6:00 PM - 9:00 PM Ahmed Ezzat
SWE 600 -1 Advanced Software Engineering
406 1/12-1/13, 2/16-2/17, 3/23-3/24 9:00 AM - 6:00 PM Qamar Asghar
Internship
Course Code Course Classroom Session Dates Time Instructor
INT 593F-SE.1 Internship
Richard Sun
INT 593F-SE.2 Internship
Xiaoshu Qian
INT 593F-SE.3 Internship
Richard Riehle
INT 593P-SE.1 Internship
1 credit hour (unit)
Srinivasan Mandyam
INT 593F-SE.1 Internship
Ming-Hwa Wang
NT 593F-SE.2 Internship
Xiaoshu Qian
INT 593F-SE.1 Internship
Ming-Hwa Wang
INT 593F-SE.1 Internship
Ming-Hwa Wang
INT 593F-SE.2 Internship
Richard Sun
INT 593P-SE.1 Internship
Xiaoshu Qian
INT593F-SE -1 Internship (Full-Time)
1/7-4/21 Richard Riehle
INT593F-SE -2 Internship (Full-Time)
1/7-4/21 Ming Hwa Wang
INT593F-SE -3 Internship (Full-Time)
1/7-4/21 Xiaoshu Qian
INT593P-SE -1 Internship (Part-Time)
1/7-4/21 Richard Sun
Online
Course Code Course Classroom Session Dates Time Instructor
SWE 690 -2 Capstone Project
Online 1/7-4/21 Dongming Liang
N/A
Course Code Course Classroom Session Dates Time Instructor
AMS 540 Discrete Mathematics
CSC 545 Programming In GO
Prerequisites: None
Go, also commonly referred to as golang, is a programming language developed at Google in 2007 by Robert Griesemer, Rob Pike, and Ken Thompson. It is a statically-typed language with syntax loosely derived from that of C, adding garbage collection, type safety, some dynamic-typing capabilities, additional built-in types such as variable-length arrays and key-value maps, and a large standard library. Go projects are for networking, distributed functions, or services: APIs, Web servers, minimal frameworks for Web applications, and the rest. In its weekday modality the course is taught over 15 weeks with 2 hours lecture and 1 hour lab per week.
CSC 689 Independent Study (1 to 3 credit hours)
Prerequisites: None
Independent Study allows students to explore academic areas of special interest not provided in the existing curriculum. It is carried out under the guidance of a member of the faculty
ICS 680 Theory of Cryptographic Systems
Prerequisites: ICS 601
A deeper coverage of modern encryption system and the necessary mathematics. Classical cryptographic constructions, basic cryptographic algorithms, symmetric cryptography; public-key cryptography: RSA, AES (Rijndael) stream cypher, Diffie-Hellman, El Gamal, coding based cryptography: McEliece – Niederreiter. Basic issues and concepts of Network and Data Security such as data confidentiality, data and user authenticity, data integrity, key management and distribution; digital signatures.
SWE 633 Software Refactoring
Prerequisites: SWE 500
Software Refactoring is a change made to the internal structure of software to make it easier to understand and cheaper to modify without changing its observable behavior (Fowler 1999). Improving the design of existing code. Various techniques and refactoring patterns. Increasing software understandability and productivity, reducing software complexity, aging, and maintenance costs. Refactoring in the context of agile development, during debugging and code review. Refactoring tools for important languages and OSs. Various categories of refactoring, small and big refactoring. Refactoring of UML design models.
AMS 530 Numerical Analysis
CSC 527 Mobile Web Programming
Prerequisites: CSC 525, CSC 530
This course is for experienced front-end Web developers who’d like to learn what it takes to create great mobile experiences. In order to succeed in this class, they should be comfortable with HTML, CSS, and JavaScript, and should have experience creating Web apps, either professionally or for fun. This course will teach Web developers how to build Web experiences that adapt to the different screen sizes and capabilities that mobile devices offer, and how to scalable optimize media for mobile and desktop. This course will cover programming touch interaction, as well as how to optimize form field input for mobile devices and use APIs like geolocation and the accelerometer, and ensuring their web experiences work great when network conditions are suboptimal. They will gain the tools to investigate performance in mobile applications, with a strong understanding of mobile networking, battery usage patterns and optimizing paint techniques to build smooth animations on mobile. Upon completion, the web developers will understand what it takes to build great web experiences on mobile devices, have gained experience with the tools they need to test performance, and be able to apply their knowledge to their own projects in the future. ​
CSC 633 Machine Learning
Prerequisites: None
Recommended: Knowledge of basic computer science principles and skills, probability theory, and linear algebra.​
Machine learning is a fast-moving field with many recent real world commercial applications. The goal of Machine Learning is to build computer model that can produce useful information whether predictions, associations, or classifications. The ultimate goal for many machine learning researchers is to build computing systems that can automatically adapt and learn from their experience. This course will study the theory and practical algorithms in Machine Learning. It reviews what machine learning is about, how it evolved over the past 60 years, why it is important today, basic concepts and paradigms, what key techniques, challenges and tricks. It also cover examples of how machine learning is used/applied today in the real world, and expose students to some experience in building and using machine learning algorithms. This course will also discuss recent applications of machine learning, such as to robotic control, speech recognition, face recognition, data mining, autonomous navigation, bioinformatics, and text and web data processing.
ICS 620 Computer Malware
Prerequisites: ICS 520
Definition of computer malware (viruses, worms, Trojan horses, rootkits, backdoors), Infectious malware, the functioning of malware, coding of malware, self-replication, techniques for evading detection; reasons for vulnerability to malware; anti-malware strategies, anti-virus software. Dangers of malware: identity theft, file and data corruption industrial espionage.
SWE 570 Internet of Things Architecture and Security
Prerequisites: None
The objective of the course is to introduce students to the principles, technology and applications of the Internet of Things (IoT). The course includes a coverage of the key principles and building blocks of IoT (architecture), the key enabling technologies (devices, networking and management), and the issues of security of the IoT systems. At the end of this course the student would be able to describe the key IoT technologies in detail, explain issues in developing large-scale IoT systems, explain applications of IoT and demonstrate a deep understanding of at least one IoT research topic.
AMS 510 Linear Algebra
CSC 520 Python Programming
Prerequisites: None
Programming and problem solving using Python. Emphasizes principles of software development, style, and testing. Topics include procedures and functions, iteration, recursion, arrays and vectors, strings, an operational model of procedure and function calls, algorithms, exceptions, object-oriented programming.
CSC 625 Advanced HTML5
Prerequisites: CSC 525, CSC 530​
This course is for Web developers who have solid experience in the basics of HTML5. This course will take the Web developers deep into the advanced techniques and functions that HTML5 has to offer. This course will first explore some JavaScript basics - writing to an HTML page, using variables and functions, interacting with HTML, looping and drag and drop functions. Then the course will continue by exploring how to utilize and create custom media controls. The course will cover the more popular CSS3 features such as transform, translation and animation, and HTML5 Form API, Canvas, Geolocation, Drag and Drop, Web Storage, Communication, Messaging, History, Offline, indexDB, File, Web Workers, and finally, HTML5 for Mobile Apps. Upon completion, the Web developers will have a deeper understanding of how to take advantage of the many new features and functions that HTML5 has to offer. ​
ICS 525 Principles of Ethical Hacking
Prerequisites: None
Recommended: Knowledge of C++, Java, or Python​
In this course students will learn and practice hacking techniques used by malicious, black-hat hackers as a means to learn best defense from these same hackers. The course is an in-depth study using hands-on lab exercises. While these hacking skills can be used for malicious purposes, this course teaches you how to use the same hacking techniques to perform a white-hat, ethical hack, on your organization. The course trains for the CEH (Certified Ethical Hacker Certificate). Students will be trained to penetrate, test and hack their employers’ own computer system in order to safeguard it from real (malicious) hackers. The Ethical Hacker is a trustworthy employee of an organization trained to attempt to penetrate networks and/or computer systems by using the same methods and techniques as a malicious hacker. Through this the individual can learn and master the malicious hackers methods find the weak pointes in an organization’s network or computer systems and build safeguards against hacking attempts. The CEH is the most desired information security training program for any IT security professional.
SWE 544 SQA/Software Testing Tools
AMS 552 Probability, Statistics, and Reliability for Engineers
CSC 550 Big Data
Prerequisites: Knowledge of Java​
This course will introduce the basic concepts, tools, techniques, and applications. This course will cover the most up-to-date Big Data Technology including Hadoop Distributed File System (HDFS) and MapReduce engine as well as Business Intelligence tools.
CSC 720 Formal Methods
Prerequisites: None
This course will focus on fundamental mathematical models of computation. It will discuss both the inherent capabilities and limitations of these computational models as well as their relationships with formal languages. Rigorous arguments and proofs of correctness will be emphasized. Particular topics to be covered include: (1) Finite automata, regular languages, and regular grammars. (2) Deterministic and nondeterministic computations on various automata. (3) Context free grammars, languages, and pushdown-automata. (4) Turing machines, Church’s thesis, and undecidable problems.
ICS 689 Independent Study (1 to 3 credit hours)
Prerequisites: None
Independent Study allows students to explore academic areas of special interest not provided in the existing curriculum. It is carried out under the guidance of a member of the faculty.
SWE 680 Software Architecture
Prerequisites: SWE 600
Every computer software system has an architecture, even if it is an ad hoc architecture. Modern software systems are larger, include more interoperability of their components, and often involve many programmers and engineers, working together to achieve a predictable design. When there is no coherent architecture for the design, the engineers and programmers often find themselves working at cross-purposes, constantly reworking their product to satisfy previously undefined requirements. This class is focused on the high-level concern of the architecture of a software system. Therefore, we will not be doing any computer programming. The course interests will include the requirements development, system context, and relationships between the various components and structures in a software architecture. At the end of this course students will be prepared to participate in a software (or systems) engineering project at the high level of development where they design the fundamental architecture for that system. Students will understand requirements development, project strategies and tactics, patterns of architecture, and architectural styles and idioms.
AMS 540 Discrete Mathematics
CSC 530 JavaScript Programming
Prerequisites: CSC 525
This course introduces JavaScript as a programming language. It will talk about variables, data types, conditionals, loops, arrays, event handlers, objects, string, forms, cookies, and functions. It will teach students how to use JavaScript to access and manipulate BOM (Browser Object Model) and DOM (Document Object Model), and how to use JavaScript to make Web pages interactive. It will teach students how to interact HTML, CSS, JavaScript, and DOM within a Web page.
CSC 640 Artificial Intelligence
Prerequisites: None
Recommended: Knowledge of Discrete Mathematics​
This course introduces the foundation of simulating or creating intelligence from a computational point of view. It covers the techniques of reduction, reasoning, problem solving, knowledge representation, and machine learning. In addition, it covers applications of decision trees, neural networks, support vector machines and other learning paradigms.
ICS 630 Digital Forensics Technology
Prerequisites: None
Recommended: ICS 520
General tools and techniques used in forensic analysis, investigating digital media and physical memory for securing evidence in criminal investigations, investigating computer crime; digital forensic software, mobile forensic analysis.
SWE 600 Advanced Software Engineering
Prerequisites: SWE 500
This class goes into greater depth in learning the practices and principles of software engineering. The course also includes a brief review of some of the material from SWE 500. In this course, we expand our understanding of software modeling to include real time, concurrency, and embedded systems software engineering. It also goes into more depth in software metrics, project estimation techniques, risk management, software reliability, new and emerging directions for software development. This is also a team-oriented capstone project course, and one of the deliverables at the end of the semester is a fully-formed, professional level software design from the project team.
AMS 512 Applied Mathematics Methods
CSC 522 R Language Programming
Prerequisites: None
This course is an introduction to the R programming language, which is the premier language for statistical computing, machine learning, and data mining. Basic facilities of R contained in the course include mathematical, graphical, and interactive web applications. R is an open-sourced language used extensively in industry and in academia research. The course demonstrates methods for obtaining data from various sources, along with manipulating that data into a format that can be easily used in machine learning and data mining algorithms. The course covers a multitude of interactive visualization techniques along with the ability to share visualizations through web applications. This course provides insight into functional programming. The course covers reading and writing to and from various sources, R built in data types, controlling the flow of execution, using operators, functions, and R packages. The course includes methods of sharing analytic results in professional formats used by technical journals.
CSC 630 Scala Programming
Prerequisites: None
This course is an introduction to software programming using Scala, a programming language evolved from Java. The main advantage of Scala is its versatility. It has combined features of scripting language, objective oriented language and functional programming language. The last feature is particularly useful in Web and multicore applications that require concurrent data processing. Scala has been adopted by some leading high-tech companies. For example, in 2009, Twitter announced that it had switched large portions of its backend from Ruby to Scala and intended to convert the rest. To make learning easier, we will first introduce scala as a scripting language. We will then describe its objected oriented features (including class, object, inheritance, polymorphism, etc.) and finally move on to its main functional programming features
ICS 530 Cloud Computing Security
Prerequisites: SWE 561​
This class provides students a comprehensive understanding cloud security fundamentals and advanced expertise in cloud environments. Starting with a detailed description of cloud computing, the course covers all major domains in the latest Guidance document from the Cloud Security Alliance, and the recommendations from the European Network and Information Security Agency (ENISA) with expanded material and extensive hands-on activities. Students will learn to apply their knowledge as they perform a series of exercises as they complete a scenario bringing a fictional organization securely into the cloud.
SWE 546 SQA/Performance Testing
Prerequisites: None
This course provides an introduction to the complexities of software performance testing and delivers testing skills that participants can immediately apply back on the job. The following topics will be addressed: understand the performance testing process: planning, preparation, execution, and reporting; relate performance testing to the development process; understand performance goals and objectives; learn how to deal with environment and architecture issues; define operational profiles and load definitions; understand and select the various types of performance tests; and define and select appropriate measurements.
AMS 722 Advanced Applied Mathematics Methods
CSC 555 Bio Informatics
Prerequisites: None
Recommended: Knowledge of C++ or Java​
This course starts with a brief introduction to molecular biology. It then investigates the main algorithms used in Bioinformatics. After a brief description of commonly used tools, algorithms, and databases in Bioinformatics, the course describes specific tasks that can be completed using combinations of the tools and Databases. The course then focuses on the algorithms behind the most successful tools, such as the local and global sequence alignment packages: BLAST, Smith-Waterman, and the underlying methods used in fragment assembly packages. Lecture topics include Dynamic Programming for pairwise alignment; Hidden Markov Models for pattern recognition, conducting profile-based searches and transmembrane protein structure prediction; phylogenetic tree construction and RNA structure prediction, and the use of SNPs and haplotypes in genomic variation, in pharmacogenomics, in genome-wide association studies and in personalized medicine. The course is self-contained and does not assume any background knowledge in biology, although an interest is molecular biology is helpful. The course will be complemented by hands-on, computer lab sessions that will allow the participants to practice with some of the major tools and databases. Students will solve hands-on problems on HIV, BRCA1 gene, Thalassemia, etc.
CSC 730 Cryptography & Cryptanalysis
Prerequisites: None
This course analyzes ways to protect information during transfer in computer systems and networks. It includes the mathematics of cryptography, Number theoretical concepts, RSA theory, Diffie-Hellman key exchange, ElGamal Discrete Logarithm and their application and use in distributed systems, secure internet services, digital signature, intrusion detection and firewalls; coding based encryption; post-quantum cryptography. Some factoring methods to be studied include Fermat, Pollard Rho, and Elliptic Functions.
SWE 500 Software Engineering
Prerequisites: None
In this class, students will learn the elements of engineering and the relationship of engineering to software practice. It also covers how those principles and practices apply to the design, development, and maintenance of software throughout the entire software lifecycle. The course introduces traditional and contemporary approaches to software engineering practice. These include: requirements development, architecture and detailed design, modeling, testing strategies, process selection, project management, how to interact with other engineers on large-scale systems, and more. This course includes a capstone team where students gain practical experience designing a software system from start to finish using software modeling techniques such as UML, as well as a variety of project management methods and tools. This is not a programming course, but a background in object-oriented programming (OOP) will be valuable in helping the student understand the demands of the capstone project.
SWE 688 Special Topics (1 to 3 credit hours)
Prerequisites: None
Special topics courses cover subjects not currently contained in the curriculum, but are designed to address especially relevant trends or developments related to the discipline.
AMS 552 Probability, Statistics, and Reliability for Engineers
CSC 532 Client Programming with JS/jQuery
Prerequisites: CSC 525, CSC 530
jQuery is a JavaScript library designed to simplify the client-side scripting of HTML. It is designed to make it easier to navigate a document, select DOM elements, create animations, handle events, and develop Ajax applications. The topics of the course include: Basic jQuery syntax, jQuery element selectors, jQuery event handling, Ajax using jQuery, jQuery UI library.
CSC 650 Big Data Analytics (CPO-SAS/SPSS)
Prerequisites: CSC 550
This course emphasizes the key aspects of data analytics for students intending to pursue certain professional certification, i.e., SPSS or SAS, upon the completion of the course. The first module introduces the fundamental statistical thinking to the computer scientist, including probability, random variables, and statistical inference. Then, predictive modeling techniques, such as linear and logistic regression, are covered to make transition to the supervised and unsupervised data mining techniques. In the last module of the course, some popular big data platforms, namely, Hadoop/Mahout and Spark/MLlib, are discussed from the data analytics point of view. Examples from the text and social media mining application are covered in the second and the third module. The commercial software (student version) is required and used through the first and second modules, such that the students can be fluent in the application to meet the certification requirement thus limited programming requirement.
ICS 670 Network & Data Security
Prerequisites: None
Recommended: Knowledge of Information Assurance Fundamentals and Data communications​
The course covers theory and practice of the security aspects of the web and Internet. It surveys cryptographic tools used to provide security, such as shared key encryption (DES, 3DES, RC-4/5/6, etc.); public key encryption, key exchange, and digital signature (Diffie-Hellmann, RSA, DSS, etc.). It then reviews how these tools are utilized in the internet protocols and applications such as SSL/TLS, IPSEC, Kerberos, PGP, S/MIME, SET, and others (including wireless). System security issues, such as viruses, intrusion, and firewalls, will also be covered.
SWE 602 Software Requirements Elicitation
Prerequisites: SWE 500
Requirements Elicitation is the process of identifying the real problems that the software stakeholder tries to solve, of defining a system and its technical environment, and of identifying the requirements of that system such that it solves these problems for users, customers and other stakeholders. The objective of the class is to prepare software engineers for the task of developing effective requirements under a variety of development modalities. The student, at the conclusion of this course, will understand requirements engineering for Waterfall, V-Model, Spiral Model, Agile Methods, Cleanroom Engineering, the [Rational] Unified Process, as well as other approaches. The student will also understand, and gain experience with, the Unified Modeling Language, including use cases and other facilities of UML. Finally, it will introduce the student to the concepts necessary to moving from requirements to architecture, to design, to implementation. This is not a design or programming course, but an understanding of the principles and practices of software engineering are essential for the software requirements engineer.

(including currying, pattern matching, lazy evaluation, tail recursion, immutability, etc.).
AMS 520 Optimization Techniques
CSC 525 HTML/CSS Programming
Prerequisites: None
This course will examine how to create web pages using HTML code. The use of Cascading Style Sheets (CSS) will also be covered. Basic website development tools and website design will be studied though the creation of several HTML/CSS web site projects.
CSC 631 Data Mining
Prerequisites: None
This course provides an introduction to the theoretical concepts and practical applications of data mining. Data mining facilitates the extraction of hidden predictive information from large complex databases. It is a powerful new technology with enormous potential to help organizations and institutions extract and interpret important information. The course content includes the conceptual framework of data mining, descriptions and examples of standard methods used in data mining. Internet related data mining techniques are also covered. Data processing, statistical modeling, data warehousing and online analytical processing, data conditioning and cleaning, data transformation, text and web mining, mining massive datasets, data stream mining, data mining algorithms, association and correlation, pattern mining, classification, cluster analysis, outlier detection, knowledge discovery, knowledge representation, and validation.
ICS 535 Cloud and Virtualization Security (CPO)
Prerequisites: SWE 561​
This course introduces the concepts and techniques of implementing and securing cloud computing through the use of virtualization and distributed data processing and storage. Topics include operating system virtualization, distributed network storage, distributed computing, cloud models (IAAS, PAAS and SAAS) and techniques for securing cloud and virtual systems. Practical experience of integrating private, public, and hybrid clouds and virtual servers securely into an existing IT infrastructure will also be covered.
SWE 550 Software Project Management (CPO-ACP)
Prerequisites: None
This course provides an overview of software project management history, culture, methodologies, leadership, and strategic planning. The course introduces important tools, such as work breakdown structure, scheduling, earned value analysis, and risk management. Case studies from a variety of organizational settings are discussed. The course discusses the 5 processes that must be done for traditional project management success: (Define, Organize, Execute, Control, and Close) and Complex Project Management (Agile PM and Extreme PM). The strategic implications of projects will be considered with respect to the organizational vision. The course follows the Project Management Body of Knowledge (PMBOK) of the Project Management Institute (PMI) and allows the students to prepare for the examinations for the Agile Certified Practitioner ACP. The course focuses on the concepts and tools of the different software project management elements. It first sets the software project management framework and describes the different steps in the software project management process. Next, all the key management aspects of a software project are addressed: integration, scope, time, cost, quality, human resources, communications, risk, procurement, and stakeholder.
CSC 505 The UNIX/Linux OS
Prerequisites: Recommended knowledge of C
Linus is a Unix like operating system that has been ported to more hardware platforms than any other OS. It is the leading OS on servers, big computers including supercomputers, embedded systems, and mobile devices such as android. This course focuses on the practical usage of the basic Linux operating system features. It introduces the student to the general principles of modern operating systems: preemptive multiprocessing; and of Linux in particular: shells, environment, shell variables, processes, threads, interprocess communication, the Unix file system, and shell scripts. Upon completion of this course the student will be able to work efficiently in a Linux or Unix environment, to tailor an environment to specific needs, to understand the basics of Linux system administration, to understand security risks, to write C programs that use system calls, and to write scripts for the C shell.
CSC 560 Introduction to Data Science
Prerequisites: None
A practitioner of data science is called a data scientist. Data science leverage all available and relevant data to effectively predict a model that can be easily understood by non-practitioners. A major goal of data science is to make it easier for others to find and coalesce data with greater ease. Data science technologies impact how we access data and conduct research across various domains, including the biological sciences, medical informatics, social sciences and the humanities.
CSC 750 Coding Theory
Prerequisites: AMS 750
This class gives an introduction to coding theory. This course introduces examples for codes (ISBN, UPC, etc.) including binary codes, the meaning of important code parameters, detecting errors, correcting errors, sphere packing bound, and binary linear codes. Abstract algebra: fields and vector spaces, polynomial extensions of GF(2). Encoding linear codes: Introduction to generator matrices and parity check matrices, Hamming codes. Linear Algebra over GF(2), nullspace of a matrix, relation between generator and parity matrix. Error correcting codes, cyclic codes (BCH and Reed-Solomon codes), Goppa codes; syndrome decoding, the Patterson Algorithm.
SWE 525 Version Control Tools/GIT
Prerequisites: None
This course is designed to make the participants experts in git tool. It starts with fundamental concepts like git branch and continues to advanced topics like design and git work flow. The course covers different components of git and github and how they are used in software development operations. The course also covers Installation & Configuration of github and other tools and techniques like github desktop, SourceTree and Sparkle share as well. Participants will also get to implement one project towards the end of the course. Companies use git for creating and managing open source API’s and to help the open source community. It is github, a git repository hosting service founded just a few years ago to build software better, together. Most of the high paying companies are using git and github for their new, innovative and upcoming Software Languages. Open source software can now be made using github and you will be able to share your repositories with other developers so that they can also contribute. github concepts can be implemented in Big Data and Hadoop technology, Java Projects and other frameworks as well. Some of the trending repositories in github are Scala and AngularJS.
SWE 689 Independent Study (1 to 3 credit hours)
Prerequisites: None
Independent Study allows students to explore academic areas of special interest not provided in the existing curriculum. It is carried out under the guidance of a member of the faculty.
AMS 722 Advanced Applied Mathematics Methods
CSC 535 Server Programming With PHP
Prerequisites: CSC 525
PHP is one of the best server-side technologies for handling Web content easily and efficiently. PHP is a free, open-source language devoted primarily to handling dynamic web pages and used by millions of sites worldwide. It can be integrated with HTML and handle databases. The course starts with the development environment and the language syntax. It introduces the concepts of OOP in PHP at different levels. It also covers the interactions with HTML web pages and databases. PHP Ajax support is introduced as the advanced topic. Practical examples and sample codes will be given. Upon successful completion of this course, students will gain hands-on experience with PHP syntax and constructs such as variables, arrays, strings, loops, user-defined functions and how to integrate HTML and PHP code to manage and process data.
CSC 660 Advanced Data Science
Prerequisites: CSC 560
Recommended: Knowledge of R Language
This course builds on Introduction to Data Science by introducing the idea of data products and encouraging students to build products base on data analyses. ​
ICS 688 Special Topics (1 to 3 credit hours)
Prerequisites: None
Special topics courses cover subjects not currently contained in the curriculum, but are designed to address especially relevant trends or developments related to the discipline.
SWE 632 Software Risk Management
Prerequisites: None
This course introduces the field of software risk management which includes the software estimation, planning and control process. Risk management in software includes critical factors that impact estimates, methods for selecting metrics and measures, proper software sizing, as well as processes that identify and manage risks in the software development process as well as the operational phase of the software life cycle. Risk management and software estimation and measurement, when used properly in the software engineering context expedite the software estimation process, help generate more accurate estimates, and contribute to safe and resilient software engineering projects. Risk techniques also mitigate safety and security issues and form a total software success paradigm for software development projects.
AMS 530 Numerical Analysis
CSC 527 Mobile Web Programming
Prerequisites: CSC 525, CSC 530
This course is for experienced front-end Web developers who’d like to learn what it takes to create great mobile experiences. In order to succeed in this class, they should be comfortable with HTML, CSS, and JavaScript, and should have experience creating Web apps, either professionally or for fun. This course will teach Web developers how to build Web experiences that adapt to the different screen sizes and capabilities that mobile devices offer, and how to scalable optimize media for mobile and desktop. This course will cover programming touch interaction, as well as how to optimize form field input for mobile devices and use APIs like geolocation and the accelerometer, and ensuring their web experiences work great when network conditions are suboptimal. They will gain the tools to investigate performance in mobile applications, with a strong understanding of mobile networking, battery usage patterns and optimizing paint techniques to build smooth animations on mobile. Upon completion, the web developers will understand what it takes to build great web experiences on mobile devices, have gained experience with the tools they need to test performance, and be able to apply their knowledge to their own projects in the future. ​
CSC 633 Machine Learning
Prerequisites: None
Recommended: Knowledge of basic computer science principles and skills, probability theory, and linear algebra.​
Machine learning is a fast-moving field with many recent real world commercial applications. The goal of Machine Learning is to build computer model that can produce useful information whether predictions, associations, or classifications. The ultimate goal for many machine learning researchers is to build computing systems that can automatically adapt and learn from their experience. This course will study the theory and practical algorithms in Machine Learning. It reviews what machine learning is about, how it evolved over the past 60 years, why it is important today, basic concepts and paradigms, what key techniques, challenges and tricks. It also cover examples of how machine learning is used/applied today in the real world, and expose students to some experience in building and using machine learning algorithms. This course will also discuss recent applications of machine learning, such as to robotic control, speech recognition, face recognition, data mining, autonomous navigation, bioinformatics, and text and web data processing.
ICS 550 Security Policies
Prerequisites: None
The policies governing administration, management and enforcement of security issues are a separate, necessary element of Cyber Security, not based on some other more fundamental Cyber Security topic. They relate to network security, server security, application security. Explain the vulnerability of small firms. Examples: Policies for enforcing encryptions and strong passwords. Rewards for followers, punishment for non-followers; information in all its forms will be protected from unauthorized modification. All existing systems will be equipped with approved antivirus software. All new equipment and software will be controlled before installation. Set antivirus software for automatic update. No foreign equipment, including private USB thumb drives, are allowed to be used. Employees must know the policies.

SWE 560 Principles of Database Systems
Prerequisites: None
This is an advance level course on the principles of database systems. Main topics include, but are not limited to: an overview of the relational data model and relational query languages; recursive queries, datalog, and fixed-points; query processing and optimization; database design, dependencies, normal forms, and the chase procedure. Additional topics may include: information integration, complex objects, semistructured data, and XML.​
CSC 509 C Programming
Prerequisites: None
The course is an introduction to the C language as per the chapters of the book by Kernighan & Ritchie. The key topics covered will be C basics including Control Flow, Functions, Pointers, Structures, Memory Allocation/DE Allocation, Input/output (command line & files). The course will be very hands-on and students will be expected to test code from C books (list will be given in class), and thus understand the concepts.
CSC 575 Topics in Computer Science
ICS 501 Introduction to Cyber Security
Prerequisites: None
Overview of the field of Cyber Security: history and basics of cryptography, risk and data management, fundamental concepts, preventative measures, rules, regulations and legal issues, security testing and assessment, identity and access management, database security, computer ethics, digital signatures.
SWE 540 SQA/Manual Testing
Prerequisites: None
This course is a comprehensive introduction to Software Testing and Quality Assurance. The following topics will be taught: Software Development Methodologies, The Role of Quality Assurance in a Software Development Life Cycle, Common Software Testing Life Cycles, Software Testing Types and Definitions, Test Planning, Test Design, Test Cases Development, Test Execution & Results Analysis, and Test Matrices.​
CFL 591 Integrating Academic & Internship Learning (2 Credit hours)
Prerequisites: None
This course provides an overview of expectations and requirements for INT 593 Internship, teaches students how to integrate their academic and internship learning, and enhances career skills development. A student must pass CFL 591(can be taken concurrently) in order to be eligible to enroll in INT 593.

CSC 501 Discrete Structures
Prerequisites: None
This course is about discrete structures and forms an introduction to the theoretical side of computer science. Discrete structures and discrete mathematics turn out to be the “calculus’’ of computer science--these are the structures that students will use to model real-world problems, to build algorithms upon, and to program with (both for modeling problems as well as use in data-structures and algorithms). In this course students will learn about various discrete structures (numbers, sets, relations, functions, trees, graphs), how to talk about them (propositional and predicate logic), how to prove things about them (using contradiction, construction, induction, combinatorics), and how to read and write literate formal mathematics. Students will also get a quick introduction to key applications to algorithmic analysis (like asymptotic worst-case running time analysis for algorithms). This “calculus of computer science’’ will serve students as a foundation for computational thinking.
CSC 545 Programming In GO
Prerequisites: None
Go, also commonly referred to as golang, is a programming language developed at Google in 2007 by Robert Griesemer, Rob Pike, and Ken Thompson. It is a statically-typed language with syntax loosely derived from that of C, adding garbage collection, type safety, some dynamic-typing capabilities, additional built-in types such as variable-length arrays and key-value maps, and a large standard library. Go projects are for networking, distributed functions, or services: APIs, Web servers, minimal frameworks for Web applications, and the rest. In its weekday modality the course is taught over 15 weeks with 2 hours lecture and 1 hour lab per week.
CSC 680 Advanced Computer Algorithms
Prerequisites: none
This course covers advanced methods of algorithmic design, analysis, and implementation. Techniques to be covered include amortization, randomization, network flow, linear programming, approximation algorithms, computational complexity, and NP completeness analysis. Domains include FFT, number theoretical algorithms, RSA encryption - decryption, various breaking attempts (factorization), primality checking, Diffie-Hellman key exchange, ElGamal encryption, algebra-based encryptions such as AES, cryptographic hash functions, pattern matching, and bioinformatics.
ICS 689 Independent Study (1 to 3 credit hours)
Prerequisites: None
Independent Study allows students to explore academic areas of special interest not provided in the existing curriculum. It is carried out under the guidance of a member of the faculty.
SWE 633 Software Refactoring
Prerequisites: SWE 500
Software Refactoring is a change made to the internal structure of software to make it easier to understand and cheaper to modify without changing its observable behavior (Fowler 1999). Improving the design of existing code. Various techniques and refactoring patterns. Increasing software understandability and productivity, reducing software complexity, aging, and maintenance costs. Refactoring in the context of agile development, during debugging and code review. Refactoring tools for important languages and OSs. Various categories of refactoring, small and big refactoring. Refactoring of UML design models.
AMS 540 Discrete Mathematics
CSC 530 JavaScript Programming
Prerequisites: CSC 525
This course introduces JavaScript as a programming language. It will talk about variables, data types, conditionals, loops, arrays, event handlers, objects, string, forms, cookies, and functions. It will teach students how to use JavaScript to access and manipulate BOM (Browser Object Model) and DOM (Document Object Model), and how to use JavaScript to make Web pages interactive. It will teach students how to interact HTML, CSS, JavaScript, and DOM within a Web page.
CSC 640 Artificial Intelligence
Prerequisites: None
Recommended: Knowledge of Discrete Mathematics​
This course introduces the foundation of simulating or creating intelligence from a computational point of view. It covers the techniques of reduction, reasoning, problem solving, knowledge representation, and machine learning. In addition, it covers applications of decision trees, neural networks, support vector machines and other learning paradigms.
ICS 570 Web Security Fundamentals
Prerequisites: None
Recommended: Knowledge of HTTP, TCP/IP, SQL, and operating systems​
This course introduces students to the fundamentals of computer security as the first step towards learning how to protect computers from hackers. The course begins by explaining the very basic concepts of computer security and provides substantial technical details to keep students interested and involved. It includes hands-on labs and graded and non-graded assignments for each unit that provide an opportunity to practice what the students learn. It also includes a few security games to make learning more exciting and interactive. Students are expected to be familiar with standard computer operations (e.g., login, cut & paste, email attachments, etc.) before enrolling in the course. This course will give students a clear vision on how all seven layers will work in IOS model and different levels of security in each layer.
SWE 561 Cloud Computing
Prerequisites: None
Recommended: Knowledge of Operating Systems​
Introduction to cloud computing, cloud architecture and service models, the economics and benefits of cloud computing, horizontal/vertical scaling, thin client, multimedia content distribution, multiprocessor and virtualization, distributed storage, security and federation / presence/ identity/ privacy in cloud computing, disaster recovery, free cloud services and open source software, and example commercial cloud services.
CSC 511 OO Programming with C++
Prerequisites: None
Recommended: Knowledge of C
This class teaches Objected Oriented Programming using C++. Prior exposure to C is helpful but not required as the basic concept of C programming will be reviewed. The topics covered include: Syntax of C++, classes and objects, encapsulation, inheritance, polymorphism, design for reuse, programming with objects, the standard template library, namespaces, exceptions, type casting, and file input/output.
CSC 580 Computer Algorithms
Prerequisites: none
This course will cover algorithm design, sorting, searching, graph algorithms, stacks, queues, and dictionary implementations, divide and conquer algorithms, dynamic programming, randomized algorithms, amortized analysis, lower bound analysis, NP-Completeness.
ICS 502 Cyber Attack Countermeasures
Prerequisites: ICS 501
Countermeasures for the preventing of cyberattacks. Firewalls – design, types and comparisons, intrusion detection, network access controls, network and browser encryption, network management, and secure systems development, cloud security.
SWE 542 SQA/manual/auto/perf Testing
Prerequisites: None
Testing of software can be done in both Automation and Manual testing method, but it totally depends on the project requirement, budget associated with the project, and which testing method will be benefited to the project. Automation Testing is a method which uses automation tools to run tests that repeat predefined actions, matches the developed program’s probable and real results. Manual testing is a method used by software developers to run tests manually. This course will teach the following: Software testing concepts; Black Box Testing, White Box Testing, Integration Testing, System Testing, Unit Testing, and Acceptance Testing; and Test Management tools: QC/ALM, Defect tracking tool, Jira and automation tool, and QTP/Selenium.​
INT 593 Internship (1-3 credit hours)
Prerequisites: CFL 591

This course consists of participation in a full-time or part-time internship experience, related to the student’s field of study under the supervision of both an approved internship provider and a faculty advisor. This course provides practical, hands-on training in a relevant industry to enhance classroom learning. A maximum of 10 credit hours earned in INT 593 may be applied toward the Master’s Degree graduation requirements.
CSC 502 Principles of OS & Distributed Systems
Prerequisites: None
The course begins with basic principles of a monolithic OS, as exemplified by Linux, MacOS, and Windows, then advances to more sophisticated details of processes, preemptive multiprocessing, lightweight processes, and interrupts various types of interprocess communications, demons, file systems, signals, and paging, which are present on each independent node of the network. Then it advances to the specific software subsets on each node of the aggregate operating system composed of the multitude of nodes. Then it advances to the higher level of the global system management components given for each node that coordinate the nodes’ activities to form a collaboration. Coordination of the cooperation of an individual node’s kernel OS and management component by the management system. In a properly functioning integration the whole distributed system should exhibit transparency which means that it appears to the user as one single OS entity.
CSC 550 Big Data
Prerequisites: Knowledge of Java​
This course will introduce the basic concepts, tools, techniques, and applications. This course will cover the most up-to-date Big Data Technology including Hadoop Distributed File System (HDFS) and MapReduce engine as well as Business Intelligence tools.
CSC 688 Special Topics (1 to 3 credit hours)
Prerequisites: None
Special topics courses cover subjects not currently contained in the curriculum, but are designed to address especially relevant trends or developments related to the discipline.
SWE 500 Software Engineering
Prerequisites: None
In this class, students will learn the elements of engineering and the relationship of engineering to software practice. It also covers how those principles and practices apply to the design, development, and maintenance of software throughout the entire software lifecycle. The course introduces traditional and contemporary approaches to software engineering practice. These include: requirements development, architecture and detailed design, modeling, testing strategies, process selection, project management, how to interact with other engineers on large-scale systems, and more. This course includes a capstone team where students gain practical experience designing a software system from start to finish using software modeling techniques such as UML, as well as a variety of project management methods and tools. This is not a programming course, but a background in object-oriented programming (OOP) will be valuable in helping the student understand the demands of the capstone project.
SWE 680 Software Architecture
Prerequisites: SWE 600
Every computer software system has an architecture, even if it is an ad hoc architecture. Modern software systems are larger, include more interoperability of their components, and often involve many programmers and engineers, working together to achieve a predictable design. When there is no coherent architecture for the design, the engineers and programmers often find themselves working at cross-purposes, constantly reworking their product to satisfy previously undefined requirements. This class is focused on the high-level concern of the architecture of a software system. Therefore, we will not be doing any computer programming. The course interests will include the requirements development, system context, and relationships between the various components and structures in a software architecture. At the end of this course students will be prepared to participate in a software (or systems) engineering project at the high level of development where they design the fundamental architecture for that system. Students will understand requirements development, project strategies and tactics, patterns of architecture, and architectural styles and idioms.

AMS 552 Probability, Statistics, and Reliability for Engineers
CSC 532 Client Programming with JS/jQuery
Prerequisites: CSC 525, CSC 530
jQuery is a JavaScript library designed to simplify the client-side scripting of HTML. It is designed to make it easier to navigate a document, select DOM elements, create animations, handle events, and develop Ajax applications. The topics of the course include: Basic jQuery syntax, jQuery element selectors, jQuery event handling, Ajax using jQuery, jQuery UI library.
CSC 650 Big Data Analytics (CPO-SAS/SPSS)
Prerequisites: CSC 550
This course emphasizes the key aspects of data analytics for students intending to pursue certain professional certification, i.e., SPSS or SAS, upon the completion of the course. The first module introduces the fundamental statistical thinking to the computer scientist, including probability, random variables, and statistical inference. Then, predictive modeling techniques, such as linear and logistic regression, are covered to make transition to the supervised and unsupervised data mining techniques. In the last module of the course, some popular big data platforms, namely, Hadoop/Mahout and Spark/MLlib, are discussed from the data analytics point of view. Examples from the text and social media mining application are covered in the second and the third module. The commercial software (student version) is required and used through the first and second modules, such that the students can be fluent in the application to meet the certification requirement thus limited programming requirement.
ICS 601 Advanced Cyber Security
Prerequisites: ICS 501
Cryptographic systems, communications and network security, security operations, security in the SW life cycle, investigations, resource protection, incidence response, implications of quantum computing.
SWE 562 Oracle Database Management/Administration
Prerequisites: None
This course introduces Oracle as a practical example of a widely used database system, teaches basic database concepts, data definition and manipulation languages (SQL), general architecture of database management systems, transaction management, concurrency control, security, distribution, and query optimization.
CSC 501 Discrete Structures
Prerequisites: None
This course is about discrete structures and forms an introduction to the theoretical side of computer science. Discrete structures and discrete mathematics turn out to be the “calculus’’ of computer science--these are the structures that students will use to model real-world problems, to build algorithms upon, and to program with (both for modeling problems as well as use in data-structures and algorithms). In this course students will learn about various discrete structures (numbers, sets, relations, functions, trees, graphs), how to talk about them (propositional and predicate logic), how to prove things about them (using contradiction, construction, induction, combinatorics), and how to read and write literate formal mathematics. Students will also get a quick introduction to key applications to algorithmic analysis (like asymptotic worst-case running time analysis for algorithms). This “calculus of computer science’’ will serve students as a foundation for computational thinking.
CSC 512 Data Structures
Prerequisites: None
Recommended: Knowledge of C++ or Java
This course discusses the definition, design, and implementation of abstract data structures, including arrays, stacks, queues, heaps, and linked structures. Other data structures include hash tables, trees, and graphs. Students will also learn algorithms for manipulating theses structures, searching, and sorting, and the simpler graph algorithms. An introduction to the analysis of some sorting and searching algorithms is also covered.
CSC 610 Ruby on Rails
Prerequisites: None
Recommended: Knowledge of HTML, JavaScript, database​
This course offers a comprehensive introduction to Ruby on Rails, an open source web application framework for the Ruby Programming language. Ruby on Rails makes it easy to build a modern Web application. It includes everything that is needed to build applications.
ICS 520 Personal Computer Security
Prerequisites: None
Beginner's computer security course for small office or home users. Learn to stop hackers, worms, viruses, spyware, web bugs and identity theft. Learn vulnerabilities found in web browsers, email and operating systems. Protect against online purchase dangers, install firewalls, manage cookies, restrict ports, analyze log files, evaluate wireless networks and examine encryption.
SWE 544 SQA/Software Testing Tools
Prerequisites: None
This course introduces the QA with test methodologies and procedures. During the course, the students go through the Manual Testing and Automation of Client/server and web based applications. The course will quickly build through each of these concepts and configuration so that by the final day of class, each student will have fully tested the application manually and convert manual test cases into automation scripts. In doing so, the students will focus on different aspects and become acquainted with additional functions.
ICS 501 Introduction to Cyber Security
Prerequisites: None
Overview of the field of Cyber Security: history and basics of cryptography, risk and data management, fundamental concepts, preventative measures, rules, regulations and legal issues, security testing and assessment, identity and access management, database security, computer ethics, digital signatures.
CSC 505 The UNIX/Linux OS
Prerequisites: Recommended knowledge of C
Linus is a Unix like operating system that has been ported to more hardware platforms than any other OS. It is the leading OS on servers, big computers including supercomputers, embedded systems, and mobile devices such as android. This course focuses on the practical usage of the basic Linux operating system features. It introduces the student to the general principles of modern operating systems: preemptive multiprocessing; and of Linux in particular: shells, environment, shell variables, processes, threads, interprocess communication, the Unix file system, and shell scripts. Upon completion of this course the student will be able to work efficiently in a Linux or Unix environment, to tailor an environment to specific needs, to understand the basics of Linux system administration, to understand security risks, to write C programs that use system calls, and to write scripts for the C shell.
CSC 555 Bio Informatics
Prerequisites: None
Recommended: Knowledge of C++ or Java​
This course starts with a brief introduction to molecular biology. It then investigates the main algorithms used in Bioinformatics. After a brief description of commonly used tools, algorithms, and databases in Bioinformatics, the course describes specific tasks that can be completed using combinations of the tools and Databases. The course then focuses on the algorithms behind the most successful tools, such as the local and global sequence alignment packages: BLAST, Smith-Waterman, and the underlying methods used in fragment assembly packages. Lecture topics include Dynamic Programming for pairwise alignment; Hidden Markov Models for pattern recognition, conducting profile-based searches and transmembrane protein structure prediction; phylogenetic tree construction and RNA structure prediction, and the use of SNPs and haplotypes in genomic variation, in pharmacogenomics, in genome-wide association studies and in personalized medicine. The course is self-contained and does not assume any background knowledge in biology, although an interest is molecular biology is helpful. The course will be complemented by hands-on, computer lab sessions that will allow the participants to practice with some of the major tools and databases. Students will solve hands-on problems on HIV, BRCA1 gene, Thalassemia, etc.
CSC 689 Independent Study (1 to 3 credit hours)
Prerequisites: None
Independent Study allows students to explore academic areas of special interest not provided in the existing curriculum. It is carried out under the guidance of a member of the faculty.
SWE 518 User Interface Design & Implementation
Prerequisites: None
This course introduces the principles of user interface development and the iteration of design-implementation-evaluation. It will study the important design principles to design good UI. Students will see different techniques for prototyping user interfaces and learn techniques for evaluating and measuring usability.
SWE 688 Special Topics
(1 to 3 credit hours)
AMS 722 Advanced Applied Mathematics Methods
CSC 535 Server Programming With PHP
Prerequisites: CSC 525
PHP is one of the best server-side technologies for handling Web content easily and efficiently. PHP is a free, open-source language devoted primarily to handling dynamic web pages and used by millions of sites worldwide. It can be integrated with HTML and handle databases. The course starts with the development environment and the language syntax. It introduces the concepts of OOP in PHP at different levels. It also covers the interactions with HTML web pages and databases. PHP Ajax support is introduced as the advanced topic. Practical examples and sample codes will be given. Upon successful completion of this course, students will gain hands-on experience with PHP syntax and constructs such as variables, arrays, strings, loops, user-defined functions and how to integrate HTML and PHP code to manage and process data.

CSC 660 Advanced Data Science
Prerequisites: CSC 560
Recommended: Knowledge of R Language
This course builds on Introduction to Data Science by introducing the idea of data products and encouraging students to build products base on data analyses. ​
ICS 620 Computer Malware
Prerequisites: ICS 520
Definition of computer malware (viruses, worms, Trojan horses, rootkits, backdoors), Infectious malware, the functioning of malware, coding of malware, self-replication, techniques for evading detection; reasons for vulnerability to malware; anti-malware strategies, anti-virus software. Dangers of malware: identity theft, file and data corruption industrial espionage.
SWE 570 Internet of Things Architecture and Security
Prerequisites: None
The objective of the course is to introduce students to the principles, technology and applications of the Internet of Things (IoT). The course includes a coverage of the key principles and building blocks of IoT (architecture), the key enabling technologies (devices, networking and management), and the issues of security of the IoT systems. At the end of this course the student would be able to describe the key IoT technologies in detail, explain issues in developing large-scale IoT systems, explain applications of IoT and demonstrate a deep understanding of at least one IoT research topic.
CSC 502 Principles of OS & Distributed Systems
Prerequisites: None
The course begins with basic principles of a monolithic OS, as exemplified by Linux, MacOS, and Windows, then advances to more sophisticated details of processes, preemptive multiprocessing, lightweight processes, and interrupts various types of interprocess communications, demons, file systems, signals, and paging, which are present on each independent node of the network. Then it advances to the specific software subsets on each node of the aggregate operating system composed of the multitude of nodes. Then it advances to the higher level of the global system management components given for each node that coordinate the nodes’ activities to form a collaboration. Coordination of the cooperation of an individual node’s kernel OS and management component by the management system. In a properly functioning integration the whole distributed system should exhibit transparency which means that it appears to the user as one single OS entity.
CSC 515 iPhone Application Development
Prerequisites: None
This course provides a training in iPhone application development including: Introduction to Objective-C; iPhone technologies: multi-touch interface, accelerometer, GPS, maps, proximity sensor, dialer, address book and calendar. It helps students to understand the business aspects of an application development.
CSC 615 Angular JS
Prerequisites: None
Recommended: CSC 530 or previous programming experience in JavaScript
AngularJS provides a layer on top of JQuery and DOM, reduces boilerplate code and improves maintainability. The best use of AngularJS is the consistent manner in which a new developer can generate the code for the structure and the layout. Once the structure is ready, the developer can concentrate more on look and feel rather than routine boiler plate code and cruft. The chapters covered include Introduction, Directives and Controllers, Unit Testing, Forms, Input and Services, Server Side communication using http.​
ICS 525 Principles of Ethical Hacking
Prerequisites: None
Recommended: Knowledge of C++, Java, or Python​
In this course students will learn and practice hacking techniques used by malicious, black-hat hackers as a means to learn best defense from these same hackers. The course is an in-depth study using hands-on lab exercises. While these hacking skills can be used for malicious purposes, this course teaches you how to use the same hacking techniques to perform a white-hat, ethical hack, on your organization. The course trains for the CEH (Certified Ethical Hacker Certificate). Students will be trained to penetrate, test and hack their employers’ own computer system in order to safeguard it from real (malicious) hackers. The Ethical Hacker is a trustworthy employee of an organization trained to attempt to penetrate networks and/or computer systems by using the same methods and techniques as a malicious hacker. Through this the individual can learn and master the malicious hackers methods find the weak pointes in an organization’s network or computer systems and build safeguards against hacking attempts. The CEH is the most desired information security training program for any IT security professional.
SWE 546 SQA/Performance Testing
Prerequisites: None
This course provides an introduction to the complexities of software performance testing and delivers testing skills that participants can immediately apply back on the job. The following topics will be addressed: understand the performance testing process: planning, preparation, execution, and reporting; relate performance testing to the development process; understand performance goals and objectives; learn how to deal with environment and architecture issues; define operational profiles and load definitions; understand and select the various types of performance tests; and define and select appropriate measurements.
ICS 501 Introduction to Cyber Security
Prerequisites: None
Overview of the field of Cyber Security: history and basics of cryptography, risk and data management, fundamental concepts, preventative measures, rules, regulations and legal issues, security testing and assessment, identity and access management, database security, computer ethics, digital signatures.
CSC 509 C Programming
Prerequisites: None
The course is an introduction to the C language as per the chapters of the book by Kernighan & Ritchie. The key topics covered will be C basics including Control Flow, Functions, Pointers, Structures, Memory Allocation/DE Allocation, Input/output (command line & files). The course will be very hands-on and students will be expected to test code from C books (list will be given in class), and thus understand the concepts.

CSC 560 Introduction to Data Science
Prerequisites: None
A practitioner of data science is called a data scientist. Data science leverage all available and relevant data to effectively predict a model that can be easily understood by non-practitioners. A major goal of data science is to make it easier for others to find and coalesce data with greater ease. Data science technologies impact how we access data and conduct research across various domains, including the biological sciences, medical informatics, social sciences and the humanities.
CSC 720 Formal Methods
Prerequisites: None
This course will focus on fundamental mathematical models of computation. It will discuss both the inherent capabilities and limitations of these computational models as well as their relationships with formal languages. Rigorous arguments and proofs of correctness will be emphasized. Particular topics to be covered include: (1) Finite automata, regular languages, and regular grammars. (2) Deterministic and nondeterministic computations on various automata. (3) Context free grammars, languages, and pushdown-automata. (4) Turing machines, Church’s thesis, and undecidable problems.
SWE 525 Version Control Tools/GIT
Prerequisites: None
This course is designed to make the participants experts in git tool. It starts with fundamental concepts like git branch and continues to advanced topics like design and git work flow. The course covers different components of git and github and how they are used in software development operations. The course also covers Installation & Configuration of github and other tools and techniques like github desktop, SourceTree and Sparkle share as well. Participants will also get to implement one project towards the end of the course. Companies use git for creating and managing open source API’s and to help the open source community. It is github, a git repository hosting service founded just a few years ago to build software better, together. Most of the high paying companies are using git and github for their new, innovative and upcoming Software Languages. Open source software can now be made using github and you will be able to share your repositories with other developers so that they can also contribute. github concepts can be implemented in Big Data and Hadoop technology, Java Projects and other frameworks as well. Some of the trending repositories in github are Scala and AngularJS.
SWE 689 Independent Study
(1 to 3 credit hours)
CSC 501 Discrete Structures
Prerequisites: None
This course is about discrete structures and forms an introduction to the theoretical side of computer science. Discrete structures and discrete mathematics turn out to be the “calculus’’ of computer science--these are the structures that students will use to model real-world problems, to build algorithms upon, and to program with (both for modeling problems as well as use in data-structures and algorithms). In this course students will learn about various discrete structures (numbers, sets, relations, functions, trees, graphs), how to talk about them (propositional and predicate logic), how to prove things about them (using contradiction, construction, induction, combinatorics), and how to read and write literate formal mathematics. Students will also get a quick introduction to key applications to algorithmic analysis (like asymptotic worst-case running time analysis for algorithms). This “calculus of computer science’’ will serve students as a foundation for computational thinking.
CSC 545 Programming In GO
Prerequisites: None
Go, also commonly referred to as golang, is a programming language developed at Google in 2007 by Robert Griesemer, Rob Pike, and Ken Thompson. It is a statically-typed language with syntax loosely derived from that of C, adding garbage collection, type safety, some dynamic-typing capabilities, additional built-in types such as variable-length arrays and key-value maps, and a large standard library. Go projects are for networking, distributed functions, or services: APIs, Web servers, minimal frameworks for Web applications, and the rest. In its weekday modality the course is taught over 15 weeks with 2 hours lecture and 1 hour lab per week.
CSC 680 Advanced Computer Algorithms
Prerequisites: none
This course covers advanced methods of algorithmic design, analysis, and implementation. Techniques to be covered include amortization, randomization, network flow, linear programming, approximation algorithms, computational complexity, and NP completeness analysis. Domains include FFT, number theoretical algorithms, RSA encryption - decryption, various breaking attempts (factorization), primality checking, Diffie-Hellman key exchange, ElGamal encryption, algebra-based encryptions such as AES, cryptographic hash functions, pattern matching, and bioinformatics.
ICS 630 Digital Forensics Technology
Prerequisites: None
Recommended: ICS 520
General tools and techniques used in forensic analysis, investigating digital media and physical memory for securing evidence in criminal investigations, investigating computer crime; digital forensic software, mobile forensic analysis.
SWE 632 Software Risk Management
Prerequisites: None
This course introduces the field of software risk management which includes the software estimation, planning and control process. Risk management in software includes critical factors that impact estimates, methods for selecting metrics and measures, proper software sizing, as well as processes that identify and manage risks in the software development process as well as the operational phase of the software life cycle. Risk management and software estimation and measurement, when used properly in the software engineering context expedite the software estimation process, help generate more accurate estimates, and contribute to safe and resilient software engineering projects. Risk techniques also mitigate safety and security issues and form a total software success paradigm for software development projects.
CSC 620 Programming Language Theory
Prerequisites: None
Recommended: Knowledge of Discrete Mathematics for Computer Science
This course provides an overview of common programming paradigms, including imperative, object-oriented, logic, and functional programming, and discusses the fundamental concepts underlying the design, definition, and implementation of modern computer languages. Students will get practical experience with languages that exemplify a particular paradigm.
CSC 518 OO Programming with Java
Prerequisites: None
This course focuses on the Java language as a tool for object-oriented programming. It introduces the student to the basic features of the Java language: primitive data types, terminal window-keyboard I/O, file I/O, classes, constructors and initialization, references vs. objects, access modifiers, memory maps, control structures, arrays, inheritance, function overloading and overriding, dynamic binding, interfaces, command line arguments, and exception handling. Some instruction to the platform-independent Java GUI API with Swing will be provided.
CSC 625 Advanced HTML5
Prerequisites: CSC 525, CSC 530​
This course is for Web developers who have solid experience in the basics of HTML5. This course will take the Web developers deep into the advanced techniques and functions that HTML5 has to offer. This course will first explore some JavaScript basics - writing to an HTML page, using variables and functions, interacting with HTML, looping and drag and drop functions. Then the course will continue by exploring how to utilize and create custom media controls. The course will cover the more popular CSS3 features such as transform, translation and animation, and HTML5 Form API, Canvas, Geolocation, Drag and Drop, Web Storage, Communication, Messaging, History, Offline, indexDB, File, Web Workers, and finally, HTML5 for Mobile Apps. Upon completion, the Web developers will have a deeper understanding of how to take advantage of the many new features and functions that HTML5 has to offer.
ICS 530 Cloud Computing Security
Prerequisites: SWE 561​
This class provides students a comprehensive understanding cloud security fundamentals and advanced expertise in cloud environments. Starting with a detailed description of cloud computing, the course covers all major domains in the latest Guidance document from the Cloud Security Alliance, and the recommendations from the European Network and Information Security Agency (ENISA) with expanded material and extensive hands-on activities. Students will learn to apply their knowledge as they perform a series of exercises as they complete a scenario bringing a fictional organization securely into the cloud.
SWE 550 Software Project Management (CPO-ACP)
Prerequisites: None
This course provides an overview of software project management history, culture, methodologies, leadership, and strategic planning. The course introduces important tools, such as work breakdown structure, scheduling, earned value analysis, and risk management. Case studies from a variety of organizational settings are discussed. The course discusses the 5 processes that must be done for traditional project management success: (Define, Organize, Execute, Control, and Close) and Complex Project Management (Agile PM and Extreme PM). The strategic implications of projects will be considered with respect to the organizational vision. The course follows the Project Management Body of Knowledge (PMBOK) of the Project Management Institute (PMI) and allows the students to prepare for the examinations for the Agile Certified Practitioner ACP. The course focuses on the concepts and tools of the different software project management elements. It first sets the software project management framework and describes the different steps in the software project management process. Next, all the key management aspects of a software project are addressed: integration, scope, time, cost, quality, human resources, communications, risk, procurement, and stakeholder.
ICS 502 Cyber Attack Countermeasures
Prerequisites: ICS 501
Countermeasures for the preventing of cyberattacks. Firewalls – design, types and comparisons, intrusion detection, network access controls, network and browser encryption, network management, and secure systems development, cloud security.
CSC 511 OO Programming with C++
Prerequisites: None
Recommended: Knowledge of C
This class teaches Objected Oriented Programming using C++. Prior exposure to C is helpful but not required as the basic concept of C programming will be reviewed. The topics covered include: Syntax of C++, classes and objects, encapsulation, inheritance, polymorphism, design for reuse, programming with objects, the standard template library, namespaces, exceptions, type casting, and file input/output.
CSC 575 Topics in Computer Science
CSC 730 Cryptography & Cryptanalysis
Prerequisites: None
This course analyzes ways to protect information during transfer in computer systems and networks. It includes the mathematics of cryptography, Number theoretical concepts, RSA theory, Diffie-Hellman key exchange, ElGamal Discrete Logarithm and their application and use in distributed systems, secure internet services, digital signature, intrusion detection and firewalls; coding based encryption; post-quantum cryptography. Some factoring methods to be studied include Fermat, Pollard Rho, and Elliptic Functions.
SWE 540 SQA/Manual Testing
CFL 591 Integrating Academic & Internship Learning (2 Credit hours)
Prerequisites: None

This course provides an overview of expectations and requirements for INT 593 Internship, teaches students how to integrate their academic and internship learning, and enhances career skills development. A student must pass CFL 591(can be taken concurrently) in order to be eligible to enroll in INT 593.

CSC 502 Principles of OS & Distributed Systems
Prerequisites: None
The course begins with basic principles of a monolithic OS, as exemplified by Linux, MacOS, and Windows, then advances to more sophisticated details of processes, preemptive multiprocessing, lightweight processes, and interrupts various types of interprocess communications, demons, file systems, signals, and paging, which are present on each independent node of the network. Then it advances to the specific software subsets on each node of the aggregate operating system composed of the multitude of nodes. Then it advances to the higher level of the global system management components given for each node that coordinate the nodes’ activities to form a collaboration. Coordination of the cooperation of an individual node’s kernel OS and management component by the management system. In a properly functioning integration the whole distributed system should exhibit transparency which means that it appears to the user as one single OS entity.
CSC 550 Big Data
Prerequisites: Knowledge of Java​
This course will introduce the basic concepts, tools, techniques, and applications. This course will cover the most up-to-date Big Data Technology including Hadoop Distributed File System (HDFS) and MapReduce engine as well as Business Intelligence tools.
CSC 688 Special Topics
(1 to 3 credit hours)
ICS 670 Network & Data Security
Prerequisites: None
Recommended: Knowledge of Information Assurance Fundamentals and Data communications​
The course covers theory and practice of the security aspects of the web and Internet. It surveys cryptographic tools used to provide security, such as shared key encryption (DES, 3DES, RC-4/5/6, etc.); public key encryption, key exchange, and digital signature (Diffie-Hellmann, RSA, DSS, etc.). It then reviews how these tools are utilized in the internet protocols and applications such as SSL/TLS, IPSEC, Kerberos, PGP, S/MIME, SET, and others (including wireless). System security issues, such as viruses, intrusion, and firewalls, will also be covered.
SWE 633 Software Refactoring
Prerequisites: SWE 500
Software Refactoring is a change made to the internal structure of software to make it easier to understand and cheaper to modify without changing its observable behavior (Fowler 1999). Improving the design of existing code. Various techniques and refactoring patterns. Increasing software understandability and productivity, reducing software complexity, aging, and maintenance costs. Refactoring in the context of agile development, during debugging and code review. Refactoring tools for important languages and OSs. Various categories of refactoring, small and big refactoring. Refactoring of UML design models.
CSC 680 Advanced Computer Algorithms
Prerequisites: none
This course covers advanced methods of algorithmic design, analysis, and implementation. Techniques to be covered include amortization, randomization, network flow, linear programming, approximation algorithms, computational complexity, and NP completeness analysis. Domains include FFT, number theoretical algorithms, RSA encryption - decryption, various breaking attempts (factorization), primality checking, Diffie-Hellman key exchange, ElGamal encryption, algebra-based encryptions such as AES, cryptographic hash functions, pattern matching, and bioinformatics.
CSC 519 Android Phone Application Development
Prerequisites: CSC 518
This course teaches the use of SDKs released by Google to facilitate the development of applications for the Android Phone. Android Phones are Linux based and are programmed in Java. This alone bodes very well for any software development on that platform: The Linux OS, the most powerful and easiest to manage of all operating systems, and the Java programming language with its superior GUI development capabilities. Knowledge of SDKs is certainly an advantage when developing for the Android platform.
CSC 630 Scala Programming
Prerequisites: None
This course is an introduction to software programming using Scala, a programming language evolved from Java. The main advantage of Scala is its versatility. It has combined features of scripting language, objective oriented language and functional programming language. The last feature is particularly useful in Web and multicore applications that require concurrent data processing. Scala has been adopted by some leading high-tech companies. For example, in 2009, Twitter announced that it had switched large portions of its backend from Ruby to Scala and intended to convert the rest. To make learning easier, we will first introduce scala as a scripting language. We will then describe its objected oriented features (including class, object, inheritance, polymorphism, etc.) and finally move on to its main functional programming features.
ICS 535 Cloud and Virtualization Security (CPO)
Prerequisites: SWE 561​
This course introduces the concepts and techniques of implementing and securing cloud computing through the use of virtualization and distributed data processing and storage. Topics include operating system virtualization, distributed network storage, distributed computing, cloud models (IAAS, PAAS and SAAS) and techniques for securing cloud and virtual systems. Practical experience of integrating private, public, and hybrid clouds and virtual servers securely into an existing IT infrastructure will also be covered.
SWE 560 Principles of Database Systems
Prerequisites: None
This is an advance level course on the principles of database systems. Main topics include, but are not limited to: an overview of the relational data model and relational query languages; recursive queries, datalog, and fixed-points; query processing and optimization; database design, dependencies, normal forms, and the chase procedure. Additional topics may include: information integration, complex objects, semistructured data, and XML.​
ICS 601 Advanced Cyber Security
Prerequisites: ICS 501
Cryptographic systems, communications and network security, security operations, security in the SW life cycle, investigations, resource protection, incidence response, implications of quantum computing.
CSC 512 Data Structures
Prerequisites: None
Recommended: Knowledge of C++ or Java
This course discusses the definition, design, and implementation of abstract data structures, including arrays, stacks, queues, heaps, and linked structures. Other data structures include hash tables, trees, and graphs. Students will also learn algorithms for manipulating theses structures, searching, and sorting, and the simpler graph algorithms. An introduction to the analysis of some sorting and searching algorithms is also covered.
CSC 580 Computer Algorithms
Prerequisites: none
This course will cover algorithm design, sorting, searching, graph algorithms, stacks, queues, and dictionary implementations, divide and conquer algorithms, dynamic programming, randomized algorithms, amortized analysis, lower bound analysis, NP-Completeness
CSC 750 Coding Theory
Prerequisites: AMS 750
This class gives an introduction to coding theory. This course introduces examples for codes (ISBN, UPC, etc.) including binary codes, the meaning of important code parameters, detecting errors, correcting errors, sphere packing bound, and binary linear codes. Abstract algebra: fields and vector spaces, polynomial extensions of GF(2). Encoding linear codes: Introduction to generator matrices and parity check matrices, Hamming codes. Linear Algebra over GF(2), nullspace of a matrix, relation between generator and parity matrix. Error correcting codes, cyclic codes (BCH and Reed-Solomon codes), Goppa codes; syndrome decoding, the Patterson Algorithm.
SWE 542 SQA/manual/auto/perf Testing
Prerequisites: None
Testing of software can be done in both Automation and Manual testing method, but it totally depends on the project requirement, budget associated with the project, and which testing method will be benefited to the project. Automation Testing is a method which uses automation tools to run tests that repeat predefined actions, matches the developed program’s probable and real results. Manual testing is a method used by software developers to run tests manually. This course will teach the following: Software testing concepts; Black Box Testing, White Box Testing, Integration Testing, System Testing, Unit Testing, and Acceptance Testing; and Test Management tools: QC/ALM, Defect tracking tool, Jira and automation tool, and QTP/Selenium.​

INT 593 Internship (1-3 credit hours)
Prerequisites: CFL 591

This course consists of participation in a full-time or part-time internship experience, related to the student’s field of study under the supervision of both an approved internship provider and a faculty advisor. This course provides practical, hands-on training in a relevant industry to enhance classroom learning. A maximum of 10 credit hours earned in INT 593 may be applied toward the Master’s Degree graduation requirements.
CSC 505 The UNIX/Linux OS
Prerequisites: Recommended knowledge of C
Linus is a Unix like operating system that has been ported to more hardware platforms than any other OS. It is the leading OS on servers, big computers including supercomputers, embedded systems, and mobile devices such as android. This course focuses on the practical usage of the basic Linux operating system features. It introduces the student to the general principles of modern operating systems: preemptive multiprocessing; and of Linux in particular: shells, environment, shell variables, processes, threads, interprocess communication, the Unix file system, and shell scripts. Upon completion of this course the student will be able to work efficiently in a Linux or Unix environment, to tailor an environment to specific needs, to understand the basics of Linux system administration, to understand security risks, to write C programs that use system calls, and to write scripts for the C shell.
CSC 555 Bio Informatics
Prerequisites: None
Recommended: Knowledge of C++ or Java​
This course starts with a brief introduction to molecular biology. It then investigates the main algorithms used in Bioinformatics. After a brief description of commonly used tools, algorithms, and databases in Bioinformatics, the course describes specific tasks that can be completed using combinations of the tools and Databases. The course then focuses on the algorithms behind the most successful tools, such as the local and global sequence alignment packages: BLAST, Smith-Waterman, and the underlying methods used in fragment assembly packages. Lecture topics include Dynamic Programming for pairwise alignment; Hidden Markov Models for pattern recognition, conducting profile-based searches and transmembrane protein structure prediction; phylogenetic tree construction and RNA structure prediction, and the use of SNPs and haplotypes in genomic variation, in pharmacogenomics, in genome-wide association studies and in personalized medicine. The course is self-contained and does not assume any background knowledge in biology, although an interest is molecular biology is helpful. The course will be complemented by hands-on, computer lab sessions that will allow the participants to practice with some of the major tools and databases. Students will solve hands-on problems on HIV, BRCA1 gene, Thalassemia, etc.
CSC 689 Independent Study
(1 to 3 credit hours)
ICS 680 Theory of Cryptographic Systems
Prerequisites: ICS 601
A deeper coverage of modern encryption system and the necessary mathematics. Classical cryptographic constructions, basic cryptographic algorithms, symmetric cryptography; public-key cryptography: RSA, AES (Rijndael) stream cypher, Diffie-Hellman, El Gamal, coding based cryptography: McEliece – Niederreiter. Basic issues and concepts of Network and Data Security such as data confidentiality, data and user authenticity, data integrity, key management and distribution; digital signatures.
SWE 688 Special Topics
(1 to 3 credit hours)
CSC 690 Capstone Project
Select One
CSC 520 Python Programming
Prerequisites: None
Programming and problem solving using Python. Emphasizes principles of software development, style, and testing. Topics include procedures and functions, iteration, recursion, arrays and vectors, strings, an operational model of procedure and function calls, algorithms, exceptions, object-oriented programming.
CSC 631 Data Mining
Prerequisites: None
This course provides an introduction to the theoretical concepts and practical applications of data mining. Data mining facilitates the extraction of hidden predictive information from large complex databases. It is a powerful new technology with enormous potential to help organizations and institutions extract and interpret important information. The course content includes the conceptual framework of data mining, descriptions and examples of standard methods used in data mining. Internet related data mining techniques are also covered. Data processing, statistical modeling, data warehousing and online analytical processing, data conditioning and cleaning, data transformation, text and web mining, mining massive datasets, data stream mining, data mining algorithms, association and correlation, pattern mining, classification, cluster analysis, outlier detection, knowledge discovery, knowledge representation, and validation.
ICS 550 Security Policies
Prerequisites: None
The policies governing administration, management and enforcement of security issues are a separate, necessary element of Cyber Security, not based on some other more fundamental Cyber Security topic. They relate to network security, server security, application security. Explain the vulnerability of small firms. Examples: Policies for enforcing encryptions and strong passwords. Rewards for followers, punishment for non-followers; information in all its forms will be protected from unauthorized modification. All existing systems will be equipped with approved antivirus software. All new equipment and software will be controlled before installation. Set antivirus software for automatic update. No foreign equipment, including private USB thumb drives, are allowed to be used. Employees must know the policies.
SWE 561 Cloud Computing
Prerequisites: None
Recommended: Knowledge of Operating Systems​
Introduction to cloud computing, cloud architecture and service models, the economics and benefits of cloud computing, horizontal/vertical scaling, thin client, multimedia content distribution, multiprocessor and virtualization, distributed storage, security and federation / presence/ identity/ privacy in cloud computing, disaster recovery, free cloud services and open source software, and example commercial cloud services.
ICS 680 Theory of Cryptographic Systems
Prerequisites: ICS 601
A deeper coverage of modern encryption system and the necessary mathematics. Classical cryptographic constructions, basic cryptographic algorithms, symmetric cryptography; public-key cryptography: RSA, AES (Rijndael) stream cypher, Diffie-Hellman, El Gamal, coding based cryptography: McEliece – Niederreiter. Basic issues and concepts of Network and Data Security such as data confidentiality, data and user authenticity, data integrity, key management and distribution; digital signatures.
CSC 515 iPhone Application Development
Prerequisites: None
This course provides a training in iPhone application development including: Introduction to Objective-C; iPhone technologies: multi-touch interface, accelerometer, GPS, maps, proximity sensor, dialer, address book and calendar. It helps students to understand the business aspects of an application development.
CSC 610 Ruby on Rails
Prerequisites: None
Recommended: Knowledge of HTML, JavaScript, database​
This course offers a comprehensive introduction to Ruby on Rails, an open source web application framework for the Ruby Programming language. Ruby on Rails makes it easy to build a modern Web application. It includes everything that is needed to build applications.
ICS 520 Personal Computer Security
Prerequisites: None
Beginner's computer security course for small office or home users. Learn to stop hackers, worms, viruses, spyware, web bugs and identity theft. Learn vulnerabilities found in web browsers, email and operating systems. Protect against online purchase dangers, install firewalls, manage cookies, restrict ports, analyze log files, evaluate wireless networks and examine encryption.
SWE 544 SQA/Software Testing Tools
Prerequisites: None
This course introduces the QA with test methodologies and procedures. During the course, the students go through the Manual Testing and Automation of Client/server and web based applications. The course will quickly build through each of these concepts and configuration so that by the final day of class, each student will have fully tested the application manually and convert manual test cases into automation scripts. In doing so, the students will focus on different aspects and become acquainted with additional functions.
SWE 500 Software Engineering
Prerequisites: None
In this class, students will learn the elements of engineering and the relationship of engineering to software practice. It also covers how those principles and practices apply to the design, development, and maintenance of software throughout the entire software lifecycle. The course introduces traditional and contemporary approaches to software engineering practice. These include: requirements development, architecture and detailed design, modeling, testing strategies, process selection, project management, how to interact with other engineers on large-scale systems, and more. This course includes a capstone team where students gain practical experience designing a software system from start to finish using software modeling techniques such as UML, as well as a variety of project management methods and tools. This is not a programming course, but a background in object-oriented programming (OOP) will be valuable in helping the student understand the demands of the capstone project
CSC 509 C Programming
Prerequisites: None
The course is an introduction to the C language as per the chapters of the book by Kernighan & Ritchie. The key topics covered will be C basics including Control Flow, Functions, Pointers, Structures, Memory Allocation/DE Allocation, Input/output (command line & files). The course will be very hands-on and students will be expected to test code from C books (list will be given in class), and thus understand the concepts.
CSC 560 Introduction to Data Science
Prerequisites: None
A practitioner of data science is called a data scientist. Data science leverage all available and relevant data to effectively predict a model that can be easily understood by non-practitioners. A major goal of data science is to make it easier for others to find and coalesce data with greater ease. Data science technologies impact how we access data and conduct research across various domains, including the biological sciences, medical informatics, social sciences and the humanities.
CSC 720 Formal Methods
Prerequisites: None
This course will focus on fundamental mathematical models of computation. It will discuss both the inherent capabilities and limitations of these computational models as well as their relationships with formal languages. Rigorous arguments and proofs of correctness will be emphasized. Particular topics to be covered include: (1) Finite automata, regular languages, and regular grammars. (2) Deterministic and nondeterministic computations on various automata. (3) Context free grammars, languages, and pushdown-automata. (4) Turing machines, Church’s thesis, and undecidable problems.
ICS 688 Special Topics
(1 to 3 credit hours)
SWE 689 Independent Study
(1 to 3 credit hours)
CSC 695 Master’s Thesis
Select One
CSC 522 R Language Programming
Prerequisites: None
This course is an introduction to the R programming language, which is the premier language for statistical computing, machine learning, and data mining. Basic facilities of R contained in the course include mathematical, graphical, and interactive web applications. R is an open-sourced language used extensively in industry and in academia research. The course demonstrates methods for obtaining data from various sources, along with manipulating that data into a format that can be easily used in machine learning and data mining algorithms. The course covers a multitude of interactive visualization techniques along with the ability to share visualizations through web applications. This course provides insight into functional programming. The course covers reading and writing to and from various sources, R built in data types, controlling the flow of execution, using operators, functions, and R packages. The course includes methods of sharing analytic results in professional formats used by technical journals.
CSC 633 Machine Learning
Prerequisites: None
Recommended: Knowledge of basic computer science principles and skills, probability theory, and linear algebra.​
Machine learning is a fast-moving field with many recent real world commercial applications. The goal of Machine Learning is to build computer model that can produce useful information whether predictions, associations, or classifications. The ultimate goal for many machine learning researchers is to build computing systems that can automatically adapt and learn from their experience. This course will study the theory and practical algorithms in Machine Learning. It reviews what machine learning is about, how it evolved over the past 60 years, why it is important today, basic concepts and paradigms, what key techniques, challenges and tricks. It also cover examples of how machine learning is used/applied today in the real world, and expose students to some experience in building and using machine learning algorithms. This course will also discuss recent applications of machine learning, such as to robotic control, speech recognition, face recognition, data mining, autonomous navigation, bioinformatics, and text and web data processing.
ICS 570 Web Security Fundamentals
Prerequisites: None
Recommended: Knowledge of HTTP, TCP/IP, SQL, and operating systems​
This course introduces students to the fundamentals of computer security as the first step towards learning how to protect computers from hackers. The course begins by explaining the very basic concepts of computer security and provides substantial technical details to keep students interested and involved. It includes hands-on labs and graded and non-graded assignments for each unit that provide an opportunity to practice what the students learn. It also includes a few security games to make learning more exciting and interactive. Students are expected to be familiar with standard computer operations (e.g., login, cut & paste, email attachments, etc.) before enrolling in the course. This course will give students a clear vision on how all seven layers will work in IOS model and different levels of security in each layer.
SWE 562 Oracle Database Management/Administration
Prerequisites: None
This course introduces Oracle as a practical example of a widely used database system, teaches basic database concepts, data definition and manipulation languages (SQL), general architecture of database management systems, transaction management, concurrency control, security, distribution, and query optimization.
ICS 690 Capstone Project OR
Prerequisites: Department approval and completion of 27 credit hours of the MSSE program.
The capstone project is a report, analysis, project, or program, submitted by a graduate student. It is designed to demonstrate the in-depth learning and higher-order-thinking of the student. It is meant to be an analysis of knowledge, breaking information down according to the analytical strength of the student’s thinking as well as synthesis of knowledge and assembling the parts into a new coherent whole.
CSC 518 OO Programming with Java
Prerequisites: None
This course focuses on the Java language as a tool for object-oriented programming. It introduces the student to the basic features of the Java language: primitive data types, terminal window-keyboard I/O, file I/O, classes, constructors and initialization, references vs. objects, access modifiers, memory maps, control structures, arrays, inheritance, function overloading and overriding, dynamic binding, interfaces, command line arguments, and exception handling. Some instruction to the platform-independent Java GUI API with Swing will be provided.
CSC 615 Angular JS
Prerequisites: None
Recommended: CSC 530 or previous programming experience in JavaScript
AngularJS provides a layer on top of JQuery and DOM, reduces boilerplate code and improves maintainability. The best use of AngularJS is the consistent manner in which a new developer can generate the code for the structure and the layout. Once the structure is ready, the developer can concentrate more on look and feel rather than routine boiler plate code and cruft. The chapters covered include Introduction, Directives and Controllers, Unit Testing, Forms, Input and Services, Server Side communication using http.​
ICS 525 Principles of Ethical Hacking
Prerequisites: None
Recommended: Knowledge of C++, Java, or Python​
In this course students will learn and practice hacking techniques used by malicious, black-hat hackers as a means to learn best defense from these same hackers. The course is an in-depth study using hands-on lab exercises. While these hacking skills can be used for malicious purposes, this course teaches you how to use the same hacking techniques to perform a white-hat, ethical hack, on your organization. The course trains for the CEH (Certified Ethical Hacker Certificate). Students will be trained to penetrate, test and hack their employers’ own computer system in order to safeguard it from real (malicious) hackers. The Ethical Hacker is a trustworthy employee of an organization trained to attempt to penetrate networks and/or computer systems by using the same methods and techniques as a malicious hacker. Through this the individual can learn and master the malicious hackers methods find the weak pointes in an organization’s network or computer systems and build safeguards against hacking attempts. The CEH is the most desired information security training program for any IT security professional.
SWE 546 SQA/Performance Testing
Prerequisites: None
This course provides an introduction to the complexities of software performance testing and delivers testing skills that participants can immediately apply back on the job. The following topics will be addressed: understand the performance testing process: planning, preparation, execution, and reporting; relate performance testing to the development process; understand performance goals and objectives; learn how to deal with environment and architecture issues; define operational profiles and load definitions; understand and select the various types of performance tests; and define and select appropriate measurements.
SWE 600 Advanced Software Engineering
Prerequisites: SWE 500
This class goes into greater depth in learning the practices and principles of software engineering. The course also includes a brief review of some of the material from SWE 500. In this course, we expand our understanding of software modeling to include real time, concurrency, and embedded systems software engineering. It also goes into more depth in software metrics, project estimation techniques, risk management, software reliability, new and emerging directions for software development. This is also a team-oriented capstone project course, and one of the deliverables at the end of the semester is a fully-formed, professional level software design from the project team.
CSC 511 OO Programming with C++
Prerequisites: None
Recommended: Knowledge of C
This class teaches Objected Oriented Programming using C++. Prior exposure to C is helpful but not required as the basic concept of C programming will be reviewed. The topics covered include: Syntax of C++, classes and objects, encapsulation, inheritance, polymorphism, design for reuse, programming with objects, the standard template library, namespaces, exceptions, type casting, and file input/output.
CSC 575 Topics in Computer Science
CSC 730 Cryptography & Cryptanalysis
Prerequisites: None
This course analyzes ways to protect information during transfer in computer systems and networks. It includes the mathematics of cryptography, Number theoretical concepts, RSA theory, Diffie-Hellman key exchange, ElGamal Discrete Logarithm and their application and use in distributed systems, secure internet services, digital signature, intrusion detection and firewalls; coding based encryption; post-quantum cryptography. Some factoring methods to be studied include Fermat, Pollard Rho, and Elliptic Functions.
ICS 689 Independent Study (1 to 3 credit hours)
Prerequisites: None
Independent Study allows students to explore academic areas of special interest not provided in the existing curriculum. It is carried out under the guidance of a member of the faculty.
CFL 591 Integrating Academic & Internship Learning (2 Credit hours)
Prerequisites: None

This course provides an overview of expectations and requirements for INT 593 Internship, teaches students how to integrate their academic and internship learning, and enhances career skills development. A student must pass CFL 591(can be taken concurrently) in order to be eligible to enroll in INT 593.

AMS 510 Linear Algebra
CSC 527 Mobile Web Programming
Prerequisites: CSC 525, CSC 530
This course is for experienced front-end Web developers who’d like to learn what it takes to create great mobile experiences. In order to succeed in this class, they should be comfortable with HTML, CSS, and JavaScript, and should have experience creating Web apps, either professionally or for fun. This course will teach Web developers how to build Web experiences that adapt to the different screen sizes and capabilities that mobile devices offer, and how to scalable optimize media for mobile and desktop. This course will cover programming touch interaction, as well as how to optimize form field input for mobile devices and use APIs like geolocation and the accelerometer, and ensuring their web experiences work great when network conditions are suboptimal. They will gain the tools to investigate performance in mobile applications, with a strong understanding of mobile networking, battery usage patterns and optimizing paint techniques to build smooth animations on mobile. Upon completion, the web developers will understand what it takes to build great web experiences on mobile devices, have gained experience with the tools they need to test performance, and be able to apply their knowledge to their own projects in the future. ​
CSC 640 Artificial Intelligence
Prerequisites: None
Recommended: Knowledge of Discrete Mathematics​
This course introduces the foundation of simulating or creating intelligence from a computational point of view. It covers the techniques of reduction, reasoning, problem solving, knowledge representation, and machine learning. In addition, it covers applications of decision trees, neural networks, support vector machines and other learning paradigms.
ICS 601 Advanced Cyber Security
Prerequisites: ICS 501
Cryptographic systems, communications and network security, security operations, security in the SW life cycle, investigations, resource protection, incidence response, implications of quantum computing.
SWE 570 Internet of Things Architecture and Security
Prerequisites: None
The objective of the course is to introduce students to the principles, technology and applications of the Internet of Things (IoT). The course includes a coverage of the key principles and building blocks of IoT (architecture), the key enabling technologies (devices, networking and management), and the issues of security of the IoT systems. At the end of this course the student would be able to describe the key IoT technologies in detail, explain issues in developing large-scale IoT systems, explain applications of IoT and demonstrate a deep understanding of at least one IoT research topic.
ICS 695 Master’s Thesis
Prerequisites: Department chair approval and completion of 27 credit hours of the MSSE program.
The master’s thesis must be arranged with the capstone advisor. After the topic is approved independent research in Information Security toward the MS degree must be conducted. The research must result in some new insights into the academic or practical concepts of the Information Security world. These must be analyzed, explained, and documented in the thesis. After completing the thesis, the student must defend it before a committee of faculty appointed by the department chair.
CSC 519 Android Phone Application Development
Prerequisites: CSC 518
This course teaches the use of SDKs released by Google to facilitate the development of applications for the Android Phone. Android Phones are Linux based and are programmed in Java. This alone bodes very well for any software development on that platform: The Linux OS, the most powerful and easiest to manage of all operating systems, and the Java programming language with its superior GUI development capabilities. Knowledge of SDKs is certainly an advantage when developing for the Android platform.
CSC 620 Programming Language Theory
Prerequisites: None
Recommended: Knowledge of Discrete Mathematics for Computer Science
This course provides an overview of common programming paradigms, including imperative, object-oriented, logic, and functional programming, and discusses the fundamental concepts underlying the design, definition, and implementation of modern computer languages. Students will get practical experience with languages that exemplify a particular paradigm.
ICS 530 Cloud Computing Security
Prerequisites: SWE 561​
This class provides students a comprehensive understanding cloud security fundamentals and advanced expertise in cloud environments. Starting with a detailed description of cloud computing, the course covers all major domains in the latest Guidance document from the Cloud Security Alliance, and the recommendations from the European Network and Information Security Agency (ENISA) with expanded material and extensive hands-on activities. Students will learn to apply their knowledge as they perform a series of exercises as they complete a scenario bringing a fictional organization securely into the cloud.
SWE 550 Software Project Management (CPO-ACP)
Prerequisites: None
This course provides an overview of software project management history, culture, methodologies, leadership, and strategic planning. The course introduces important tools, such as work breakdown structure, scheduling, earned value analysis, and risk management. Case studies from a variety of organizational settings are discussed. The course discusses the 5 processes that must be done for traditional project management success: (Define, Organize, Execute, Control, and Close) and Complex Project Management (Agile PM and Extreme PM). The strategic implications of projects will be considered with respect to the organizational vision. The course follows the Project Management Body of Knowledge (PMBOK) of the Project Management Institute (PMI) and allows the students to prepare for the examinations for the Agile Certified Practitioner ACP. The course focuses on the concepts and tools of the different software project management elements. It first sets the software project management framework and describes the different steps in the software project management process. Next, all the key management aspects of a software project are addressed: integration, scope, time, cost, quality, human resources, communications, risk, procurement, and stakeholder.
SWE 602 Software Requirements Elicitation
Prerequisites: SWE 500
Requirements Elicitation is the process of identifying the real problems that the software stakeholder tries to solve, of defining a system and its technical environment, and of identifying the requirements of that system such that it solves these problems for users, customers and other stakeholders. The objective of the class is to prepare software engineers for the task of developing effective requirements under a variety of development modalities. The student, at the conclusion of this course, will understand requirements engineering for Waterfall, V-Model, Spiral Model, Agile Methods, Cleanroom Engineering, the [Rational] Unified Process, as well as other approaches. The student will also understand, and gain experience with, the Unified Modeling Language, including use cases and other facilities of UML. Finally, it will introduce the student to the concepts necessary to moving from requirements to architecture, to design, to implementation. This is not a design or programming course, but an understanding of the principles and practices of software engineering are essential for the software requirements engineer.

(including currying, pattern matching, lazy evaluation, tail recursion, immutability, etc.).
CSC 512 Data Structures
Prerequisites: None
Recommended: Knowledge of C++ or Java
This course discusses the definition, design, and implementation of abstract data structures, including arrays, stacks, queues, heaps, and linked structures. Other data structures include hash tables, trees, and graphs. Students will also learn algorithms for manipulating theses structures, searching, and sorting, and the simpler graph algorithms. An introduction to the analysis of some sorting and searching algorithms is also covered.
CSC 580 Computer Algorithms
Prerequisites: none
This course will cover algorithm design, sorting, searching, graph algorithms, stacks, queues, and dictionary implementations, divide and conquer algorithms, dynamic programming, randomized algorithms, amortized analysis, lower bound analysis, NP-Completeness.
CSC 750 Coding Theory
Prerequisites: AMS 750
This class gives an introduction to coding theory. This course introduces examples for codes (ISBN, UPC, etc.) including binary codes, the meaning of important code parameters, detecting errors, correcting errors, sphere packing bound, and binary linear codes. Abstract algebra: fields and vector spaces, polynomial extensions of GF(2). Encoding linear codes: Introduction to generator matrices and parity check matrices, Hamming codes. Linear Algebra over GF(2), nullspace of a matrix, relation between generator and parity matrix. Error correcting codes, cyclic codes (BCH and Reed-Solomon codes), Goppa codes; syndrome decoding, the Patterson Algorithm.
SWE 518 User Interface Design & Implementation
Prerequisites: None
This course introduces the principles of user interface development and the iteration of design-implementation-evaluation. It will study the important design principles to design good UI. Students will see different techniques for prototyping user interfaces and learn techniques for evaluating and measuring usability.
INT 593 Internship (1-3 credit hours)
Prerequisites: CFL 591

This course consists of participation in a full-time or part-time internship experience, related to the student’s field of study under the supervision of both an approved internship provider and a faculty advisor. This course provides practical, hands-on training in a relevant industry to enhance classroom learning. A maximum of 10 credit hours earned in INT 593 may be applied toward the Master’s Degree graduation requirements.

AMS 512 Applied Mathematics Methods
CSC 530 JavaScript Programming
Prerequisites: CSC 525
This course introduces JavaScript as a programming language. It will talk about variables, data types, conditionals, loops, arrays, event handlers, objects, string, forms, cookies, and functions. It will teach students how to use JavaScript to access and manipulate BOM (Browser Object Model) and DOM (Document Object Model), and how to use JavaScript to make Web pages interactive. It will teach students how to interact HTML, CSS, JavaScript, and DOM within a Web page.
CSC 650 Big Data Analytics (CPO-SAS/SPSS)
Prerequisites: CSC 550
This course emphasizes the key aspects of data analytics for students intending to pursue certain professional certification, i.e., SPSS or SAS, upon the completion of the course. The first module introduces the fundamental statistical thinking to the computer scientist, including probability, random variables, and statistical inference. Then, predictive modeling techniques, such as linear and logistic regression, are covered to make transition to the supervised and unsupervised data mining techniques. In the last module of the course, some popular big data platforms, namely, Hadoop/Mahout and Spark/MLlib, are discussed from the data analytics point of view. Examples from the text and social media mining application are covered in the second and the third module. The commercial software (student version) is required and used through the first and second modules, such that the students can be fluent in the application to meet the certification requirement thus limited programming requirement.
ICS 620 Computer Malware
Prerequisites: ICS 520
Definition of computer malware (viruses, worms, Trojan horses, rootkits, backdoors), Infectious malware, the functioning of malware, coding of malware, self-replication, techniques for evading detection; reasons for vulnerability to malware; anti-malware strategies, anti-virus software. Dangers of malware: identity theft, file and data corruption industrial espionage.
SWE 600 Advanced Software Engineering
Prerequisites: SWE 500
This class goes into greater depth in learning the practices and principles of software engineering. The course also includes a brief review of some of the material from SWE 500. In this course, we expand our understanding of software modeling to include real time, concurrency, and embedded systems software engineering. It also goes into more depth in software metrics, project estimation techniques, risk management, software reliability, new and emerging directions for software development. This is also a team-oriented capstone project course, and one of the deliverables at the end of the semester is a fully-formed, professional level software design from the project team.
AMS 510 Linear Algebra
CSC 520 Python Programming
Prerequisites: None
Programming and problem solving using Python. Emphasizes principles of software development, style, and testing. Topics include procedures and functions, iteration, recursion, arrays and vectors, strings, an operational model of procedure and function calls, algorithms, exceptions, object-oriented programming.
CSC 625 Advanced HTML5
Prerequisites: CSC 525, CSC 530​
This course is for Web developers who have solid experience in the basics of HTML5. This course will take the Web developers deep into the advanced techniques and functions that HTML5 has to offer. This course will first explore some JavaScript basics - writing to an HTML page, using variables and functions, interacting with HTML, looping and drag and drop functions. Then the course will continue by exploring how to utilize and create custom media controls. The course will cover the more popular CSS3 features such as transform, translation and animation, and HTML5 Form API, Canvas, Geolocation, Drag and Drop, Web Storage, Communication, Messaging, History, Offline, indexDB, File, Web Workers, and finally, HTML5 for Mobile Apps. Upon completion, the Web developers will have a deeper understanding of how to take advantage of the many new features and functions that HTML5 has to offer. ​
ICS 535 Cloud and Virtualization Security (CPO)
Prerequisites: SWE 561​
This course introduces the concepts and techniques of implementing and securing cloud computing through the use of virtualization and distributed data processing and storage. Topics include operating system virtualization, distributed network storage, distributed computing, cloud models (IAAS, PAAS and SAAS) and techniques for securing cloud and virtual systems. Practical experience of integrating private, public, and hybrid clouds and virtual servers securely into an existing IT infrastructure will also be covered.
SWE 560 Principles of Database Systems
Prerequisites: None
This is an advance level course on the principles of database systems. Main topics include, but are not limited to: an overview of the relational data model and relational query languages; recursive queries, datalog, and fixed-points; query processing and optimization; database design, dependencies, normal forms, and the chase procedure. Additional topics may include: information integration, complex objects, semistructured data, and XML.​
SWE 680 Software Architecture
Prerequisites: SWE 600
Every computer software system has an architecture, even if it is an ad hoc architecture. Modern software systems are larger, include more interoperability of their components, and often involve many programmers and engineers, working together to achieve a predictable design. When there is no coherent architecture for the design, the engineers and programmers often find themselves working at cross-purposes, constantly reworking their product to satisfy previously undefined requirements. This class is focused on the high-level concern of the architecture of a software system. Therefore, we will not be doing any computer programming. The course interests will include the requirements development, system context, and relationships between the various components and structures in a software architecture. At the end of this course students will be prepared to participate in a software (or systems) engineering project at the high level of development where they design the fundamental architecture for that system. Students will understand requirements development, project strategies and tactics, patterns of architecture, and architectural styles and idioms.
CSC 515 iPhone Application Development
Prerequisites: None
This course provides a training in iPhone application development including: Introduction to Objective-C; iPhone technologies: multi-touch interface, accelerometer, GPS, maps, proximity sensor, dialer, address book and calendar. It helps students to understand the business aspects of an application development.
CSC 610 Ruby on Rails
Prerequisites: None
Recommended: Knowledge of HTML, JavaScript, database​
This course offers a comprehensive introduction to Ruby on Rails, an open source web application framework for the Ruby Programming language. Ruby on Rails makes it easy to build a modern Web application. It includes everything that is needed to build applications.
ICS 501 Introduction to Cyber Security
Prerequisites: None
Overview of the field of Cyber Security: history and basics of cryptography, risk and data management, fundamental concepts, preventative measures, rules, regulations and legal issues, security testing and assessment, identity and access management, database security, computer ethics, digital signatures.
SWE 525 Version Control Tools/GIT
Prerequisites: None
This course is designed to make the participants experts in git tool. It starts with fundamental concepts like git branch and continues to advanced topics like design and git work flow. The course covers different components of git and github and how they are used in software development operations. The course also covers Installation & Configuration of github and other tools and techniques like github desktop, SourceTree and Sparkle share as well. Participants will also get to implement one project towards the end of the course. Companies use git for creating and managing open source API’s and to help the open source community. It is github, a git repository hosting service founded just a few years ago to build software better, together. Most of the high paying companies are using git and github for their new, innovative and upcoming Software Languages. Open source software can now be made using github and you will be able to share your repositories with other developers so that they can also contribute. github concepts can be implemented in Big Data and Hadoop technology, Java Projects and other frameworks as well. Some of the trending repositories in github are Scala and AngularJS.
AMS 520 Optimization Techniques
CSC 532 Client Programming with JS/jQuery
Prerequisites: CSC 525, CSC 530
jQuery is a JavaScript library designed to simplify the client-side scripting of HTML. It is designed to make it easier to navigate a document, select DOM elements, create animations, handle events, and develop Ajax applications. The topics of the course include: Basic jQuery syntax, jQuery element selectors, jQuery event handling, Ajax using jQuery, jQuery UI library.
CSC 660 Advanced Data Science
Prerequisites: CSC 560
Recommended: Knowledge of R Language
This course builds on Introduction to Data Science by introducing the idea of data products and encouraging students to build products base on data analyses. ​
ICS 630 Digital Forensics Technology
Prerequisites: None
Recommended: ICS 520
General tools and techniques used in forensic analysis, investigating digital media and physical memory for securing evidence in criminal investigations, investigating computer crime; digital forensic software, mobile forensic analysis.
SWE 602 Software Requirements Elicitation
Prerequisites: SWE 500
Requirements Elicitation is the process of identifying the real problems that the software stakeholder tries to solve, of defining a system and its technical environment, and of identifying the requirements of that system such that it solves these problems for users, customers and other stakeholders. The objective of the class is to prepare software engineers for the task of developing effective requirements under a variety of development modalities. The student, at the conclusion of this course, will understand requirements engineering for Waterfall, V-Model, Spiral Model, Agile Methods, Cleanroom Engineering, the [Rational] Unified Process, as well as other approaches. The student will also understand, and gain experience with, the Unified Modeling Language, including use cases and other facilities of UML. Finally, it will introduce the student to the concepts necessary to moving from requirements to architecture, to design, to implementation. This is not a design or programming course, but an understanding of the principles and practices of software engineering are essential for the software requirements engineer.

(including currying, pattern matching, lazy evaluation, tail recursion, immutability, etc.).
AMS 512 Applied Mathematics Methods
CSC 522 R Language Programming
Prerequisites: None
This course is an introduction to the R programming language, which is the premier language for statistical computing, machine learning, and data mining. Basic facilities of R contained in the course include mathematical, graphical, and interactive web applications. R is an open-sourced language used extensively in industry and in academia research. The course demonstrates methods for obtaining data from various sources, along with manipulating that data into a format that can be easily used in machine learning and data mining algorithms. The course covers a multitude of interactive visualization techniques along with the ability to share visualizations through web applications. This course provides insight into functional programming. The course covers reading and writing to and from various sources, R built in data types, controlling the flow of execution, using operators, functions, and R packages. The course includes methods of sharing analytic results in professional formats used by technical journals.
CSC 630 Scala Programming
Prerequisites: None
This course is an introduction to software programming using Scala, a programming language evolved from Java. The main advantage of Scala is its versatility. It has combined features of scripting language, objective oriented language and functional programming language. The last feature is particularly useful in Web and multicore applications that require concurrent data processing. Scala has been adopted by some leading high-tech companies. For example, in 2009, Twitter announced that it had switched large portions of its backend from Ruby to Scala and intended to convert the rest. To make learning easier, we will first introduce scala as a scripting language. We will then describe its objected oriented features (including class, object, inheritance, polymorphism, etc.) and finally move on to its main functional programming features
ICS 550 Security Policies
Prerequisites: None
The policies governing administration, management and enforcement of security issues are a separate, necessary element of Cyber Security, not based on some other more fundamental Cyber Security topic. They relate to network security, server security, application security. Explain the vulnerability of small firms. Examples: Policies for enforcing encryptions and strong passwords. Rewards for followers, punishment for non-followers; information in all its forms will be protected from unauthorized modification. All existing systems will be equipped with approved antivirus software. All new equipment and software will be controlled before installation. Set antivirus software for automatic update. No foreign equipment, including private USB thumb drives, are allowed to be used. Employees must know the policies.
SWE 561 Cloud Computing
Prerequisites: None
Recommended: Knowledge of Operating Systems​
Introduction to cloud computing, cloud architecture and service models, the economics and benefits of cloud computing, horizontal/vertical scaling, thin client, multimedia content distribution, multiprocessor and virtualization, distributed storage, security and federation / presence/ identity/ privacy in cloud computing, disaster recovery, free cloud services and open source software, and example commercial cloud services.
SWE 690 Capstone Project OR
Prerequisites: Department Chair approval and completion of 27 hours of the MSSE program.
The capstone project is a report, analysis, software project, or program, submitted by a graduate student. It is designed to demonstrate the in-depth learning and higher-order-thinking of the student. It is meant to be an analysis of knowledge, breaking information down according to the analytical strength of the student’s thinking as well as synthesis of knowledge and assembling the parts into a new coherent whole.
CSC 518 OO Programming with Java
Prerequisites: None
This course focuses on the Java language as a tool for object-oriented programming. It introduces the student to the basic features of the Java language: primitive data types, terminal window-keyboard I/O, file I/O, classes, constructors and initialization, references vs. objects, access modifiers, memory maps, control structures, arrays, inheritance, function overloading and overriding, dynamic binding, interfaces, command line arguments, and exception handling. Some instruction to the platform-independent Java GUI API with Swing will be provided.
CSC 615 Angular JS
Prerequisites: None
Recommended: CSC 530 or previous programming experience in JavaScript
AngularJS provides a layer on top of JQuery and DOM, reduces boilerplate code and improves maintainability. The best use of AngularJS is the consistent manner in which a new developer can generate the code for the structure and the layout. Once the structure is ready, the developer can concentrate more on look and feel rather than routine boiler plate code and cruft. The chapters covered include Introduction, Directives and Controllers, Unit Testing, Forms, Input and Services, Server Side communication using http.​
ICS 502 Cyber Attack Countermeasures
Prerequisites: ICS 501
Countermeasures for the preventing of cyberattacks. Firewalls – design, types and comparisons, intrusion detection, network access controls, network and browser encryption, network management, and secure systems development, cloud security.
SWE 540 SQA/Manual Testing
Prerequisites: None
This course is a comprehensive introduction to Software Testing and Quality Assurance. The following topics will be taught: Software Development Methodologies, The Role of Quality Assurance in a Software Development Life Cycle, Common Software Testing Life Cycles, Software Testing Types and Definitions, Test Planning, Test Design, Test Cases Development, Test Execution & Results Analysis, and Test Matrices.​
AMS 530 Numerical Analysis
CSC 535 Server Programming With PHP
Prerequisites: CSC 525
PHP is one of the best server-side technologies for handling Web content easily and efficiently. PHP is a free, open-source language devoted primarily to handling dynamic web pages and used by millions of sites worldwide. It can be integrated with HTML and handle databases. The course starts with the development environment and the language syntax. It introduces the concepts of OOP in PHP at different levels. It also covers the interactions with HTML web pages and databases. PHP Ajax support is introduced as the advanced topic. Practical examples and sample codes will be given. Upon successful completion of this course, students will gain hands-on experience with PHP syntax and constructs such as variables, arrays, strings, loops, user-defined functions and how to integrate HTML and PHP code to manage and process data.
CSC 688 Special Topics (1 to 3 credit hours)
Prerequisites: None
Special topics courses cover subjects not currently contained in the curriculum, but are designed to address especially relevant trends or developments related to the discipline.
ICS 670 Network & Data Security
Prerequisites: None
Recommended: Knowledge of Information Assurance Fundamentals and Data communications​
The course covers theory and practice of the security aspects of the web and Internet. It surveys cryptographic tools used to provide security, such as shared key encryption (DES, 3DES, RC-4/5/6, etc.); public key encryption, key exchange, and digital signature (Diffie-Hellmann, RSA, DSS, etc.). It then reviews how these tools are utilized in the internet protocols and applications such as SSL/TLS, IPSEC, Kerberos, PGP, S/MIME, SET, and others (including wireless). System security issues, such as viruses, intrusion, and firewalls, will also be covered.
SWE 632 Software Risk Management
Prerequisites: None
This course introduces the field of software risk management which includes the software estimation, planning and control process. Risk management in software includes critical factors that impact estimates, methods for selecting metrics and measures, proper software sizing, as well as processes that identify and manage risks in the software development process as well as the operational phase of the software life cycle. Risk management and software estimation and measurement, when used properly in the software engineering context expedite the software estimation process, help generate more accurate estimates, and contribute to safe and resilient software engineering projects. Risk techniques also mitigate safety and security issues and form a total software success paradigm for software development projects.
AMS 520 Optimization Techniques
CSC 525 HTML/CSS Programming
Prerequisites: None
This course will examine how to create web pages using HTML code. The use of Cascading Style Sheets (CSS) will also be covered. Basic website development tools and website design will be studied though the creation of several HTML/CSS web site projects.
CSC 631 Data Mining
Prerequisites: None
This course provides an introduction to the theoretical concepts and practical applications of data mining. Data mining facilitates the extraction of hidden predictive information from large complex databases. It is a powerful new technology with enormous potential to help organizations and institutions extract and interpret important information. The course content includes the conceptual framework of data mining, descriptions and examples of standard methods used in data mining. Internet related data mining techniques are also covered. Data processing, statistical modeling, data warehousing and online analytical processing, data conditioning and cleaning, data transformation, text and web mining, mining massive datasets, data stream mining, data mining algorithms, association and correlation, pattern mining, classification, cluster analysis, outlier detection, knowledge discovery, knowledge representation, and validation.
ICS 570 Web Security Fundamentals
Prerequisites: None
Recommended: Knowledge of HTTP, TCP/IP, SQL, and operating systems​
This course introduces students to the fundamentals of computer security as the first step towards learning how to protect computers from hackers. The course begins by explaining the very basic concepts of computer security and provides substantial technical details to keep students interested and involved. It includes hands-on labs and graded and non-graded assignments for each unit that provide an opportunity to practice what the students learn. It also includes a few security games to make learning more exciting and interactive. Students are expected to be familiar with standard computer operations (e.g., login, cut & paste, email attachments, etc.) before enrolling in the course. This course will give students a clear vision on how all seven layers will work in IOS model and different levels of security in each layer.
SWE 562 Oracle Database Management/Administration
Prerequisites: None
This course introduces Oracle as a practical example of a widely used database system, teaches basic database concepts, data definition and manipulation languages (SQL), general architecture of database management systems, transaction management, concurrency control, security, distribution, and query optimization.
SWE 695 Master’s Thesis
Prerequisites: Department Chair approval and completion of 27 credit hours of the MSSE program.
The master’s thesis must be arranged with the master’s thesis advisor. After the topic is approved independent research in software engineering toward the MS degree must be conducted. The research must result in some new insights into the academic or practical concepts of the SE world. These must be analyzed, explained, and documented in the thesis. After completing the thesis, the student must defend it before a committee of faculty appointed by the Department Chair.
CSC 519 Android Phone Application Development
Prerequisites: CSC 518
This course teaches the use of SDKs released by Google to facilitate the development of applications for the Android Phone. Android Phones are Linux based and are programmed in Java. This alone bodes very well for any software development on that platform: The Linux OS, the most powerful and easiest to manage of all operating systems, and the Java programming language with its superior GUI development capabilities. Knowledge of SDKs is certainly an advantage when developing for the Android platform.
CSC 620 Programming Language Theory
Prerequisites: None
Recommended: Knowledge of Discrete Mathematics for Computer Science
This course provides an overview of common programming paradigms, including imperative, object-oriented, logic, and functional programming, and discusses the fundamental concepts underlying the design, definition, and implementation of modern computer languages. Students will get practical experience with languages that exemplify a particular paradigm.
ICS 520 Personal Computer Security
Prerequisites: None
Beginner's computer security course for small office or home users. Learn to stop hackers, worms, viruses, spyware, web bugs and identity theft. Learn vulnerabilities found in web browsers, email and operating systems. Protect against online purchase dangers, install firewalls, manage cookies, restrict ports, analyze log files, evaluate wireless networks and examine encryption.
SWE 542 SQA/manual/auto/perf Testing
Prerequisites: None
Testing of software can be done in both Automation and Manual testing method, but it totally depends on the project requirement, budget associated with the project, and which testing method will be benefited to the project. Automation Testing is a method which uses automation tools to run tests that repeat predefined actions, matches the developed program’s probable and real results. Manual testing is a method used by software developers to run tests manually. This course will teach the following: Software testing concepts; Black Box Testing, White Box Testing, Integration Testing, System Testing, Unit Testing, and Acceptance Testing; and Test Management tools: QC/ALM, Defect tracking tool, Jira and automation tool, and QTP/Selenium.​

Digital Arts

Monday
Course Code Course Classroom Session Dates Time Instructor
DGA 518 -1 UI/UX: User Interfaces & User Experience
501 5/7-8/19 6:00PM - 9:00PM Stacey Houghton
DGA 528 -1 Dynamic UX
501 Monday 6:00 pm - 9:00 pm Stacey Houghton
DGA 528 -1 Dynamic UX
501 9/4 - 12/16 6:00 PM - 9:00 PM Stacey Houghton
DGA 518 -1 UI/UX: User Interfaces & User Exper
501 1/7-4/21 6:00 PM - 9:00 PM Stacey Houghton
Tuesday
Course Code Course Classroom Session Dates Time Instructor
DGA 690 -1 Master's Project
501 5/7-8/19 6:00PM - 9:00PM Stacey Houghton
DGA 690 -2 Master's Project
307 9/4 - 12/16 6:00 PM - 9:00 PM Stacey Houghton
DGA 510 -1 Intro to Game Development
501 9/4 - 12/16 6:00 PM - 9:00 PM Mamoun Samaha
DGA 509 -1 Basic Image Manipulation
501 1/7-4/21 6:00 PM - 9:00 PM Gokce Kasikci
Wednesday
Course Code Course Classroom Session Dates Time Instructor
DGA 609 -1 3D Modeling and 3D Printing
501 5/7-8/19 6:00PM - 9:00PM Dave Lo
DGA 508 -1 CG Software Fundamentals
501 9/4 - 12/16 6:00 PM - 9:00 PM Dave Lo
DGA 609 -1 3D Modeling and 3D Printing
501 1/7-4/21 6:00 PM - 9:00 PM Dave Lo
Thursday
Course Code Course Classroom Session Dates Time Instructor
DGA 507 -1 Design Fundamentals
501 5/7-8/19 6:00PM - 9:00PM Gokce Kasikci
DGA 512 -1 Web Graphic Design
501 9/4 - 12/16 6:00 PM - 9:00 PM Gokce Kasikci
DGA 520 -1 Motion Graphics
501 1/7-4/21 6:00 PM - 9:00 PM Jonali Bhattacharyya
Weekend Schedule
Course Code Course Classroom Session Dates Time Instructor
DGA 503-1 Storyboard Design
501 5/12, 5/26, 6/2, 6/9, 7/7, 7/21, 8/11, 8/18 10:00 AM - 5:30 PM Tom Rubalcava
DGA 501-1 New Media Production
Students may be required to travel off campus at their own expense for one of the classes. For further information, please contact the instructor.
501 5/20, 6/16, 6/23, 7/14,7/28, 8/4 10:00 AM - 7:00 PM Jake Wachtel
DGA 621 -1 Producing Digital Media
Students may be required to travel off campus at their own expense for one of the classes. For further information, please contact the instructor.
501 5/20, 6/17, 6/24, 7/15, 7/29, 8/5 10:00AM - 7:00PM Jake Wachtel
DGA 523-1 Social Network Marketing and Publishing
400 5/12, 5/26, 6/02, 6/09, 6/30, 7/21, 8/11, 8/18 12:00 PM - 6:00 PM Shanan Sabin
DGA 522 -1 Editing I
501 9/4 - 12/16 6:00 PM - 9:00 PM Allen White
DGA 526 -1 Screenwriting
501 9/8-9/9, 10/13-10/14, 11/17-11/18 9:00 AM - 6:00 PM Koji Sakai
DGA 631 -1 Digital Media Startup
501 9/15-9/16, 10/20-10/21, 12/15-12/16 9:00 AM - 6:00 PM Jake Wachtel
DGA 523 -1 Social Network Marketing & Publishing
501 1/19, 2/9, 2/23, 3/9, 3/16, 3/30 , 4/6, 4/20 12:00 PM - 6:00 PM Shanan Sabin
DGA 527 -1 Production
Every Sunday
501 1/7-4/21 6:00 PM - 9:00 PM Allen White
DGA 621 -1 Producing Digital Media
501 1/12-1/13, 2/16-2/17, 3/23-3/24 (Saturday) 10:00 AM - 7:00 PM (Sunday) 9:00 AM - 6:00 PM Staff
Internship
Course Code Course Classroom Session Dates Time Instructor
INT 593F-DA.1 Internship
Dave Lo
INT 593P-DA.1 Internship
1 credit hour (unit)
Koji Sakai
INT 593F-DA.1 Internship
Dave Lo
INT 593P-DA.1 Internship
Koji Sakai
INT 593F-DA Internship (Full-Time)
1/7-4/21 Dave Lo
INT 593P-DA Internship (Part-Time)
1/7-4/21 Koji Sakai
Online
Course Code Course Classroom Session Dates Time Instructor
DGA 690-2 Master's Project
5/7-8/19 6:00 pm - 9:00 pm Dave Lo
DGA 690 -1 Master's Project
9/4 - 12/16 Dave Lo
DGA 690 -1 Master's Project
Online 1/7-4/21 Dave Lo
DGA 690 -2 Master's Project
Online 1/7-4/21 Stacey Houghton
Online Session II
Course Code Course Classroom Session Dates Time Instructor
DGA 511 -1 General Production Pipelines
10/22 - 12/9 Koji Sakai
DGA 501 -1 New Media Production
Online 2/25 - 4/14 Staff
Friday
Course Code Course Classroom Session Dates Time Instructor
DGA 520 -1 Motion Graphics
501 9/4 - 12/16 6:00 PM - 9:00 PM Jonali Bhattacharyya
DGA 606 -1 Animation I
501 1/7-4/21 6:00 PM to 9:00 PM Jonali Bhattacharyya

Engineering Management

Tuesday
Course Code Course Classroom Session Dates Time Instructor
EMG 690-1 Capstone Project
406 5/7-8/19 6:00PM - 9:00PM Mamoun Samaha
EMG 503 -1 Product Management
304 Tuesday 6:00 pm - 9:00 pm Yousef Al-Shehabi
EMG 503 -1 Product Management
204 9/4 - 12/16 6:00 PM - 9:00 PM Yousef Al-Shehabi
EMG 500 -1 Principles of Engineering Management
304 1/7-4/21 6:00 PM - 9:00 PM Alex Peters
Wednesday
Course Code Course Classroom Session Dates Time Instructor
EMG 502 -1 Organizational Behavior
305 5/7-8/19 6:00PM - 9:00PM Alex Peters
EMG 560 -1 Cybersecurity Management
303 9/4 - 12/16 6:00 PM - 9:00 PM Mamoun Samaha
EMG 500 -1 Principles of Engineering Management
204 9/4 - 12/16 6:00 PM - 9:00 PM Alex Peters
EMG 502 -1 Organizational Behavior
304 1/7-4/21 6:00 PM - 9:00 PM Alex Peters
EMG 504 -1 Blockchain Fundamentals for Engineering Managers
305 1/7-4/21 6:00 PM - 9:00 PM Mamoun Samaha
Thursday
Course Code Course Classroom Session Dates Time Instructor
EMG 690 -2 Capstone Project
303 5/7-8/19 6:00PM - 9:00PM Alex Peters
EMG 697-1 Thesis
406 5/7-8/19 6:00PM - 9:00PM Nik Tehrani
EMG 501 -1 Engineering Practicum
302 5/7-8/19 6:00PM - 9:00PM Michelle Liang
EMG 697 -1 Thesis
306 9/4 - 12/16 6:00 PM - 9:00 PM Staff
EMG 697 -1 Thesis
306 1/7-4/21 6:00 PM - 9:00 PM Nik Tehrani
Weekend Schedule
Course Code Course Classroom Session Dates Time Instructor
EMG 550 -1 Software QA and Testing for Business Analysts
304 5/26-5/27, 6/30-7/1, 8/4-8/5 9:00AM - 6:00PM Donna A. Dulo
EMG 541 -1 Project Management for Engineers and Engineering Managers
*This course schedule is subject to change*
305 5/26-5/27, 6/30-7/1, 8/4-8/5 9:00AM - 6:00PM Girish Harshe
EMG 551 -1 Agile Methodologies
204 5/12-5/13, 6/16-6/17, 7/21-7/22 9:00AM - 6:00PM Avid Farhoodfar
EMG 545 -1 Introduction to Medical Devices and Digital Health Products
304 5/12-5/13, 6/16-6/17, 7/21-7/22 9:00AM - 6:00PM Alfonso Ramirez
EMG 500 -1 Principles of Engineering Management
305 5/12-5/13, 6/16-6/17, 7/21-7/22 9:00AM - 6:00PM Bhairav Mehta
EMG 510 -1 Mobile Applications and IoT Development for Entrepreneurs
306 5/12-5/13, 6/16-6/17, 7/21-7/22 9:00AM - 6:00PM Mamoun Samaha
EMG 549 -1 Introduction to Software Development and Business Architecture for Eng
406 6/2-6/3, 6/30-7/1, 8/4-8/5 9:00AM - 6:00PM Bhairav Mehta
EMG 522 -1 Fundamentals of Business Analysis for Software Development
303 5/19-5/20, 6/23-6/24, 7/28-7/29 9:00AM - 6:00PM Michelle Liang
EMG 503 -1 Product Management
204 5/19-5/20, 6/23-6/24, 7/28-7/29 9:00AM - 6:00PM Bhairav Mehta
EMG 551 -1 Agile Methodologies
306 9/29-9/30, 11/3-11/4, 12/8-12/9 9:00 AM - 6:00 PM Avid Farhoodfar
EMG 554 -1 Management Consulting
304 10/6-10/7, 11/10-11/11, 12/15-12/16 9:00 AM - 6:00 PM Alex Peters
EMG 570 -1 Cloud Computing Management Issues
304 9/22-9/23, 10/27-10/28, 12/1-12/2 9:00 AM - 6:00 PM Michelle Liang
EMG 528 -1 AI Technology Management
305 9/22-9/23, 10/27-10/28, 12/15-12/16 9:00 AM - 6:00 PM Bhairav Mehta
EMG 502 -1 Organizational Behavior
204 9/29 - 9/30, 11/03 - 11/04, 12/08 - 12/09 9:00 AM - 6:00 PM Tom Tafolla
EMG 504 -1 Blockchain Fundamentals for Engineering Managers
305 9/8-9/9, 10/13-10/14, 12/1-12/2 9:00 AM - 6:00 PM Bhairav Mehta
EMG 522 -1 Fundamentals of Business Analysis for Software Development
306 9/8-9/9, 10/13-10/14, 11/17-11/18 9:00 AM - 6:00 PM Michelle Liang
EMG 549 -1 Introduction to Software Development and Business Architecture for Engineering Managers
304 9/15-9/16, 10/20-10/21, 12/8-12/9 9:00 AM - 6:00 PM Bhairav Mehta
EMG 503 -1 Product Management
203 1/26-1/27, 3/2-3/3, 4/6-4/7 9:00 AM - 6:00 PM Bhairav Mehta
EMG 522 -1 Fundamentals of Business Analysis for Software Development
204 2/2-2/3, 3/9-3/10, 4/13-4/14 9:00 AM - 6:00 PM Michelle Liang
EMG 529 -1 Machine Learning for Engineering Managers
203 2/2-2/3, 3/9-3/10, 4/13-4/14 9:00 AM - 6:00 PM Bhairav Mehta
EMG 551 -1 Agile Methodologies
307 1/26-1/27, 3/2-3/3, 4/6-4/7 9:00 AM - 6:00 PM Avid Farhoodfar
EMG 554 -1 Management Consulting
203 2/9-2/10, 3/16-3/17, 4/20-4/21 9:00 AM - 6:00 PM Alex Peters
EMG 557 -1 Internet of Things (IoT) Management
203 1/19-1/20, 2/23-2/24, 3/30-3/31 9:00 AM - 6:00 PM Michelle Liang
EMG 552 -1 DevOps and Microservices Architecture
302 2/9-2/10,3/16-3/17,4/20-4/21 9:00 AM - 6:00 PM Avid Farhoodfar
EMG 501 -1 Engineering Project Management
301 1/26-1/27, 3/2-3/3, 4/6-4/7 9:00 AM - 6:00 PM Girish Harshe
Internship
Course Code Course Classroom Session Dates Time Instructor
INT 593F-EM.1 Internship
Girish Harshe
INT 593P-EM.1 Internship
1 credit hour (unit)
Avid Farhoodfar
INT 593F-EM.1 Internship
Girish Harshe
INT 593F-EM.2 Internship
Girish Harshe
INT 593P-EM.1 Internship
Avid Farhoodfar
INT 593F-EM -1 Internship (Full-Time)
1/7-4/21 Girish Harshe
INT 593P-EM -1 Internship (Part-Time)
1/7-4/21 Avid Farhoodfar
Monday
Course Code Course Classroom Session Dates Time Instructor
EMG 501 -1 Engineering Project Management
304 9/4 - 12/16 7:00 PM - 10:00 PM Girish Harshe
EMG 550 -1 Software QA and Testing for Business Analysts
204 9/4 - 12/16 6:00 PM - 9:00 PM Donna Dulo
Friday
Course Code Course Classroom Session Dates Time Instructor
EMG 690 -1 Capstone Project
306 9/4 - 12/16 6:00 PM - 9:00 PM Ted Sun
EMG 690 -1 Capstone Project
306 1/7-4/21 6:00 PM - 9:00 PM Ted Sun

Electrical & Computer Engineering

Friday
Course Code Course Classroom Session Dates Time Instructor
CEN 643 -1 Advanced Digital Image Processing
305 5/7-8/19 6:00PM - 9:00PM John Kim
CEN 520 -1 Artificial Intelligence Application Development
305 9/4 - 12/16 6:00 PM - 9:00 PM John Kim
CEN 643 -1 Advanced Image Processing
307 1/7-4/21 6:00 PM - 9:00 PM John Kim
Weekend Schedule
Course Code Course Classroom Session Dates Time Instructor
CEN 508 -1 Scientific Computing
307 5/19-5/20, 6/23-6/24, 7/28-7/29 9:00AM - 6:00PM Y Sun
CEN 551 -1 Computer Architecture
307 5/26-5/27, 6/30-7/1, 8/4-8/5 9:00AM - 6:00PM Y Sun
EEN 511 -1 VLSI Design
307 9/22-9/23, 10/27-10/28, 12/1-12/2 9:00 AM - 6:00 PM Qing Zhu
ECE 510-1 Algorithms and Data Analysis
307 9/15-9/16, 10/20-10/21, 11/10-11/11 9:00 AM - 6:00 PM Ted Sun
CEN 551 -1 Computer Architecture
307 1/12-1/13, 2/16-2/17, 3/23-3/24 9:00 AM - 6:00 PM Qing Zhu
EEN 671 -1 Wireless Communication Systems
307 1/19-1/20, 2/23-2/24, 3/30-3/31 9:00 AM - 6:00 PM Neeli Prasad
Internship
Course Code Course Classroom Session Dates Time Instructor
INT 593F-EE.1 Internship
John Kim
INT 593P-EE.1 Internship
1 credit hour (unit)
John Kim
INT 593F-EE.1 Internship
John Kim
INT 593P-EE.1 Internship
Neeli Prasad
INT 593F-EE-1 Internship (Full-Time)
1/7-4/21 Neeli Prasad
INT 593P-EE -1 Internship (Part-Time)
1/7-4/21 Neeli Prasad
Monday
Course Code Course Classroom Session Dates Time Instructor
AMS 722 -1 Advanced Applied Mathematics Methods
306 Monday 3:00 pm - 6:00 pm John Kim
ECE 510 -1 Algorithms and Data Analysis
307 1/7-4/21 6:30 PM - 9:30 PM Ted Sun
Tuesday
Course Code Course Classroom Session Dates Time Instructor
ECE 646 -1 Capstone Course 1 - IoT System Design
303 9/4-12/16 6:00 PM - 9:00 PM Karl Wang
AMS 722 -1 Advanced Applied Methematics
306 1/7-4/21 6:30 PM - 9:30 PM Ted Sun
EEN 541 -1 Digtal Signal Processing and System Analysis
305 1/7-4/21 6:00 PM - 9:00 PM John Kim
Wednesday
Course Code Course Classroom Session Dates Time Instructor
ECE 500-1 Electrical and Computer Engineering
307 9/4-12/16 6:00 PM - 9:00 PM Neeli Prasad
EEN 766 -1 Advanced Communication Systems
306 1/7-4/21 6:00 PM - 9:00 PM Neeli Prasad
EEN 520 -1 ASIC Design I
307 1/7-4/21 6:00 PM - 9:00 PM Henry Zhang
Thursday
Course Code Course Classroom Session Dates Time Instructor
CEN 556 -1 Distributed Computing Systems
305 9/4 - 12/16 6:00 PM - 9:00 PM John Kim
CEN 542 -1 Computer Vision and Image Processing
307 1/7-4/21 6:00 PM - 9:00 PM John Kim
Weekend Schedule
Course Code Course Classroom Session Dates Time Instructor
CFL 591 - 2 Integrating Academic and Internship Learning
AUD July 7 - 8 Saturday 9:00 am - 7:00 pm and Sunday 9:00 am - 6:00 pm Jason Barber & Ian Morris
CFL 591 - 3 Integrating Academic and Internship Learning
AUD August 4 - 5 Saturday 9:00 am - 7:00 pm and Sunday 9:00 am - 6:00 pm Jason Barber & Ian Morris
CFL 591 - 2 Integrating Academic and Internship Learning
302 11/03 - 11/04 9:00 AM - 6:30 PM Joseph Mazares & Evelyn Andrews
CFL 591 -1 Integrating Academic and Internship Learning
204 10/6-10/7 9:00 AM - 6:30 PM Joseph Mazares & Evelyn Andrews
N/A
Course Code Course Classroom Session Dates Time Instructor
CFL 591 -1 Integrating Academic & Internship Learning
This is a hybrid course. Both on-campus and online attendance are mandatory. This course is not offered in an online-only format.
AUD 1/20, 1/21 Saturday 9:00 am - 7:00 pm and Sunday 9:00 am - 6:00 pm Jason Barber & Ian Morris
Tuesday
Course Code Course Classroom Session Dates Time Instructor
CFL 591 -4 Integrating Academic and Internship Learning
302 9/18 - 10/16 6:00 PM - 9:00 PM Joseph Mazares & Evelyn Andrews
CFL 591 -5 Integrating Academic and Internship Learning
302 10/22 - 11/20 6:00 PM - 9:00 PM Joseph Mazares & Evelyn Andrews

Interdisciplinary Sciences

Weekend Schedule
Course Code Course Classroom Session Dates Time Instructor
CFL 591-1 Integrating Academic & Internship Learning
AUD 1/26-1/27 9:00 AM - 6:00 PM Joe Mazares & Evelyn Andrews
CFL 591-2 Integrating Academic & Internship Learning
AUD 2/9-2/10 9:00 AM - 6:00 PM Joe Mazares & Evelyn Andrews