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 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).
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.
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 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.