Computer Science (CS)

Courses

CS-100. Computers And Society. 3 Hours.

This course provides an introduction to the history of computing and how computers have affected society. Furthermore, it covers the basic computer skills needed to be truly computer literate in modern society. Topics include, but are not limited to the history of computing, the social context of computing, ethical issues in computing, computer security and privacy, the impact of the Internet and the World Wide Web, an introduction to computer architecture and operating systems, and basic computer programs utilized for school, work, and home.

CS-101. Creative Problem Solving. 3 Hours.

The goal of this course is to focus on the skills required to analyze a problem and create a step-by-step (algorithmic) solution to that problem. Basic computation using arithmetic, relational, and logical operators will be covered as well as an in-depth treatment of decision and repetition control structures to create algorithms based on mathematical concepts such as summation, averages, exponentiation, prime and perfect numbers, algebraic and geometric sequences, etc.
Prerequisite: MATH-092 with a minimum grade of C.

CS-108. Computer Science For All. 3 Hours.

Computer science has revolutionized many disciplines and it is no longer only for computer scientists.  By studying computer science students will use computational thinking and apply programming to real world scenarios and interdisciplinary examples from science, math and teacher education. Robots and web and mobile-based coding platforms will be used to expose students to coding through different technologies. Students will learn computer science concepts such as algorithms, loops, and conditionals.   Each week students will engage in hands-on computational thinking or coding exercises. Finally, students will complete a project using coding to demonstrate scientific, mathematical, or concepts from other disciplines.
Prerequisites: ENGL-101 and Accuplacer College Level Math 020 - 120 (or Accuplacer Adv. Algebra & Func 237 - 300 or NEIU Math Placement Result 30 - 45).

CS-109. First Year Experience: The Information Age: Its Impact On Chicago's Culture. 3 Hours.

The 21st century has seen the genesis of the Information Age. Advances in computer technology have made immediate access to information and sophisticated processing of information commonplace in business, science, medicine, education, various professional areas and many aspects of personal life. This course focuses on how this has impacted Chicago's culture and its diverse communities. This course fulfills the First Year Experience (FYE) requirement. FYE-109 courses are intended for Freshmen only. Students may not take more than one FYE-109 course.

CS-180. Fundamentals Of Data Science. 4 Hours.

Foundations of data science considers data from three perspectives: inferential thinking, computational thinking, and real-world relevance. Given data arising from some real-world phenomenon, how does one analyze that data to understand that phenomenon? The course teaches critical concepts and skills in computation and statistical inference, in conjunction with hands on analysis of real-world datasets, including economic data, document collections, geographical data, and data from social networks. It delves into social, ethical, and legal issues surrounding data analysis, including privacy and data ownership.
Prerequisite: MATH-173 with a minimum grade of C.

CS-200. Programming Fundamentals. 4 Hours.

This course serves as an introduction to principles of computer programming. It covers fundamental concepts including input/output, data types, arithmetic, relational and logical operators, branching, looping, arrays, classes and objects, wrapper classes and strings. Programming projects involving these concepts will be assigned for interactive applications, numeric computations, and analysis of data.
Prerequisite: MATH-173 with a minimum grade of C.

CS-201. Discrete Structures. 3 Hours.

Introduction to the fundamental number theoretic, logical, algorithmic, combinatoric, and computational concepts from discrete structures and their applications to computer science. This course involves no programming.
Prerequisite: MATH-173 with a minimum grade of C or MATH-104 with a minimum grade of C.

CS-203. Introduction To Problem Solving & Computational Thinking. 2 Hours.

The goal of this course is to focus on the skills required to analyze a problem and create a step-by-step solution to that problem using the Bransford’s IDEAL problem-solving approach (Identify the problem, Define the problem, Examine the options, Act on a plan, look at the consequences) and hone their problem-solving skills by applying the IDEAL approach to a variety of problems in a wide range of domains. Students integrate computational thinking into the IDEAL and Duke’s 7 steps problem-solving approaches, recognize patterns in the problems they are solving (similarities and differences), identify abstractions, decompose a problem, and convert a real-world problem to its computational equivalent problem.
Corequisite: CS-200.

CS-207. Object-Oriented Programming And Data Structures. 5 Hours.

This course provides an in-depth study of object-oriented programming and abstract data structures implementation and application. It covers inheritance and polymorphism, abstract classes and interfaces, exception handling, file operations, stacks, queues, lists, trees, heaps, and graphs. Additional topics include recursion, searching, and sorting algorithms.
Prerequisite: CS-200 with a minimum grade of C.

CS-260. Computer Security. 3 Hours.

This course serves as an introduction to computer security. It covers the basic components of modern computers, and the fundamental concepts of security including assets, threats, adversaries, cryptosystems, confidentiality, integrity, availability, assurance, authenticity, anonymity, privacy, and security principles. Building upon these fundamental concepts, this course also covers user authentication, security management and risk assessment, implementation of security plans to keep systems secure, and physical and infrastructure security. Finally, the course introduces human resources security, and legal and ethical aspects of security practices.
Prerequisite: CS-200 with a minimum grade of C.

CS-300. Client Side Web Development. 3 Hours.

The course discusses web site design issues and the requirements of e-commerce. Furthermore, it covers the creation of web pages. Hands-on development and group projects are an essential part of this course.
Prerequisite: CS-200 with a minimum grade of C.

CS-301. Computer Organization. 3 Hours.

Representation of data, machine arithmetic, processor and memory organizations, instruction execution, assembly and machine languages, addressing mechanisms, and implementation of high level language constructs. Students will gain a vision of levels of abstraction in hardware and software, the nature of the Von Neumann machine and the nature of high level languages.
Prerequisite: CS-200 with a minimum grade of C and CS-201 with a minimum grade of C.

CS-302. Systems Programming. 3 Hours.

Introduction to systems programming, including use and implementation of assembler, macros, loaders, compilers, and operating systems.
Prerequisite: CS-207 with a minimum grade of C and CS-308 with a minimum grade of C.

CS-304. Data Structures. 3 Hours.

This course provides experience implementing and manipulating basic data structures, as well as analyzing their applications in Computer Science. Topics covered will include: Stacks, Queues, Linked Lists, Binary Tree Structures, Heaps, Graphs, and Sorting Algorithms.
Prerequisite: CS-201 with a minimum grade of C and CS-207 with a minimum grade of C.

CS-305. Computer Logic And Circuitry. 3 Hours.

Introduction to logical design of computers and some of their applications. Included are Boolean algebra, switching theory, number systems, numerical codes, and computer organization. Engineering problems are de-emphasized. Computer word organization, languages and use of computers for simple problems will be explained.
Prerequisite: CS-200 with a minimum grade of C.

CS-307. Programming Languages. 3 Hours.

This course provides an introduction to the fundamental concepts of programming languages their structural definition and run time implementation. It equips the students with the tools necessary for the critical evaluation of existing programming languages, and the learning of new ones. In addition, it prepares students for the study of computer design.
Prerequisite: CS-207 with a minimum grade of C or CS-424 with a minimum grade of C.

CS-308. Operating Systems. 3 Hours.

A general overview of the ideas underlying operating systems. Included are traditional topics such as file systems, CPU scheduling, memory management and device scheduling, along with the topics of more current interest such as deadlock handling, process synchronization and distributed systems. No single operating system is studied; examples are drawn from many sources.
Prerequisite: CS-207 with a minimum grade of C and CS-301 with a minimum grade of C.

CS-309. Compiler Theory. 3 Hours.

Introduction to basic structure and components of a compiler. Finite automata, lexical analysis, regular grammar, context free grammar, top-down and bottom-up parsing techniques.
Prerequisite: CS-207 with a minimum grade of C.

CS-310. Algorithmic Thinking In Problem Solving. 1 Hour.

In this course, students focus on learning advanced problem-solving strategies and apply them to more challenging problems in computer science and business. Students synthesize information that they have learned across different computer science courses, in particular data structures, to solve complex problems efficiently and communicate solutions to teammates and industry professionals. The course provides practice on problems drawn from different domains, characterized by incomplete, vague, and possibly inconsistent specifications. Emphasis is on problems that have practical and real-world relevance.
Prerequisite: CS-203 with a minimum grade of C.
Corequisite: CS-207.

CS-311. Modern Computer Architecture. 3 Hours.

This course is intended for those students who wish to understand the architecture and operation of computer systems. Methods for interconnecting processors, memories and I/O devices are discussed. The addressing modes and instruction techniques for manipulation of more complex data structures such as queues, lists and trees are covered.
Prerequisite: (CS-207 with a minimum grade of C or CS-406 with a minimum grade of C) and CS-301 with a minimum grade of C.

CS-314. Independent Study In Computer Science. 3 Hours.

An opportunity for an individual research or applications project under the direction of an advisor knowledgeable in the field of endeavor. The project will be designed by the student and his/her project advisor, and must be approved by the chairperson of the Deparment of Computer Science before the project itself is undertaken.

CS-315. Modern Database Management. 3 Hours.

Theoretical foundations and state-of-the-art data base management systems. The relational, hierarchical and network approaches to data base management systems and representative systems are described. User interfaces are emphasized.
Prerequisite: CS-200 with a minimum grade of C.

CS-317. Event-Driven Programming. 3 Hours.

This course serves as an introduction to techniques and tools for the design of graphical user interfaces and event-driven applications. Topics covered include layering, domain logics, form and control basics, custom control, database mapping, and application embedded support. Students will be expected to apply these concepts in programming projects.
Prerequisite: CS-207 with a minimum grade of C.

CS-319. Writing Intensive Program: Fundamentals Of Software Engineering. 3 Hours.

This course serves as an introduction to the life cycle of the software development process. Topics covered include each phase of the cycle, and techniques and paradigms that result in the successful realization of each stage. Students will be expected to apply these concepts in a large-scale project.
Prerequisite: CS-207 with a minimum grade of C and ENGL-101 with a minimum grade of C.

CS-320. Object-Oriented Programming. 3 Hours.

This course provides an introduction to Object-Oriented Design (OOD) and Object-Oriented Programming (OOP), which is a highly used contemporary programming paradigm. The three main features of OOD, namely encapsulation, polymorphism and inheritance are discussed. The student must implement these concepts in a project.
Prerequisite: CS-207 with a minimum grade of C.

CS-321. Server Side Web Development. 3 Hours.

This course is an introduction to techniques and tools for designing server side web applications. Topics covered include web application flow, object oriented programming, design of classes, dynamic content, scripting languages, implicit objects and database accessing. Students will be expected to apply these concepts in the development of a website.
Prerequisite: CS-207 with a minimum grade of C and CS-300 with a minimum grade of C.

CS-322. Applied Research And Statistical Data Analysis. 3 Hours.

This course provides an in-depth study of research methods in computer science and modern statistical data analysis using the Binomial and Normal distribution, the Linear Regression model, Analysis of Variance, Nonparametric methods and Computer Random Sampling techniques. In addition, students will become experienced in the actual implementation of these statistical models with data sets using modern computer statistical software packages.
Prerequisite: CS-200 with a minimum grade of C and MATH-173 with a minimum grade of C.

CS-323. Cyberlaw. 3 Hours.

This course presents an introduction to the legal issues relating to the use of computers and the Internet. Topics covered include privacy, freedom of speech, intellectual property in cyberspace, encryption and interception of communication, computer crime, professional ethics and codes of conduct and work related ethical and legal issues.

CS-324. Introduction To The Design Of Algorithms. 3 Hours.

Methods for analyzing algorithms are discussed including an introduction to asymptotic notation. Several approaches to designing algorithms are covered using theory, examples and problems. Those approaches include divide-and-conquer, dynamic programming, the greedy approach backtracking and branch-and-bound. Different approaches are applied to the same problem to illuminate the relative advantages.
Prerequisite: CS-201 with a minimum grade of C and CS-207 with a minimum grade of C.

CS-325. Theory Of Computation. 3 Hours.

This course discusses several models of computation, including finite automata, pushdown automata and deterministic and nondeterministic Turning machines. The notions of undecidability, computational complexity, intractability and NP completeness are also discussed. The course is mainly theoretical in nature, but some applications, such as finite state systems and parsing, will be discussed.
Prerequisite: CS-201 with a minimum grade of C and CS-207 with a minimum grade of C or (CS-424 with a minimum grade of C).

CS-326. Numerical Methods Using Fortran Programming. 3 Hours.

An introduction to structured Fortran programming, Computational errors, Solving nonlinear equations, Solving sets of Equations, Determinants and matrix inversions, Interpolating polynomials.
Prerequisite: MATH-106 with a minimum grade of C or MATH-185 with a minimum grade of C.

CS-327. Computational Methods In Biology. 3 Hours.

Bioinformatics is the discipline that applies mathematics, statistics, computer science, chemistry, and biology to solving problems in biology using biological data sets. The problems investigated are usually at the molecular level. These problems include sequence alignment, genome assembly, models of evolution and phylogenetic trees, analyzing gene expression data, and gene linkage analysis. One of the most important statistical tools used in bioinformatics is the Bayesian network. This course introduces the techniques used in bioinformatics, in particular Bayesian networks, and provides solutions to several bioinformatics problems.
Prerequisite: (CS-201 with a minimum grade of C or MATH-251 with a minimum grade of C) and (BIO-100 with a minimum grade of C or BIO-201 with a minimum grade of C) and CS-200 with a minimum grade of C.

CS-329. Decision Theory. 3 Hours.

This course covers probabilistic networks, influence diagrams, and decision trees, and their application to making decisions in the face of uncertainty. It addresses modeling one-time decisions and also modeling repeatable decisions as done by an expert system. An expert system is a system that makes the judgments and decisions of an expert. Classical examples of expert systems are systems that make financial decisions and ones that perform medical diagnosis. This course will concentrate more of the latter. Methods for building expert systems and for doing inference with them will be covered.
Prerequisite: CS-201 with a minimum grade of C and CS-207 with a minimum grade of C.

CS-331. Computer Networks. 3 Hours.

This course covers concepts in data communications, emphasizing protocols. An overview of all protocol layers will be covered, with emphasis on OSI and TCP/IP.
Prerequisite: CS-207 with a minimum grade of C or CS-406 with a minimum grade of C or CS-424 with a minimum grade of C.

CS-334. Open Source Systems. 3 Hours.

This course is an introduction to the open source domain, including the Linux operating system and other technologies. Topics covered include open source licensing, Linux administration and characteristics of open source applications. Students will be expected to understand the main concepts, and become capable of researching available resources and participating in open source communities.
Prerequisite: CS-308 with a minimum grade of C.

CS-335. Artificial Intelligence. 3 Hours.

This course covers strong artificial intelligence methods, which have resulted in the development of systems that solve open problems in specialized domains. Such methods include 1) AI models based on logical reasoning, in particular decision trees and learning decision trees, rule-based expert systems, semantics nets, and frames; 2) AI models based on probabilistic reasoning, in particular Bayesian networks and learning Bayesian networks, influence diagrams, and class probability trees; and 3) AI models based on emergent intelligence, in particular evolutionary computation and swarm intelligence. Lastly, the course discusses an important endeavor in AI, namely language processing.
Prerequisite: CS-207 with a minimum grade of C and (CS-201 with a minimum grade of C or CS-400 with a minimum grade of C).

CS-336. History Of Computing. 3 Hours.

This course discusses the history of computing beginning with the earliest computational devices and continuing to current technologies. The history of computing is much more than the study of computers. It also involves the study of how computing is done and approached and how it has evolved over time. This course covers the following aspects of computing history: technology, both hardware and software; business history; and sociological impacts and key turning points. Within those aspects, trends and evolution are covered as well.

CS-338. Science, Women, And Technology. 3 Hours.

This course includes an overview of the women who have made major contributions to computing from Grace Hopper to Ellen Spertus. Futhermore, it provides a life-course analysis of women in computing from an early childhood interest, through university, to graduate school and finally into the work place. This analysis will provide the seed for research topics. Each student will choose a research topic, conduct the research, and present the results to the class.

CS-339. Fundamentals Of Information Technology Project Management. 3 Hours.

An Information System is a well-coordinated collection of technological and human resources that gathers and transforms data into information that enables decision making and process improvement within organizations. Information Technology Project Management is the application of knowledge, skills, tools, and techniques to project activities in order to meet project requirements. This course serves as an introduction to these concepts. Students will be expected to apply these tools and techniques in a group based project.
Prerequisite: CS-207 with a minimum grade of C.
Corequisite: CS-319.

CS-340. Fundamentals Of Computer Graphics. 3 Hours.

This course provides a unified introduction to computer graphics and computer vision for students with an interest in imaging or digital visual arts. Topics covered include the fundamentals of display hardware and applications, interactive techniques and color models, 3D viewing pipeline, 3D polygon rendering (clipping, scan conversion, and visibility algorithms), illumination models, transparency, and ray-tracing. The student must write programs using these methodologies.
Prerequisite: CS-207 with a minimum grade of C.

CS-341. Parallel Computing And Distributed Systems. 3 Hours.

This course works on the fundamental concepts of building systems that work across multiple computing platforms. The course includes topics of distributed operating systems and network protocols for process communication, synchronization, scheduling, and exception and deadlock resolution; understanding of client-server, web-based collaborative systems; parallel computing; concurrency issues; and API's for distributed application development. Several distributed computing environments are discussed and used in developing experimental projects in a cluster of networked computers. Building systems using cloud-based and service-oriented architectures may also be included.
Prerequisite: CS-308 with a minimum grade of C and CS-207 with a minimum grade of C.

CS-342. Introduction To Human Computer Interaction. 3 Hours.

A good understanding of how a system/device interacts with its users is what differentiates a product that is technically sound from a usable one. HCI is the science that explores these interactions. HCI is at the intersection of many disciplines including cognitive psychology, linguistics, design and engineering. HCI considerations are increasingly cited as key factors in product design. In this course we will explore the science behind HCI and we will put parts of it into practice.

CS-343. Introduction To Natural Language Processing. 3 Hours.

Computers have tried to understand humans since the beginning. Today, with social media, globalization and the widespread use of computing devices the task of understanding is facing new challenges. In this course the students will learn the core techniques used by computers to understand and generate language, as well as state of the art research in the field.
Prerequisite: CS-207 with a minimum grade of C.

CS-345. Network Security. 3 Hours.

This course discusses the principles and practice of network security applications and standards that are widely used on the internet and on corporate networks. Building upon a review of networking and cryptographic algorithms, topics covered include network access control, network attacks and countermeasures, Internet security protocols, intrusion detection systems, firewalls and intrusion prevention systems, tunneling and virtual private networks, proxy firewalls and servers, anonymizing proxies, and cloud computing security.
Prerequisite: CS-331 with a minimum grade of C.

CS-346. Interdisciplinary Seminar In STEM. 2 Hours.

This course uses a hands-on approach to modern inquiry-based research problems and techniques in the physical and computational sciences. The course is structured around a series of modular problem-based exercises, covering topics from the fields of Chemistry, Computer Science, Earth Science, Mathematics and Physics, and is designed to provide the content and pedagogical background for students to be successful peer leaders. The cross-disciplinary modules will draw connections between scientific disciplines, and showcase common research tools and techniques used in the sciences. The workshop will also incorporate discussions on a range of topics, from scientific ethics, scientific methodology and error analysis.
Prerequisite: MATH-185 with a minimum grade of C.

CS-347. Mobile Application Development. 3 Hours.

This course covers programming applications for mobile platforms. Students will learn about mobile application environments and platforms and how to design and develop applications to account for the limited screen size, memory, and access to the internet. Students will incorporate graphics, networking, security, media to create new, real world, practical applications. Development, design, implementation, testing, debugging, and maintaining these applications will also be covered. Students will use a variety of programming languages to create these applications.
Prerequisite: CS-207 with a minimum grade of C and CS-300 with a minimum grade of C.

CS-348. Computer Ethics And Public Policy. 3 Hours.

This course discusses ethical and social issues related to the development and use of computer technology. The course provides students with historical and philosophical context to understand the evolution of ethics and its intersection with the use of technology as well as touching on major ethical issues currently affecting the use of computer technology. Topics involve ethics, public policy, privacy, responsibility and legal considerations.

CS-349. Introduction To The Internet Of Things. 3 Hours.

Internet of Things (IoT) is an emerging technology that actively brings informative and interactive dimensions to the spaces we live and work in. IoT is about creating a fully integrated Internet that includes both cyber elements and physical devices, where the interactions and interconnections between them build smart spaces and trigger applications in many areas (e.g., home automation, transportation, healthcare). This course introduces the fundamentals of IoT, ad-hoc systems, and sensor networks. The topics covered include the different architectures and platforms, communication modules and protocols, hardware accessories and devices, application models and IoT programmability. The course then focuses on the different challenges, limitations, security threats and attacks, and privacy and security measures and protocols.
Prerequisite: CS-200 with a minimum grade of C and CS-331 with a minimum grade of C.

CS-351. Data Wrangling For Data Analysis. 3 Hours.

Data is messy, comes from different sources and it is seldom complete. This course provides an in-depth study of how to prepare data coming from various sources, in different formats, with noisy information, in order to perform meaningful and sound analyses. Contents include grouping data, visualizing data, and aggregating data from the web and other sources.
Prerequisite: MATH-173 with a minimum grade of C.

CS-355. Cryptography. 3 Hours.

This course covers cryptography and a wide range of cryptographic applications. Theory discussed includes the design and analysis of cryptographic algorithms such as private key and public key cryptosystems used to secure data transmission and electronic system communications. Cryptographic applications such as digital signatures, entity identification, key exchange and e-commerce transactions are discussed.
Prerequisite: CS-324 with a minimum grade of C or (CS-400 with a minimum grade of C and CS-404 with a minimum grade of C).

CS-359. Machine Learning. 3 Hours.

This course provides an introduction to machine learning and its underlying fundamental statistical concepts. Building upon basic probability theory and linear algebra, the course addresses several concepts essential to the understanding of machine learning, including approximation, generalization, overfitting, underfitting, and linear and nonlinear systems. Several supervised and unsupervised learning algorithms are covered and used to solve real-world problems. The course will also introduce neural networks, ensemble learning, and active learning. Hands-on projects and in-class laboratories of the application of machine learning to the broad field of computer science and related fields will be given.
Prerequisite: CS-207 with a minimum grade of C.

CS-360. Cybersecurity. 3 Hours.

This course covers various advanced security concepts, tools, and models. Topics covered include denial-of-service attacks, web security and client- and server-side attacks, email security, database security, payment system security, digital rights management, network security, and incident response. Building upon the introduced security fundamental concepts, advanced enterprise security topics such as static and dynamic malware analysis, security auditing architecture and trails, incident response, and threat intelligence frameworks will be introduced. Hands-on experience will be provided through several laboratory sessions and a final module on penetration testing.
Prerequisite: CS-260 with a minimum grade of C and CS-331 with a minimum grade of C.

CS-361. Secure Programming And Testing. 3 Hours.

This course details how to design, build, and test programs in order to make them more secure. The course will discuss the following topics: concepts of secure programming (including risk management), techniques and tools used to build secure systems, techniques to test for security in programs and systems, specific vulnerabilities to avoid (and how to do so), and how to test for those vulnerabilities. Specific common classes of programming-induced vulnerabilities will be included such as buffer overflows, race conditions, off-by-one errors, integer overflow, and improper use of randomness functions.
Prerequisite: CS-331 with a minimum grade of C.

CS-362. Writing Intensive Program: Digital Forensics. 3 Hours.

Digital forensic science concerns the acquisition, recovery, and investigation of digital data. This course provides an introduction to computer components, storage devices, and file systems. Topics covered include forensic algorithms, operating systems artifacts analysis, files analysis, network attacks and forensics, Internet artifacts with emphasis on browser and mail applications, and memory forensics. Students will use tools and create scripts for digital forensic investigation.
Prerequisite: CS-207 with a minimum grade of C and CS-260 with a minimum grade of C and ENGL-101 with a minimum grade of C.

CS-390. Supervised Field Study I. 3 Hours.

(Internship) The student completes a computer programming project for an institution at the institution site. The institution defines the project which must be approved by the Department of Computer Science for the purpose of satisfying the course requirement. The project should take approximately 168 hours to complete. NOTE: CS-390 is repeatable for a maximum of 9 credit hours.

CS-391. Supervised Field Study II. 6 Hours.

(Internship) Same as CS-390 except that project should take approximately 336 hours to complete.

CS-392. Supervised Field Study III. 9 Hours.

(Internship) Same as CS-390 except that project should take approximately 504 hours to complete.

CS-400. Discrete Modeling And Analysis. 3 Hours.

This course provides necessary tools to develop mathmetical maturiy through the study of important topics such as comvinatorial analysis, discrete structures, algorithmic thinking and mathemetical reasoning. Topics include Advanced Enumeration Methods, Recurrence Relations (Equations), Graph Theory, Automata and Formal Languages, Proof Techniques and Probality and Statistics.
Prerequisite: CS-201 with a minimum grade of B or CS-405 with a minimum grade of C.

CS-401. Software Engineering. 3 Hours.

The complete software development process: requirement specification, design, coding, testing and maintenance. Various software engineering methods for the development of large-scale quality software are presented.
Prerequisite: CS-400 with a minimum grade of C and CS-404 with a minimum grade of C.

CS-404. Analysis Of Algorithms. 3 Hours.

This course provides various methodologies to design and analyze algorithms. Topics include incremental, divide-and-conquer, dynamic programming, greedt, backtracking, and branch-and-bound methodologies. Additional topics include sorting and searching algorithms, and computational complexity and Intractability.
Prerequisite: CS-207 with a minimum grade of B or CS-425 with a minimum grade of C.
Corequisite: CS-400.

CS-408. Advanced Operating Systems. 3 Hours.

Advanced operating system design and construction concepts such as memory, processor, process and secondary device management, synchronization and communication, security and protection, system performance and evaluation, network, distributed and fault-tolerant systems. Study of operating systems highlighting these concepts.
Prerequisite: CS-400 with a minimum grade of C and CS-404 with a minimum grade of C.

CS-409. Topics In Compiler Theory. 3 Hours.

This course describes the procedures used to develop a compiler for a high level language. First a simple high level language is defined and a simple program is written using this language. Then the concepts of a scanner and a parser are presented and students write the software for a scanner and a parser. Gradually, software for all phases of a comipler is developed and by the end of the semester, every student has developed a compiler that can produce assembly code for a microprocessor for a program written in a predefined simple high level language.
Prerequisite: CS-400 with a minimum grade of C and CS-404 with a minimum grade of C.

CS-411. Professional Computing. 3 Hours.

This course provides a study of the technical communication skills needed for a successful career in the field of Information Technology. This course, therefore, is designed to enhance the student’s technical research, writing, and presentation skills. Topics include methods for gathering information, writing good documentation, rendering technical information usable to the intended audience, using proper editing techniques, using rhetoric aspects that are applicable to technical communications, and using appropriate types of presentation delivery. To enhance these skills, class activities will include writing a formal project proposal, writing an abstract, making a formal project presentation, and writing a formal analysis report.

CS-412. Web Application Development. 3 Hours.

This course serves as an inroduction to differetn techniques and tools for the design of web applications. Topics covered include web applications flow, object oriented programming, design of classes, dynamic content, scripting languages, implicit objects, and database accessing. Students will be expected to understand and apply these concepts into the generation of sample websites.
Prerequisite: CS-400 with a minimum grade of C and CS-404 with a minimum grade of C.

CS-413. IT Project Management. 3 Hours.

IT Project Management is the discipline that applies management principles to the development of information systems projects. It uses techniques developed by Industrial Engineers and used by other engineers and business managers to bring in projects within time and budget. This course supplements Software Engineering by focusing on the management aspects of investng in the development of information systems. Required: CS-401 or can be taken concurrently.
Prerequisite: CS-400 with a minimum grade of C and CS-404 with a minimum grade of C.

CS-414. Independent Study. 3 Hours.

An opportunity for advanced study under the direction of an advisor knowledgeable in the field. The area of study will be selected by the student and his/her advisor, and must be approved by the department chair.
Prerequisite: CS-400 with a minimum grade of C and CS-404 with a minimum grade of C.

CS-415. Design Of Data Base Systems. 3 Hours.

This course covers various concepts associated with design and construction of data base systems. Topics include data base architecture, relational model, relational languages (SQL), normalization theory, Entity-Relationship theory and physical data base design. Students will develop a simple data base system.
Prerequisite: CS-400 with a minimum grade of C and CS-404 with a minimum grade of C.

CS-416. AI And Robotics. 3 Hours.

This course serves as an introduction to aspects of Artificial Intelligence applied to the robotics field. Students will learn different techniques to approach problems using simple robotics. Students will be expected to understand the main concepts, research for available resources, and participate in projects where these concepts will be applied.
Prerequisite: CS-400 with a minimum grade of C and CS-404 with a minimum grade of C.

CS-417. Video Game Programming. 3 Hours.

Tha aim of this course is to explore the basics game programming and the gaming industry, including elements of computer graphics and computer vision as well as advanced stereoscopic computer applications. Following the nature of computer/video grames development as a team effort, for this course, we shall design and implement one large class project for game prototype as a team.
Prerequisite: CS-400 with a minimum grade of C and CS-404 with a minimum grade of C.

CS-418. Research Topics In Artificial Intelligence. 3 Hours.

This course covers current research topics in artificial intelligence (AI) theory and applications. Topics will vary from semester to semester, and will include a detailed study of one or more of the following: the application of Bayesian networks and other machine learning methodologies to artificial intelligence; the use of decision theory to model intelligent agent behavior; genetic algorithms and programming; evolutionary strategies; multi-agent systems and models; hybrid heuristics and non-deterministic optimization algorithms.
Prerequisite: CS-400 with a minimum grade of C and CS-404 with a minimum grade of C.

CS-419. Informatics. 3 Hours.

Information is the discipline that applies the methodologies of science and engineering to information. It concerns organizing data into information, learning knowledge from information, learning new information from knowledge and making decisions based on the knowledge and information learned. This course concerns computational methods for analyzing data and processing information in applications to business decisions.
Prerequisite: CS-400 with a minimum grade of C and CS-404 with a minimum grade of C.

CS-420. Object-Oriented Design. 3 Hours.

This course provides student with a solid foundation in onject oriented design (OOD) and programming (OOP), a contemporary and highly used programming paradigm. OOD involves the presentation of three main concepts: encapsulation, polymorphism, and inheritance. These concepts and implementation techniques are presented in an object oriented programming language and students become experienced in OOD projects.
Prerequisite: CS-400 with a minimum grade of C and CS-404 with a minimum grade of C.

CS-421. Applied Programming Fundamentals I. 3 Hours.

This is a course that covers the principles of computer programming using an object-oriented programming language. Topics will include fundamental constructs of an applied object-oriented programming language such as variables, methods/functions, classes, dynamic object construction, and elementary data structures as well as abstract thinking techniques. A key component of this course is the presentation of programming concepts with relevant and interdisciplinary examples, and project-based experiences. Students will learn how to read and understand documentation, as well as install and access code management tools. This is a project-oriented course.

CS-422. Data Mining. 3 Hours.

Data mining is a powerful technology that extracts useful knowledge hidden in large datasets. This knowledge can be utilized to help people make decisions and predict future events. Data mining has its wide application in many areas, including science and engineering, finance and marketing research, medicine and healthcare, etc. This course covers common data preprocessing techniques and data mining algorithms, such as data preparation, aggregation and visualization, classification, regression analysis, clustering, and model evaluation. Some special topics will also be discussed in this course.
Prerequisite: CS-400 with a minimum grade of C and CS-404 with a minimum grade of C.

CS-423. Enterprise Architecture & IT Strategy. 3 Hours.

Enterprise Architecture (EA) is the process of translating organizational vision & strategy into effective & agile business processes that utilize integrated management information systems. These systems allow for; timely decision making, speed to market for competitive advantage or to create a significant barrier to entry. This course studies organizational strategy and its interrelationship & importance with major supporting business systems. The student will gain an understanding of Enterprise Resource Planning (ERP), Product Lifecycle Management (PLM), Customer Relationship Management (CRM), Business Intelligence, & Ecommerce systems and how the use & selection of these systems are critical to an overall IT Strategy.
Prerequisite: CS-413 with a minimum grade of C.

CS-425. Applied Programming Fundamentals II. 3 Hours.

This is an introductory course covering the principles of object-oriented programming and data structures. Topics include fundamental constructs such as inheritance, polymorphism, exception handling, and commonly used data structures. A key component is the presentation of programming concepts with relevant, interdisciplinary examples and project-based experiences. Students will learn how to utilize data structures and object-oriented techniques to develop large-scale projects. This is a project-oriented course where a variety of teaching methods will be introduced. These methods can include pair programming, in-class presentation of topics, and class projects utilizing communication and collaboration tools.
Prerequisite: CS-421 with a minimum grade of C.

CS-426. Advanced Numerical Methods. 3 Hours.

This course covers the elements of the design and analysis of numerical methods. Topics include errors in numerical methods, floating-point and interval arithmetic, measuring and efficiency of numerical methods, interpolation and curve fitting, numerical differentiation, numerical integration, and numerical optimization.
Prerequisite: CS-400 with a minimum grade of C and CS-404 with a minimum grade of C and MATH-301 with a minimum grade of C.

CS-427. Cross-Platform Mobile Application Development. 3 Hours.

The course introduces the student to modern mobile application development languages. Then, through hands-on projects, the students will gain experience with paradigms, app architecture, and user interfaces. The course culminates in a final project for which students implement an app entirely. Students will incorporate graphics, networking, security, media to create new, real world, practical applications. Development, design, implementation, testing, debugging, and maintaining these applications will also be covered. Students will use a variety of programming languages to create these applications.
Prerequisite: CS-412 with a minimum grade of C.

CS-435. Expert Systems. 3 Hours.

An expert system is a program that is capable of making the judgements and decisions of an expert. An example of an expert system is a program that does medical diagnosis. This course covers methods for designing expert systems and for reasoning using expert systems.
Prerequisite: CS-400 with a minimum grade of C and CS-404 with a minimum grade of C.

CS-440. Computer Graphics. 3 Hours.

Graphics hardware. Scaling and data charting. Representation of two-dimensional objects. Translation and rotation of objects. Two-dimensional line clipping. Three-dimensional object representation. Perspective in three-dimensional object representation. Line- clipping and hidden line and face removal in three dimensions.
Prerequisite: CS-400 with a minimum grade of C and CS-404 with a minimum grade of C.

CS-442. Topics In Network Design. 3 Hours.

Protocols for computer networks. Performance requirements, evaluation and analysis. Case studies of actual networks.

CS-450. Advanced Computer Architecture. 3 Hours.

Computer system structure and design issues such as ALU design, arithmetic algorithms, memory hierarchy, control, microprogramming, instruction sets, addressing, input-output. Comparison of specific examples of computer models and selected topics on parallel processors.
Prerequisite: CS-400 with a minimum grade of C and CS-404 with a minimum grade of C.

CS-460. Computer Security. 3 Hours.

Study of existing hardware and software techniques for implementing security. Passwords, encryption and authorization schemes. Special security problems presented by distributed and network environments.
Prerequisite: CS-400 with a minimum grade of C and CS-404 with a minimum grade of C.

CS-490. Master's Project. 3 Hours.

Large scale software project and associated documentation. Topic for the project is chosen in conjunction with a project advisor. Master’s Project requires the approval of the instructor, the Department Chair, and the appropriate College Dean.
Prerequisite: CS-400 with a minimum grade of C and CS-404 with a minimum grade of C.

CS-5901. Thesis Hours. 1 Hour.

Student conducts and writes a thesis in Computer Science. This is an alternative to CS-490 for those who want to pursue a more ambitious project. Master's Thesis requires the approval of the instructor, the Department Chair, and the appropriate College Dean.

CS-5902. Thesis Hours. 2 Hours.

See course description for CS-5901.

CS-5903. Thesis Hours. 3 Hours.

See course description for CS-5901.