Skip to main content

Course Descriptions

Below is a sampling of the courses available for the M.S. in Computer Science program, with the number of associated credit hours beside the course name.

Course Listing

Please note: Course availability and descriptions are subject to change. Refer to the CSU Bakersfield Course Catalog for the most up-to-date information.

CMPS 5000 Colloquium in Computer Science (1)
This colloquium is intended to be a speaker series on current research in computer science and related fields.  The colloquium provides a forum to share research, practice methods, distribute tools/software, and discuss current topics. Speakers will include scholars from academia and practitioners from the public and private sectors. Early sessions allow incoming students to familiarize themselves with the program, to other students, staff, and faculty.  Offered on a credit, no-credit basis only. Course is repeatable, but only a combined total of 2 units can be used towards the Master’s degree. Each week the colloquium will meet for 50 minutes. Prerequisite: Graduate standing.


CMPS 5010 Current Topics in Computer Science (2)
This course focuses on discussions of current peer-reviewed literature in computer science and related topics.  The course is in the format of a journal club and emphasis will be on research articles published in the last two years.  Each week students will present and lead a discussion of one or more approved peer-reviewed articles.  Students will be encouraged to discuss, analyze, critique, and implement the topics in each article.  Students must submit reports on their related articles.  Each week lecture meets for 100 minutes. Prerequisite: Graduate standing.


CMPS 5100 Research Methodologies and Professional Ethics (2)
This course is designed to develop research and communication skills for graduate students.  The topics covered in this course will include research processes, research methods, literature searches, literature analysis, scientific manuscripts and software licensing.  The course will also focus on professional ethics related to computer science and various forms of data.  There will be an emphasis on requirements and regulations for human/animal-subject testing, Institutional Review Board (IRB) approval, consent, conflicts of interest, misconduct, and authorship.  Each week the course will meet for 100 minutes. Prerequisite: Graduate standing.


CMPS 5120 Graduate Algorithm Design and Analysis (3)
This is an advanced graduate course in the analysis of algorithms, in terms of time and space complexity for best/average/worst case execution using asymptotic notation; the application of standard algorithmic approaches, including divide-and-conquer, greedy algorithms, dynamic programming, and graph algorithms, to algorithm design. Each week lecture meets for 150 minutes. Prerequisite: Classified graduate student status or permission of the instructor. 


CMPS 5150 Parallel Algorithms (3)
This is an advanced graduate course in the design and analysis of algorithms for parallel systems. Theoretical topics include modeling the cost of parallel algorithms, and parallel algorithms for sorting, trees, graphs, and computational geometry. Practical topics will include data-parallelism, threads, futures, scheduling, synchronization, transactional memory and message passing. Students will design and present a project on parallel algorithms. Each week lecture meets for 150 minutes. Prerequisite: Classified graduate student status or permission of the instructor.


CMPS 5160 Distributed Learning and Optimization (3)
Distributed computing architectures have led to adaptation of sequential algorithms to a distributed computation domain. Computer science subfields such as machine learning and optimization benefit greatly from these distributed architectures, thus have been adapted. Topics for this class include distributed learning and optimization, graph analysis, scaling, complexity analysis and evaluation of current platforms. Each week lecture meets for 150 minutes. Prerequisite: Classified graduate student status or permission of the instructor.


CMPS 5240 Graduate Computer Architecture (3)
This is a graduate survey course in computer architecture for graduate students who have some experience in computer organization and design. It covers early systems, microprocessor design, instruction set architecture, control, buses, ALU, memory and multiprocessor systems. The class focuses on memory hierarchies, caching, virtual memory, ISA design considerations (RISC, CISC, VLSI RISCs), branch speculation, advanced datapaths, multithreading, coherence and consistency, and processor heterogeneity. Students will present current work in architecture. Each week lecture meets for 150 minutes. Prerequisite: Classified graduate student status or permission of the instructor.


CMPS 5270 Hardware Security (3)
This course will study the principles of computer systems security from the hardware perspective, especially as it crosses layers of abstraction. Students will learn about the vulnerabilities in current digital system design flow and the challenges of building secure hardware for each layer of abstraction. Cutting edge research on these challenges will be discussed and hands-on experiences with performing attacks, developing countermeasures, and implementing secure hardware building blocks will be required. By the end of the course, students will be able to reason about security in terms of adversarial models, hardware vulnerabilities, and attacks. Each week lecture meets for 150 minutes. Prerequisite: Classified graduate student status or permission of the instructor.


CMPS 5350 Graduate Software Engineering (3)
A study of concepts and research in the area of software engineering, with attention on modeling, design patterns, software architecture, deployment, quality assurance, and communication. Discussions will include presentations on historical and current research papers in the field with a special interest in ethical dilemmas in modern software development. A term project lets students apply and develop practical skills from the course material. Each week lecture meets for 150 minutes. Prerequisite: Classified graduate student status or permission of the instructor.


CMPS 5420 Natural Language Processing (3)
This is a foundational course in natural language processing (NLP) for graduate students who have some experience in artificial intelligence or machine learning. The focus of the class is end-to-end systems for classification, understanding and organization of language, and generative models for communication. Topics include machine learning for text classification, bag-of-words representation, context-free parsing, semantics and machine translation. Students will present current work in NLP. Each week lecture meets for 150 minutes. Prerequisite: Classified graduate student status or permission of the instructor.


CMPS 5450 Graduate Data Mining (3)
This course introduces concepts, principles, algorithms, techniques, performance, and applications of data mining and knowledge discovery. Topics may include data preprocessing, data visualization, data dissemination, the statistical foundations for data modeling, classification and prediction, clustering analysis, association and pattern analysis, and outlier detection. Each week lecture meets for 150 minutes. Prerequisite: Classified graduate student status or permission of the instructor.


CMPS 5500 Graduate Programming Languages and Compilers (3)
This is an advanced graduate course where students will study programming languages with an emphasis on their implementation. Topics include lexical analysis, language syntax, control structures, the binding of names, procedures, and their implementation in compilers. Students will design and present a project on related topics. Each week lecture meets for 150 minutes. Prerequisite: Classified graduate student status or permission of the instructor. 


CMPS 5510 Reverse Engineering (3)
Investigation into reverse engineering techniques for both normal executables and malware. Topics include behavioral analysis of executables, static binary analysis, dynamic binary analysis, anti-analysis and evasion techniques, obfuscation, shellcode, and code injection. Hands-on activities will reinforce the theoretical concepts being discussed. Each week lecture meets for 150 minutes. Prerequisite: Classified graduate student status or permission of the instructor.


CMPS 5560 Machine Learning (3)
This course introduces concepts of machine learning with a focus of supervised learning methods. Foundational modeling of classification and regression problems will be covered. Topics include linear discriminate analysis (LDA), logistic regression, support vector machines (SVM), maximum likelihood estimation (MLE), nearest neighbor, neural networks (NN), decision trees, decision forest, AdaBoost, convolutional NN, recurrent NN. Each week lecture meets for 150 minutes. Prerequisite: Classified graduate student status or permission of the instructor.


CMPS 5600 Graduate Operating Systems (3)
This course exposes students to recent developments in operating systems research and design. Course lectures and reading assignments will be on classic and recent papers that shaped the field on a range of topics, including OS design, virtual memory management, file systems, virtualization, concurrency and synchronization, cloud systems, heterogeneity, and security. The course also exposes students to basic system-building and evaluation methodologies through programming assignments and a final project. Each week lecture meets for 150 minutes. Prerequisite: Classified graduate student status or permission of the instructor.


CMPS 5640 Graduate Distributed Computation (3)
With the growth of large-scale systems, there is an increasing need for distributed systems that can cover the load. This class will cover MapReduce, cloud computing networks, timing, fault tolerance, consistency, transaction, dataflow and peer to peer systems. This course emphasizes the evaluation of real-world systems from multiple contexts. Each week lecture meets for 150 minutes. Prerequisite: Classified graduate student status or permission of the instructor.


CMPS 5650 Operations Security (3)
This course covers the theoretical and applied aspects of operations security (OPSEC) in cyber systems to protect sensitive and/or confidential data. Topics include threat and adversarial modeling, vulnerability analysis, penetration testing, risk assessment, countermeasures, systems hardening, and other defensive operations. Each week lecture meets for 150 minutes. Prerequisite: Classified graduate student status or permission of the instructor.


CMPS 5770 Special Topics in Computer Science (1-3)
Contemporary topics at a graduate level in computer science, as announced in Schedule of Classes. May be repeated to maximum of 9 units in different topics. Prerequisite: Classified graduate student status or permission of the instructor.


CMPS 5800 Graduate Research (1-3)
Independent investigation and study of an advanced topic in computer science under direct supervision of an instructor. The graduate research course may involve either a laboratory or a theoretical problem. May be repeated for credit, but not more than 6 units. Prerequisite: Classified graduate student status or permission of the instructor.


CMPS 6910 Thesis Research (1-3)
The systematic study of a research problem of significant scope and novelty as determined by the Thesis Committee. Student will identify a problem, articulate the significance of the work, determine sources and methods for gathering data (laboratory, simulation and/or field work), experiment and analyze the data, and offer a conclusion or recommendation to the research question. Students receive training and preparation for the Thesis Defense. This is required for Master’s students who select the Thesis option for their capstone. Course is repeatable, but only a combined total of 5 units can be used towards the Master’s degree. Prerequisite: CMPS 5100, Classified graduate student status, and Approval of the instructor (Thesis Advisor).


CMPS 6920 Thesis Defense (1)
Final preparation for the Thesis Defense. This should only be taken after the Thesis demonstrates originality, critical and independent thinking, appropriate organization and format, and thorough documentation, and readiness for oral defense. Activities vary depending on topic, though all Thesis Defense classes include review and revision of the presentation by the Thesis Advisor, an oral defense and an acceptance/pass or rejection/failure decision by the Thesis Committee. This is required for Master’s students who select the Thesis option for their capstone. Offered on a credit, no-credit basis only. Students who receive the no-credit grade may repeat the course, although a subsequent rejection of Thesis Defense may result in dismissal from the program. Prerequisite: CMPS 6910, Advancement to candidacy, and Approval of the instructor (Thesis Advisor).


CMPS 6950 Graduate Project I (2)
Students will undertake a significant project within the scope of Computer Science under the supervision of a faculty member serving as Project Advisor. The project must be original, demonstrate independent thought, possess appropriate form and organization, and include a market analysis. Students must demonstrate progress with written reports and oral presentations, to be reviewed by the Project Advisor. Prerequisite: Classified graduate student status and Approval of the instructor (Project Advisor).


CMPS 6960 Graduate Project II (1)
This is a culminating experience for the Project tract students. Students will complete their project and present it to the satisfaction of the Project Committee. A written technical document (Master Project Report) that describes the project's significance, objectives, methodology and conclusion in abstract, will be reviewed by the Project Advisor and approved by the Project Committee. At the end of the course the student may publicly present the results of their project. Offered on a credit, no-credit basis only. Prerequisite: CMPS 6950, Advancement to candidacy, and Approval of the instructor (Project Advisor).


CMPS 7000 Continuous Enrollment (0)
Graduate students who have completed all of the coursework for the program except their chosen capstone option (Thesis or Project) may enroll in this special course for the purpose of maintaining continuous enrollment at CSUB while completing their capstone experience. Course is repeatable. Prerequisite: Advancement to candidacy and Approval of the Graduate Program Director. 
 

 

Get Started Today

Take the first step! Complete the form below to receive more information about the M.S. in Computer Science program at CSUB.