Computer Science (CSC)
An introduction to the study of computer science. Subject matter consists of word processing, spreadsheet, database, graphics, computing, data processing, the organization of a computer, input and output devices, number systems, internal data representation and an introduction to a high-level programming language. (F, S, Sum)
This is the first course in the computer science programming sequence and is required of all computer science majors. Course objectives include: introduction to problem-solving methods and algorithm development; definition of language syntax and semantics of a high-level programming language; and developing the ability to design, code, debug, document, and successfully execute programs. Topics include objects and classes, data types, applets and graphics, decision statements, iteration, methods, testing and debugging, arrays, sorting and searching, inheritance, interfaces, and polymorphism.
This course is the follow-up of CSC 118. Additional topics in Object Oriented Programming covered in this course. Then the emphasis shifts to object oriented analysis and design. This course covers I/O streams, exception handling, threads, reflection, UML, object-oriented analysis and design, object-oriented graphical interfaces, design patterns, and refactoring. The course consists of two lecture hours and one laboratory hour. The course consists of two lecture hours and one laboratory hour. (F,S).
This course is designed for students who have computer programming experience and who want to write Web applications. Students will learn the basic programming skills and languages that are needed to implement distributed Web applications. Topics include client-side programming techniques including HTML, Dynamic HTML and JavaScript; server-side programming techniques including CGI programming using Perl; and Web architectures and servers. (S)
This course introduces students to data analytics -- the science of examining raw data and deriving conclusions from it. Data analytics is used in business and industry to make better business decisions and in science to verify existing theories. It involves extracting useful properties of data using concepts from statistics, mathematics and computer science. Students will use statistical methods, machine learning algorithms and software tools for analyzing data from science, business and industry. The course is designed for students in a variety of fields including statistics, artifical intelligence, engineering, marketing, finance, etc. The course consists of two lecture hours and one laboratory hour. (F, S)
Students will learn functional behaviors and structural organizations of a computer. Topics include machine level representations of data, computer arithmetic, instruction set architecture and assembly language, datapath and control, memory system and bus architectures and I/O devices. Also, the compilation and the assembly processes, and linking and loading are covered. (F, S)
Introduces the foundations of discrete mathematics as they apply to computer science, focusing on providing a solid theoretical foundation for further work. Topics include basic logic, proof techniques, sets, bags, ordered structures, graphs, trees, facts and properties of functions, and construction techniques. (F, S)
Prerequisities: CSC 119. The main objective this course is to study data structures (e.g. arrays, lists, binary tree, heaps, etc.), their properties and purposes, and algorithms (e.g. graph and tree algorithms, minimal paths, greedy algorithms, divide and conquer, dynamics programming) to manipulate these structures. A participate emphasis will be placed on understanding the theoretical foundations of data structures and associated algorithms, but also on their practical development from a software engineering perspective, and their associated algorithmic analysis. The course consists of two lecture hours and one laboratory hour. (F,S).
This course will increase students' understanding of cyber security issues and practices. It will teach them need-to-know information about staying secure and how to avoid security attacks through hands-on-projects. Topics covered will include: personal security, mobile security, Internet security, computer security, and workplace security. The course consists of two lecture hours and one laboratory hours. (F,S)
Introduces the foundations of Bioinformatics as they apply to computer science, focusing on providing a solid theoretical foundation in Biology for further work. Topics include sequence Alignments, Evolutionary processed, Genome characteristics, secondary structures & tertiary structures of proteins, Cells and organisms. The course consists of two lectures hours and one laboratory hours. (F,S).
Introduces students to various techniques to design and analyze algorithms. Topics include examples of computational problems, basic issues related to algorithms, efficiency comparison, and the design and analysis of brute force, divide-and-conquer, decrease-and-conquer, and transform-and-conquer algorithm design strategies. (F, S)
This course introduces the major concepts of process communication and synchronization, protection, performance measurement, and causes and evaluations of the problems associated with mutual exclusions and process synchronization among the concurrent processes. This course introduces and analyzes various operating systems in terms of professor management, memory management, device management, information management, and distributed systems management. The course consists of two lecture hours and one laboratory hour. (F,S)
This course is designed to introduce students 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, relational algebra and relational calculus; normalization; data definition and data manipulation in SQL; conceptual, logical, and physical database design; security; transaction management; query processing; and advanced topics in database systems. The course consists of two lecture hours and one laboratory hour. (F, S)
This course introduces students to topics in computer crimes and computer forensics. Students are required to learn ways to uncover, protect, and exploit digital evidence. Topics covered will include: e-mail investigation, data hiding, live acquisitions, processing a crime scene, data acquisition, analysis and validation, computer crimes, and cell phone and mobile device forensics. The course consists of two lecture hours and one laboratory hour. (F,S)
Study of the organization and specification of programming languages. Topics include an overview of programming languages; issues in language design, including typing regimens, data structure models, control structure models, and abstraction; virtual machines; language translation; interpreters; compiler design; lexical analysis; parsing; symbol tables; declaration and storage management; code generation; and optimization techniques. (F, S)
Discussion on trends in computer science. Students are required to prepare a paper and present it to their peers. Students who have participated in a Co-op Program will conduct a seminar discussing their work assignments.
The CSC 435 course will primarily focus on the following five layers of the TCP/IP protocol stack: Physical, Link, Network, Transport and Application layers. Topics to be covered include: Physical Layer -- encoding and decoding data for short-distance and long-distance communications; Link Layer -- local area network technologies and their extension using interconnection devices; Network Layer -- routing protocols, IP addressing, subnets, datagram forwarding, fragmentation and other auxiliary network-level communication protocols; Transport Layer -- UDP and TCP and Application Layer -- Socket programming. The course will also cover appropriate security aspects for each of the above layers. The course consists of two lecture hours and one laboratory hour. (F,S)
This course will examine the risks of security in computing, consider available countermeasures, controls, and examine some of the uncovered vulnerabilities. Topics covered will include: Cryptography, Program Security, Operating System Security, and Network Security. The course consists of two lecture hours and one laboratory hour. (F,S)
This course presents concepts of computer moral and legal issues, describes the impact of computers on society and presents techniques which are applicable in addressing problems posed by the social impact of computers. As a Service Learning Course, students will be able to help agencies and businesses in educating them on the most recent Anti-virus software available, viruses, e-mail scams, privacy issues, intellectual property rights, and computer crimes. (F, S)
Students will design, code, test, implement and document a large and complex application program. (F, S)
An introduction to formal models of computation. Assignments will develop students skills in understanding vigorous definitions in computing environments and in determining their logical consequences.
An introduction to the theory, research paradigms, implementation techniques, and philosophies of artificial intelligence. Introduction to Prolog, Lisp and expert system-shell programming.
Introduction to software engineering, software design, APIs, software tools and environments, software development processes, software requirements and specifications, software verification and validation, software implementation, software evolution, and software project management. (F)
Advanced, specialized topics selected on the basis of mutual interest of the student and the instructor.