CS 305. Data Structures. 3 Hours.
This course emphasizes the organization of information; the implementation of common data structures such as lists, stacks, queues, trees, and graphs; and techniques of data abstraction, including encapsulation and inheritance. Instructors administer mini-labs and programming assignments. Assignments will focus on the design, implementation, testing, and evaluation of various data structures. Prerequisite: CS 332.
CS 310. Analysis of Algorithms. 3 Hours.
This course introduces basic elements of the design and analysis of computer algorithms. Topics include methods of algorithms description, proving of their correctness, asymptotic notations and analysis, recursion, divide and conquer, and examples of the efficient algorithms design in signal processing. For each topic, besides in-depth coverage, students will discuss one or more representative problems and their algorithms. In addition to the design and analysis of algorithms, students must gain substantial discrete mathematics problem-solving skills essential for computer engineers. Prerequisite: COSC 1321 or MATH 2305.
CS 316. Web Design and Programming I. 3 Hours.
CS 332. C++ Programming. 4 Hours.
This course introduces students to C++ programming language, a dominant language in the industry today. Students will be taught the fundamentals of programming. These concepts are applicable to programming in any language. Topics covered include basic principles of programming using C++, algorithmic and procedural problem solving, program design and development, basic data types, control structures, functions, arrays, pointers, and introduction to classes for programmer-defined data types. Frequent homework and lab assignments will be given during class. Prerequisite: COSC 1315.
CS 352. Java Programming. 3 Hours.
This course teaches the basics of Java programming, the foundations of object-oriented programming, and the process of building a project in a modular fashion. Java programming provides an overview of programming concepts, design, and an introduction to coding using the Java language. This course has a focus on creating working computer programs in Java. It will address fundamental concepts of analysis, design, and testing and code development. These include flowcharts, Boolean logic, control flow, data types and structures, variable arrays, functions, and pointers. This course will prepare students for focused studies in any programming language. The student will also learn how to enter, compile, link, and run a computer program using the Java language in a Windows or equivalent environment. Instructors will introduce structured programming through techniques for solving business, engineering and scientific problems. Laboratory exercises will provide practice in writing programs and will reinforce basic programming concepts, logic flow, and structured design. Prerequisite: CS 332.
CS 353. Advanced Object-Oriented Programming. 3 Hours.
This course provides an overview of advanced object-oriented programming concepts, design and to coding using the C++ language. It has a focus on creating working computer programs in Visual C++. It addresses advanced concepts of analysis, design, testing, and code development. These include but are not limited to flowcharts, Boolean logic, control flow, data types and structures, Inheritance, Polymorphism Templates, Exceptions and Operator Overloading Strings, Streams, Files and advanced Data Structures topics. This course prepares students for focused studies in gaming or other advanced programming arenas. The student learns how to enter, compile, link, and run a computer program using the C++ language in a Windows, Linux, or equivalent environment. Structured programming will be introduced through techniques designed to solve mathematical, scientific, and engineering problems. Laboratory exercises provide practice in writing programs and reinforce advanced programming concepts, logic flow, and structured design. Prerequisites: CS 332.
CS 360. Artificial Intelligence. 3 Hours.
This course will introduce the basic principles of artificial intelligence (AI) and its applications. The class will begin by discussing ways to represent knowledge about the world through logic and how to reason logically with that knowledge. The students will learn general principles of rule-based expert systems. Instructors will introduce and analyze techniques, which allow reasoning under uncertainty. Students will consider Bayesion networks and other probabilistic reasoning models. Students will observe basic principles of the learning theory and consider real world applicaitons of AI, such as expert-based systems and natural-language representation. Prerequisite: COSC 1315.
CS 361. Database Systems and Design. 3 Hours.
This course provides the basic concepts of management of database systems. The cousre emphasizes understanding the various database management functions and providing database support for the organization. Topics include types of database models, database design, entity-relationship diagrams, normalization, database-management systems, administration of database security, error recovery, concurrency control, and distributed-database systems. This course focuses on the design of a database starting from the conceptual design to the implementation of a database schema and user interfaces to the database. The course is heavily design oriented. In most of the projects, students have to design and implement a database using a commercial database management system and associated development tools. Students will learn the database query language SQL and the development of applications using PL/SQL. Students use Oracle 10g (SQL, PL/SQL) and SQL Server 2005 database software in this course. Laboratory exercises provide practice in writing programs and reinforce concepts. Prerequisite: CS 332.
CS 363. Neural Networks and Machine Learning. 3 Hours.
This course provides the basic concepts of neural networks and machine learning including but not limited to biological foundations of neuronal morphology, machine learning concept and its fundamentals, basics of neural information processing, artificial neuron and its activation functions, multilayer feed forward neural networks and back propagation learning, Hopfield neural networks and associative memories, neuro-fuzzy and kernel-based networks, and support vector machines. Laboratory exercises provide experience with design and utilization neural and other machine-learning algorithms using MATLAB and solving real-world classification, prediction, and pattern recognition problems. This will help students to accomplish specified challenges as they build problem-solving skills. Prerequisite: COSC 1315.
CS 367. Software Engineering. 3 Hours.
This course will offer a wide perspective on software design, stages of software development, design of software documentation, and development including requirements analysis, technical design, estimating, programming style, testing and quality, management, and maintenance. A part of the course is a software project, which students shall design. Prerequisite: CS 332.
CS 370. Programming Language Design. 3 Hours.
This course explores the design of high-level languages, criteria for language selection, specification techniques for syntax and semantics, trends in high-level language design, and introduction to programming in LISP. Prerequisite: CS 332.
CS 380. Automata Theory. 3 Hours.
This course is a study of the basic types of abstract languages and their acceptors, the Chomsky hierarchy, solvability and recursive function theory, and application of theoretical results to practical problems. Prerequisite: COSC 1321.
CS 390. Ethics in Technology. 3 Hours.
This course examines ethical issues and moral problems that engineers, computer scientists, and information technology professionals face. This course covers issues such as moral and ethical relevance, professional responsibilities, privacy, intellectual property, risks, and liabilities. Students review case studies of ethical conflicts in work environment and resolve theoretical situations through the application of ethical codes.
CS 410. Operating Systems. 3 Hours.
This course covers the principles and concepts that govern the design of modern computer operating systems. This course covers managing computing resources such as the memory, the processor, and the Input/Output devices. The course also covers algorithms for CPU scheduling, memory and general resource allocation, process coordination and management, and case studies of several operating systems. Operating systems also manage the authentication, accounting, and authorization aspects in a multi-user system. Students will explore issues and limitations imposed on a computing environment by the choice of different operating systems. Prerequisite: CS 332.
CS 420. Computer Networks. 3 Hours.
Students learn the basic computer networking concepts including ISO/OSI and TCP/IP reference model for networking protocols. The topic covers network architectures, communication protocols, physical media, error control, data link control, medium access control, local area networks, network layer, congestion control, and introduction to virtual circuit and datagram network. The course will also include the case studies and lab assignments for existing networks and network architecture. Prerequisite: CS 332.
CS 430. Mobile App Development. 3 Hours.
The course provides the student with a strong foundation in Java programming and the confidence to build successful mobile applications. Students will learn how to use the basic functionalities including user input, variables, operations, decision-making controls, lists, arrays, and Web Browsers. Students also learn how to implement audio, display pictures, and create animation and graphics in Android apps. Prerequisite: CS 352 or CS 353.
CS 465. Computer Security. 3 Hours.
This course will provide a broad introduction to host-based and Internet-based computer security. Topics covered include an introduction to cryptography, authentication protocols, access control, database security, intrusion detection, malicious software such as worms and virus propagation, and techniques to secure the Internet such as firewalls, intrusion detection systems, and Web and IP security. Prerequisite: CS 332.
CS 467. Image Processing and Computer Vision. 3 Hours.
This course provides the basic concepts of image processing and computer vision including but not limited to image sensing and acquisition, visual perception, image enhancement (mostly spatial domain image enhancement, but some essential elements of the frequency domain enhancement will be considered), image filtering in spatial and frequency domain, edge detection and image segmentation, elements of morphological image processing, elements of image restoration, image understanding and recognition, elements of color image processing. Laboratory exercises provide experience with design and utilization image processing algorithms using MATLAB and solving real-world problems in medical and satellite image processing, in old images restoration and in digital photography. Students will program different algorithms and use their programs for processing real images. This will help students to accomplish specified challenges as they build problem-solving skills. Prerequisite: COSC 1315.
CS 485. Capstone in CS. 4 Hours.
The aim of the capstone project in the senior year of Computer Science majors is to familiarize them with the process of solving real-world computational problems as practiced in industry. This course requires students to develop a project based on the knowledge and skills acquired in earlier coursework and integrate their technical knowledge through practical design effort. The work can be performed as a team work or can be performed as an individual project design.
CS 489. Individual Study. 3 Hours.
This course provides individual instruction. Students may repeat the course when topics vary.
CS 490. CS Senior Design I. 3 Hours.
This course is taken by seniors as the first part of the senior design experience in the semester before CS 491. Projects may involve the design of an algorithm, or a software and/or hardware system and topics covered may include the design process, project planning and management, and project costs, and includes aspects of ethics in computer science design, safety, environmental considerations, economic constraints, liability, manufacturing, and marketing. Projects are carried out using a team-based approach and selection and analysis of a design project to be continued in CS 491 is carried out. Written progress reports, a proposal, a final report, and oral presentations are required. Prerequisite: CS 310, CS 353, CS 367, and CS 410 or by instructor consent; open only to Computer Science majors. Prerequisite or Corequisite: CS 370.
CS 491. CS Senior Design II. 3 Hours.
Projects involving the design of a device, circuit system, process, or algorithm that have started in the previous semester will be completed. Team solution to an computer science design problem as formulated and initiated in CS 490 will continue to take place. Written progress reports, a final report, design manuals, and oral presentations are required. Prerequisite: CS 490; open only to Computer Science majors.
CS 497. Special Topics. 3 Hours.
Instructors will provide an organized class designed to cover areas of specific interest. Students may repeat the course when topics vary. Prerequisite: Instructor permission.
CS 499. Independent Research. 1-6 Hours.
Independent research in Computer Science conducted by a student under the guidance of a faculty member of his or her choice. The student is required to maintain a research journal and submit a project report by the end of the semester and potentially make an oral presentation on the project. SCH and hours are by arrangement and, with a change in content, this course may be repeated for credit. Prerequisite: Consent of instructor.
CS 599. Independent Research. 1-6 Hours.
Independent research in Computer Science conducted by a student under the guidance of a faculty member of his or her choice. Credits and hours are by arrangement and, with a change in content, this course may be repeated for credit. Prerequisite: Consent of instructor.