CS 151.  Introduction to Computer Science. 3(1, 2)

This course is an introductory survey of computer science. It explores the breath of the subject while including enough depth to convey an honest appreciation for the topics involved. This course explores the nature and history of computers, their impact on society, algorithms, computer organization, computing systems, and numerical methods. This course involves one hour of lecture and two hours of structured laboratory each week. The lab segment introduces students to programming using Linux and Python. Students use Raspberry PI and/or other kits for developing and testing their programs. Prerequisite: None (F, S)


CS 160.  Programming I 4(2, 2)

 This is the first programming course in the Computer Science sequence. It introduces students to programming with a structured programming language. Emphasis is on problem solving methods and algorithm development; definition of language syntax and semantics; and development of ability to apply concepts by designing coding, debugging, documenting, and executing programs. Topics include data types, variables, assignment, control structures (branching and looping). This course involves two hours of lecture and two hours of structured laboratory each week. Prerequisites: CS 151 or consent of instructor (F, S)


CS 170.  Programming II 4(2,2)

  This course is a continuation of CS 160 and develops object-oriented programming. Topics include file input/output, inheritance, arrays, pointers, recursion, exceptions, and error handling. Additional topics will introduce students to data structures such as lists, stacks, and queues and to searching and sorting algorithms. This course involves two hours of lecture and two hours of structured laboratory each week. Prerequisites: CS 160 (F, S)


CS 225.  Introduction to Cybersecurity. 3 (3, 0)

This course provides a comprehensive, trustworthy framework of practices for assuring information security. The content of the course will be based on the Department of Homeland Security and Department of Energy’s Essential Body of Knowledge (EBK) for IT Security. Course includes hands-on laboratory exercises. Prerequisite: CS 151 or Equivalent. Consent of Instructor. (F, S)


CS 260.  Programming III. 4(2, 2)

This course introduces the study of programming language specifications and provides students with knowledge of various concepts. Topics include lexical structure, syntax, semantics, and pragmatics (idioms, common uses) of programming languages; Stages of compilation, linking and execution; Strings, arrays, structures, pointers, and memory management; library functions; tools for design, maintenance, and debugging of programs; separate compilation, modular programming; integrated development environments. This course involves two hours of lecture and two hours of structured laboratory each week. Prerequisite: CS 170. (F, S)


CS 280.  Data Structures. 3(3, 0)

Basic concepts of abstract Data Types and their applications in problem solving. Recursion and its applications in problem solving. Abstract models for elementary data structures, array, list, stack, queue, tables and their implementations. Various applications of these data structures in the area of computer science.  Prerequisite: CS170. (F, S)


CS 300.  Computer Logic. 3(3, 0)

A study of the mathematical foundations of Computer Science, with emphasis on number representation and hardware design logic. Topics include: data representation, unsigned and signed integers and real numbers, base conversions of numbers; sets and Venn diagrams; Boolean algebra and its application to gates and circuit designs; simplifying circuits using Karnaugh maps; flip flops, simple combinatorial and sequential circuits. Prerequisite: CS 160 or CS 201. (F, S)


CS 304.  Introduction to Computer Organization. 3(3, 0)

An introduction to the hardware construction of digital computers and their major components. Topics include register transfer language, instruction codes and their hardware implementation (shift registers, arithmetic, branching), microprogrammed control, types of addressing and instruction formats, comparison of RISC/CISC computers. Prerequisite: CS 300. (F, S).



CS 318.  Organization of Programming Languages 3 (3, 0)

Evolution, classification and evaluation of Programming Languages, formal language theory, syntax, semantics, pragmatics. Design and implementation issues. Different language models. Study of languages from different models. Prerequisites. CS 280 (F, S)


CS 320.  Analysis of Algorithms. 3(3, 0)

Basic concepts of efficiency of an algorithm. Notion of BigO and SmallO for space and time requirements. Mathematical techniques for computing time and space requirements for algorithms. Various sorting, searching, advance tree and graph algorithms and their analysis. Some discussion of complexity classes as well as the nature of NP completeness and intractability. Prerequisites: CS 280 (F, S)


CS 325.  Computer Forensics. 3 (3, 0).  This course introduces students to computer forensics and cyber-crime scene analysis. The various laws and regulations dealing with computer forensic analysis will be discussed. Students will be introduced to the emerging international standards for computer forensic analysis, as well as a formal methodology for conducting computer forensic investigations. Course includes hands-on laboratory exercises. Prerequisite: CS 225 or Consent of Instructor. (F, S)


CS 335.  Cryptography and Network Security. 3 (3, 0)

This course provides an introduction to the fundamental components of encryption. Topics include the history of cryptography, public key and private key systems, hashing and digital signatures. Topics also include the development of the Advanced Encryption Standard (AES), the use and functionality of Pretty Good Privacy (PGP) and the Secure Socket Layer (SSL). Course includes hands-on laboratory exercises. Prerequisite: CS 225 or Consent of Instructor. (F, S)


CS 350.  Social Implications of Computing. 1(1, 0)

A study of the social influences of computers and technology on society. Includes: computer ethics, professional responsibility, intellectual property, privacy, access, and the law. Prerequisites: CS 170 or CS 202. (F, S).


CS 401.  Operating Systems. 3(3, 0)

A study of the evolution of operating systems. Topics include control of input/output, interrupts, job and CPU scheduling, process synchronization, starvation, deadlocks, recovery, memory management and process management. Prerequisite: (CS 304 and CS 308) or (CS 304 and CS 280). (F, S)


CS 405.  Software Engineering. 3(3, 0).  Formal techniques in software design, development, testing, and implementation of large-scale software projects. Students work in teams to experience organization, specifications, design, implementation, and testing of a large software project. Prerequisite: CS 308 or CS 280. (F, S)


CS 411.  Database Management System Design. 3(3, 0).  Introduction. Data modeling: the Entity-relationship and Relational Models. Relational algebra and calculus. SQL and queries. Database application development: embedded SQL, cursors, SQL-Java. Internet applications: TML, XML, three-tiered architectures. Physical database design: disks, file organization. Indexing: tree structures and hash indexing. Query evaluation and optimization. Schema refinement and normalization. Physical database design and tuning. Transaction management. Concurrency control. Database security. Overview of advanced topics: data mining, multimedia databases. Prerequisite: CS 318. (F, S)


CS 420.  Computer Networks. 3(3, 0)

The fundamentals of computer networks and current methods and practices in using computer networks. Topics include physical elements, architectural elements, information layering, diagnostics, design, operational performance measurement tools, communication protocols, datalinking, switching, routing, data security, and LANS. Prerequisite: CS 304. (F, S)


CS 444.  Capstone Assessment and Professional Development. (1, 0)

This course will focus on professional development activities such as invited speaker series, team work, communication and others. This will also focus on capstone assessment activities such as review sessions for Major Field Test and Senior Exit Examination and administration of these examinations. Prerequisites: Senior standing and permission by instructor (S)


CS 425.  Application and Data Security with Privacy. 3 (3, 0)

This course focuses on application and data security provides students a look at how malware infects computers, how SQL injections and DNS injections work, as well newer topics such as healthcare information systems data security and industrial control systems security. Prerequisite: CS 225 or Consent of Instructor. (F, S)


CS 435.  Management of Information Security. 3 (3, 0)

This course focuses on the analysis and management of information and information systems security including processes, technology, and facilities. Prerequisite: CS 225 or Consent of Instructor. (F, S)


CS 489.  Cyber Security Capstone. 2 (0, 2).  Students will be required to complete a practical project on Cyber Security. Students will use their knowledge from previous courses to complete this project. The project topics will be decided in consultation with DOE labs, federal agencies and others. Students will be required to submit a final project report and present their project findings in class. The presentations may be conducted in a virtual environment to allow participation of members at a distance. Instructor will provide guidelines for the project. Prerequisite: Consent of Instructor. (F, S)


 CS 499.  Special Topics in Computer Science. 1-3(1-3, 0)

Study of a special topic in Computer Science, relevant to the current state of the art, not covered in other courses. Topics are offered as needed or requested. Some of the topics are Parallel and Distributed processing, Wireless Networking, Sensor AdHoc Networks, Web Page Design, Fuzzy Logic and Neural Networks, Computer Security, Advanced Digital Design, High Performance Computing and Embedded Systems. Students may repeat this course with different topics as additional electives toward their graduation, up to a maximum of six credits. Prerequisite: Permission by instructor. (F, S)