This course is a foundational course that covers a wide spectrum of essential concepts in the field. Students will delve into the fundamentals of computer algorithms, binary number representation, Boolean logic, system software, virtual machines, computer networks, cloud computing, information security, programming languages, and the basics of artificial intelligence. This course provides a comprehensive introduction to these core topics, equipping students with the knowledge and skills necessary to navigate the dynamic world of computer science. By the end of the course, students will have a solid grasp of these fundamental concepts, setting the stage for further exploration and specialization in the field. Prerequisite: MA-085 or MA-089;
The course covers basic concepts in modern computers and their applications. Course topics include components of a computer, computer networks and Inter, computer software, categories of computers, computer applications in society, computer ethics and security, and so on. Homework and projects include Microsoft Windows, Microsoft Office (Word, Excel, and PowerPoint), webpage design and multimedia applications. Prerequisite: MA-085 a-b or MA-089 or math placement (higher than MA-085b or MA-089) or consent of instructor.
This course introduces high level computer programming languages with emphasis on program design, coding, debugging, testing, and proper documentation with applications. Prerequisite: CS200, MA161a witha a "C" or higher or MA165 with a "C" or higher.
This course introduces problem-solving methods by using an object-oriented programming language. Topics include data types, decisions and loops, objects and classes, arrays and array-lists, algorithms and methods, encapsulation and polymorphism, inheritance and interface, graphical user interfaces, and exception handling. Prerequisites: CS200 and CS201; or consent of instructor.
This course is a fundamental course designed to introduce students to the world of programming using the Python language. Python is known for its simplicity, versatility, and widespread use in various domains, making it an ideal choice for beginners. This course aims to equip students with essential programming skills and provide a strong foundation for more advanced studies in computer science. Students can learn Data types, Control Structures, Functions, and Object-Oriented Program Design through this course. Prerequesite: MA-085B or MA-089
In this course, students will learn the syntax and structure of the Java programming language and understand the basic concepts of object-oriented programming. Students will learn fundamental programming concepts such as variables, data types, control statements, arrays, methods, and how to use various java libraries. Through creating classes and objects, students will understand the basic concepts of object-oriented programming and learn about inheritance, method overriding, abstract classes, and other related topics. Additionally, students will enhance their problem-solving skills through various practical exercises. Prerequisite: MA-085B or MA-089.
This course provides students with the foundations of discrete mathematics as they apply to computer science, Topics include functions, relations, sets, simple proof techniques, Boolean algebra, propositional and predicate logic, fundamentals of counting, graphs, trees, hash table, maps, and discrete probability. Prerequisites: MA-161B/MA-165 and CS-202 (Grade of C or higher).
This is an intensive programming course covering concepts learned in the previous programming courses; Procedural and object-oriented design, documentation, arrays, classes, file input/output, recursion, dynamic variable, pointers. All programming assignments will be done in the closed labs, with outside work limited to reading and studying text and supplementary material, doing suggested exercises. This course meets four times a week, 3 hours each time in the lab. Prerequisite: CS-202 Programming II or GCC CS-206 Java I.
The course covers the following concepts: Basic data structures; graph, search paths and spanning trees; algorithm design and analysis of sorting, merging and searching; memory management, hashing, dynamic storage allocation; integration of data structures into system design. Prerequisite: CS202 or consent of instructor.
This course covers the organization and structure of the major components of a modern computer: combinational circuits, sequential circuits, simulation of circuits, coding, computer organization and architecture, including a detailed study of a micro-computer or minicomputer and the use of Assembly language. Prerequisite: CS202 and CS303, or consent of instructor.
This course covers the following concepts: Definition of file components, access methods and file operations; algorithms for efficient implementation of data structures; characteristics of bulk storage media for mainframe and microcomputer or minicomputer; introduction to database management systems. Prerequisite: CS202 or consent of instructor.
This course covers the following concepts: Operating system history and services; file Systems; memory management; process Management-concurrent processes, communication, Semaphores, monitors, deadlocks; resource Management processor and disk scheduling; Security and protection systems. It meets for Three hours lecture weekly. Prerequisite: CS-202, CS-303 or Consent of instructor.
This course is an in-depth analysis of one or more operating systems, system data structure, hardware architecture, interrupt handling. Other topics may include parallel hardware architectures and performance analysis. Prerequisite: CS202 CS303 and CS305, or consent of instructor.
This course introduces students to the societal and ethical obligations of computer science, information technology, and electrical/computer engineering practice. Topics include obligations of professional practice, electronic privacy, intellectual property, ethical issues in networking, computer security, computer reliability, and whistleblowing. Prerequisite: Junior standing.
This course strengthens students' understanding of data structures and their algorithms for the foundation they need to successfully design, implement, and maintain software system. Topics include stack, queues, lists, trees, priority queues, advanced tree structures, hashing tables, dictionaries and set. Associate algorithms will be studied as well as recursion and various searching and sorting algorithms. Students explore design and implementation of data structures and algorithms in object-oriented programming environment. Corequisite: CS-271 Discrete Structures. Prequisite: CS-280 Programming Lab Practicum or passing the Examination of Programming Proficiency (EPP)
This course provides students with deeper understanding of the hardware environment upon which all computing is based and the interface it provides to higher software layers. The topics include digital logic, representation of data in machine level. assembly level machine organization,memory system organization and architecture, and interfacing and communication. Prerequisites: CS-202 CS-271 with grade C or higher.
This course introduces student to the concepts and theories of database systems. Topics include: information models and systems; the database environment; data modeling; conceptual modeling using the entity-relationship approach and mapping to relational tables; the relational model including the relational data structure, integrity rules and relational algebra and relational calculus; normalization; data definition and manipulation in SQL; conceptual, logical and physical database design, security transaction management; query processing; and advanced topics in database systems. Prerequisites: CS-373, BA-230 OR OA-210 Database Management System (at GCC).
This course emphasizes the design and implementation of dynamic websites as a means to provide students with the fundamentals of web development. Students will learn HTML, CSS, JavaScript Data Object Model (DOM), JavaScript event handlers, JavaScript programming and the incorporation of JavaScript into HTML, while working extensively with these technologies to understand how diverse web components interact. Through this course, students will gain hands-on experience in creating interactive websites and understanding the fundamentals of web development. Prerequisite: CS-280.
The course examines general concepts of programming languages; scope and binding rules, applications and implementation of language concepts, including the study of two or more of the languages: ADA, ALGOL, PL/1, MODULA-2, SNOBOL, LISP, C and PASCAL. Prerequisite: CS202 and CS303, or consent of instructor.
This course introduces the fundamental constructs of programming languages and principles of translation. Topics include history of programming languages, various programming paradigms, language design issues and criteria, and a formal method of describing syntax and introduction of lexical and syntax analysis. Prerequisites: CS-373 and CS-375 with grade C or higher.
The course will study the introductory concepts in operating systems: historical development of batch, multi-programmed, and interactive systems; virtual memory, process, and thread management; interrupt and trap handlers, abstraction layer, message passing; kernel tasks and kernel design issues; signals and inter process communication; synchronization, concurrency, and deadlock problems. Prerequisite: CS-375 with grade C or higher.
This course includes 3 lecture hours and 1 hands-on experimental hour. The course covers basic concepts and industrial principles of data communication and computer networks, OSI and TCP/IP protocols and Standards, data and signals, distributed computing; local and wide area networks. The experimental hour covers the hand-on knowledge and real-world skills for Network Administrators of Windows, Unix/Linux or Novel Netware networks systems. Prerequisite: CS-202 and CS-360, or consent of instructor.
This course introduces the general principles of computer and network security from an applied viewpoint. Includes physical security, operating system, security, network security, database security, web security, cryptography and so on. Students must present hand-on labs in computer and network securities. Prerequisite: CS-315 CS-360 CS-403 with a C or better; or consent of Instructor.
Systems Analysis and Design describes a well-defined process for developing information technology, people, and data resources to support business goals and requirements. Prerequisites: CS-315,CS-365 CS-380, CS-403 or consent of instructor.
This course is a study of selected topics in computing and information systems, such as computer graphics, computer modeling, information modeling, software engineering, design and analysis of software. With different subject matter, it may be repeated for credit. Prerequisites: Junior/senior level standing in computer science CS202 and CS303, or consent of instructor.
This course presents software engineering techniques and examines the software life-cycle, including software specification, design, implementation, testing and maintenance the course evaluates past and current trends in software development practice, the course gives an overview and discusses methods an techniques used in agile software processes, contrast agile approaches with traditional software development methods. Prerequisites: CS-373 and CS-377 with a grade of C or higher.
This course is a student to the theory of computer networking focusing on the TCP/IP Internet protocols and covering the five layers: physical, data link network, transport, and application. The course covers communication on wired, wireless, and cellular networks. The course introduces secure communication and its incorporation into different layer of the model. Prerequisite: CS-385 with a grade of C or higher.
Students can learn in-depth operations and configurations of network routers and switches based on fundamental network concepts. This course encompasses IP address subnet, VLANs (virtual Local Area Networks), and various network routing and switching techniques. Through diverse network projects, students can grasp how to design and implement computer networks. Utilizing various simulation tools such as Cisco Packet Tracer, student's can directly design and implement network systems.
This is a project-oriented course in computer science for seniors. All projects will be chosen by students or assigned by the professor. This guided work will be supervised by a qualified professor or project director. Students need to submit project reports at regular intervals.
This is a capstone course that integrates the knowledge and skills gained from the other computer related and general education courses in the curriculum within a comprehensive system development project. Prerequisites: CS-477 Software Engineering, Senior standing.
This course provides senior students a whole-semester internship opportunity. Students can obtain practical training experiences in the fields of computer science or computer information systems, such as computer networks, database management, computer system management, and software design and implementation. During the semester, students work in a technical or professional area under the supervision of an expert in the field. Prerequisite: C or better in CS315, CS360 and CS403.