Computer Science (COSC)

COSC 109 COMPUTERS AND CREATIVITY (3)

Creative activities involving symbolic manipulation and computer graphics; animation, dynamic story telling, computer music, visual effects, Web publishing, computer games, artwork and multimedia. Additional laboratory time required. GenEd I.E or Core: Creativity & Creative Development.

COSC 111 INFORMATION AND TECHNOLOGY FOR BUSINESS (3)

Retrieve, process, classify, sort and evaluate data and information. Problem solving techniques, creative thinking skills, communication skills, team building, and professional ethics. Laboratories covering the Internet, spreadsheets, and databases. Additional laboratory time required. Students cannot earn credit for both this course and IDNM 101. GenEd I.B.

COSC 112 HONORS INFORMATION AND TECHNOLOGY FOR BUSINESS (3)

Introduction to the use of information technology to retrieve, filter, process, classify, sort, and evaluate data and information in a business environment. Problem solving, creative thinking, effective communication, team building, and professional ethics within an information systems framework. Labs covering library information systems, the Internet, word processing, presentation software, spreadsheets, and databases will be emphasized. Students cannot earn credit for both this course and IDNM 101. Honors College course. GenEd I.B.

COSC 119 UIE:INFORMATION EFFECTIVELY IN THE COMPUTING SCIENCES (3)

Identifying, retrieving, filtering, storing, processing, classifying, sorting, evaluating and presenting data and information in a technology and computing environment. Emphasis will be placed on problem solving techniques with the computing field. Team-based case studies will be utilized and hands-on labs will be an important component of the course. Two hours lecture and one hour lecture in the lab. GenEd I.B.

COSC 175 GEN COMPUTER SCI (4)

Computer systems overview, algorithm development, data representation, software design and testing methodologies, and brief overview of advanced topics.

COSC 210 INTRODUCTION TO DIGITAL SECURITY AND DIGITAL FORENSICS (3)

Introduction to digital security and digital forensics for computer science and non-computer science majors. Topics include the history and scope of digital crime, characteristics of various types of digital crime, the interrelationship of the fields of forensic science, behavioral science and computer science, and societal, legal and ethical issues related to digital security and forensics. GenEd II.B.3.

COSC 225 HONORS INTRODUCTION TO LEGO ROBOTICS (3)

Basic mechanical, electronics and control issues in Robotics using the LEGO Mindstorms platform. Design, implement and program robotic systems of interdisciplinary nature. Prerequisite: Honors students only. GenEd I.E or Core: Creativity & Creative Development.

COSC 236 INTRODUCTION TO COMPUTER SCIENCE I (4)

Introduction to structured problem solving, algorithm development and computer programming. Three lecture hours and two laboratory hours. Prerequisites: demonstrable programming knowledge and experience and MATH 119 or equivalent.

COSC 237 INTRODUCTION TO COMPUTER SCIENCE II (4)

Development of programming and problem-solving skills, with a focus on object-oriented programming and design. Students will design and develop programs using encapsulation and information hiding, inheritance, polymorphism, and generics. Introduction to data structures and their implementations (lists, stacks, queues, and trees), recursion, and searching and sorting algorithms. Includes two laboratory hours per week. Corequisite: MATH 211 or MATH 273. Prerequisite: COSC 236.

COSC 290 PRINCIPLES OF COMPUTER ORGANIZATION (4)

Computer organization and architecture including computer arithmetic, digital logic, principles of assembly language, memory system organization, computer interfacing, CISC and RISC architecture. Three hours per week of laboratory work required. Prerequisites: COSC 236 and (MATH 263 or MATH 267).

COSC 301 PROB SOLV/PROGRAM (6)

Designed for graduate students with deficiencies in programming concepts. Topics include: Structured problem solving, algorithm development, data representation, basic data structures, sort and search techniques, computer structures. Not open to undergraduate students.

COSC 302 COMPUTER SYS ARCH (4)

Architecture. The topics covered: assembly language, introduction to computer architecture, internal representation of data and instruction, memory organization, microprogramming, multi-.

COSC 304 FUNDAMENTALS OF COMPUTER SCIENCES (6)

Designed for graduate students to learn programming and computer architecture. Software topics include: structured problem solving, algorithm development, basic data structures and their implementations, sort and search techniques, and introduction to software development. Hardware topics include: digital logic and digital systems, combinatorial and sequential logic, computer arithmetic, the central processing unit, assembly level machine organization, memory system organization, interfacing, and communications. Corequisite: MATH 363.

COSC 310 SPECIAL TOPICS: ADVANCED PROGRAMMING (3)

Advanced programming concepts within the context of a specific programming language for computer science and related majors. It does not count towards the major. The course may be repeated up to 6 units when a different programming language is offered. Programming languages offered may include C, C++, C#, Python, Ruby, and others. Prerequisites: COSC 237 and COSC 290.

COSC 311 DIGITAL TECH SOCI (3)

Foundations and impacts of computing and digital technologies, including history, applications, and societal impacts. Prerequisite: junior status and two science courses or one math course and one science course. GenEd II.A.

COSC 314 INTRODUCTION TO CRYPTOGRAPHY (3)

A broad introduction to cryptography and its mathematical foundations, including applications to computer-network security services and mechanisms (confidentiality, integrity, authentication, electronic case and others) and to various protocols in distributed computation. Prerequisites: COSC 236, either MATH 263 or MATH 267, and junior standing or permission of the instructor.

COSC 321 COMPUTERIZATION AND ITS IMPACTS (3)

Computer technology and its social and economic impacts on organizations and individuals. Prerequisites: Junior/senior status and completion of two science courses or one math and one science course. GenEd II.A.

COSC 336 DATA STRUCTURES AND ALGORITHM ANALYSIS (4)

Fundamental data structures used in programming and the basic techniques used to design and analyze algorithms. Topics include: complexity analysis of elementary algorithms, linear data structures, trees, heaps, graphs, search algorithms (balanced binary trees, B-trees, hashing), sorting algorithms, basic graph algorithms (graph traversal, topological sorting, shortest path, minimum spanning trees), and paradigms in the design of algorithms (divide and conquer, dynamic programming, greedy). Prerequisite: COSC 237; MATH 274 (may be taken concurrently).

COSC 350 DATA COMMUNICATIONS AND NETWORKING (3)

Networks, topologies, architectures and protocols, circuit and packet switching. TCP/IP suite, network management and security, and network programming. Prerequisites: COSC 336 and COSC 290.

COSC 397 INTERNSHIP/COSC (3)

Students work in local computing facility under on-site and faculty supervision. May be repeated for a maximum of 6 units. Only 3 units can be applied to the major. Graded S/U. Prerequisites: 6 units of upper division Computer Science or Computer Information Systems courses and consent of the instructor.

COSC 412 SOFTWARE ENGINEERING (3)

Methodology of designing and programming for a wide area of applications with a high degree of modifiability, efficiency, reliability, and understanding. Prerequisite: COSC 336.

COSC 415 COMPILER DESIGN (3)

Principles, techniques, algorithms and structures involved in the design and construction of compilers. Topics include: lexical analysis, formal grammars, syntax and semantics analysis, error recovery, code generation and optimization. Prerequisite: COSC 336.

COSC 417 INT THEORY COMP (3)

A general introduction to the theory of computation, including finite automata, compatibility, formal languages and their relation to automata, algorithms, and algorithmic complexity. The major emphasis will be on developing formal descriptions of computers and computational processes, and practical implications of theoretical results. Prerequisite: COSC 336.

COSC 418 ETHICAL AND SOCIETAL CONCERNS OF COMPUTER SCIENTISTS (3)

Ethical questions and societal concerns related to the widespread use of computers and the resulting responsibilities of computer scientists. Prerequisites: junior/senior standing; ENGL 317 or BUSX 301; must have previously taken a computing class. GenEd II.A or Core: Ethical Issues & Perspectives.

COSC 431 SELECTED TOPICS COMPUTER SCIENCE (1-3)

Independent studies in selected areas of computer science. A maximum of 4 units may be earned in selected topics. Prerequisites: consent of the instructor and 9 units of computer science.

COSC 432 REQUIREMENTS ANALYSIS & MODELING (3)

Introduces the basic concepts as well as the principles of software requirements development. Students will learn how to elicit, analyze, and model requirements and gain practical knowledge of tools and techniques related to these requirements activities. Develops theoretical knowledge and practitioner skills critical for real world applications. Prerequisite: COSC 412.

COSC 436 OBJECT-ORIENTED DESIGN & PROGRAMMING (3)

Introduction to object-oriented design and programming technology (OOD/OOP). Main phases in object-oriented design and techniques in object-oriented programming. Programming language design and implementation issues for object-oriented languages. Prerequisite: COSC 336.

COSC 439 OPERATING SYSTEMS (3)

Operating systems as resource managers with emphasis on file processor, memory and device management and processes. Design and implementation of a simulated multiprogramming operating system. Prerequisite: COSC 336.

COSC 440 OPERATING SYSTEMS SECURITY (3)

an in-depth discussion of security concepts in operating systems. This course examines some of the security issues in current operating systems and discusses the existing tools and technologies for setting up a secure system. Prerequisite: COSC 439.

COSC 442 SOFTWARE QUALITY ASSURANCE AND TESTING (3)

A comprehensive study of concepts, techniques, and tools for software quality assurance and testing. Software testing at the unit, subsystem and system levels; test models and test design techniques; integration, regression, and system testing methods; static and dynamic analysis; security and reliability testing and assessment. Prerequisite: COSC 412.

COSC 450 NETWORK SECURITY (3)

Network security principles and applications, including authentication applications. IP security, Web security, network management security, wireless security and system security. Prerequisites: COSC 314 or MATH 314, and COSC 350.

COSC 455 PROGRAMMING LANGUAGES: DESIGN & IMPLEMENTATION (3)

Underlying concepts in high-level programming languages and techniques for their implementation, a survey of a selected group of such languages along with a discussion of the interrelationship between programming and programming languages. Prerequisite: COSC 336.

COSC 457 DATABSE MNGT SYS (3)

Data models and sublanguages; security and integrity problems; functions of the database administrator; implementation and use of a database management system; a comparison of widely used DBMS packages. Prerequisite: COSC 336.

COSC 458 APPLICATION SOFTWARE SECURITY (3)

A study of security concepts in developing software applications. Discusses design principles for secure software development, and some of the security issues in current programming and scripting languages, database systems and Web servers. Corequisite: COSC 457. Prerequisite: COSC 455.

COSC 459 COMPUTER SIMULATION & MODELING (3)

Simulation models and languages, data collection and output analysis, random number generation and Monte Carlo integration, model verification and validation, variance reduction techniques, optimization, the implementation and use of simulation techniques in problem solving. Prerequisites: COSC 336 and MATH 330 or CIS 334 and MATH 231.

COSC 461 ARTIFICIAL INTELLIGENCE (3)

A survey of the problems and techniques involved in producing or modeling intelligence in computers. Particular emphasis will be placed on representation of knowledge and basic paradigms of problem solving. Topics include game playing, theorem proving, natural language, and learning systems. Prerequisite: COSC 336 or CIS 334.

COSC 465 ROBOTICS (3)

Physical mechanisms of robotics, issues of modeling, planning control and programming. Principles underlying the design and analysis of robotic systems, with emphasis on the autonomous, and behavior-based systems. Prerequisites: COSC 336.

COSC 471 COMPUTER GRAPHICS (3)

An introduction to the field of computer generated and/or displayed graphics data. Covers the topics of representation, transformations, curve and 3-D problems, graphics hardware, and programming considerations. Prerequisite: COSC 336.

COSC 481 CASE STUDIES IN COMPUTER SECURITY (3)

An in-depth study of the practical aspects of computer security, including the study of common computer security vulnerabilities in a laboratory setting. Prerequisites: COSC 440 and COSC 450.

COSC 483 DESIGN & ANALYSIS ALGORITHMS (3)

Algorithm design methods such as heuristics, backtrack programming, branch and bound, recursion, simulation, divide-and-conquer, balancing, and dynamic programming. Efficiency of algorithms - NP-complete problems. Prerequisite: COSC 336.

COSC 484 WEB-BASED PROGRAM (3)

Applications executing on a client-server system, emphasizing client side. Technologies include HTTP protocol, dynamic HTML, common gateway interface (CGI) programming and Java applets. Prerequisites: COSC 336.

COSC 485 REVERSE ENGINEERING AND MALWARE ANALYSIS (3)

Provides students with effective conceptual as well as hands-on knowledge in the areas of Reverse Engineering and Malware Analysis. It follows a progressive approach that introduces relevant concepts and techniques while preparing students to become effective reverse engineering and malware analysts able to use standard methodologies for detecting, analyzing, reverse engineering and eradicating malware in computing systems. Prerequisites: COSC 310, COSC 450.

COSC 490 SOFTWARE PROJECT PRACTICUM (3)

A project-based course for computer science majors that provides students with the experience of working as part of a project team using current software design and development tools and environments. Projects will consist of all aspects of software development, including requirements analysis, design, and implementation. Prerequisites: COSC 412; majors only; senior standing.

COSC 493 DIR ECTED READINGS IN COMPUTER SCIENCE (3)

Individual readings and background research, under the direction of a faculty member, in preparation for writing an honors thesis. (Restricted to students in the departmental honors program). Prerequisite: admission to the departmental honors program.

COSC 495 INDEPENDENT STUDY (1-3)

Directed study in selected areas of Computer Science for which there is no regular course offered. The use of a proposal and well-defined objectives as well as a formal paper or project report are required. Prerequisites: senior standing in Computer Science and consent of instructor.

COSC 499 HONORS THESIS IN COSC (3-6)

Writing of an honors thesis based on individual research. (Open only to advanced honors candidates). Prerequisite: permission of Departmental Honors Committee.