Computer Science (COSC)

COSC 1136 Funds of Programming Lab

Laboratory course to accompany COSC 1336. Laboratory exercises reinforce the particular paradigms that are stressed in COSC 1336. Students will develop and run functional programs that solve elementary algorithmic problems. Students will also gain experience with compiling, finding, correcting syntax errors, and executing programs. This course places importance on scientific communication and collaboration methods.

Corequisites: COSC 1336.

COSC 1137 Object-Oriented Program Lab

Laboratory course to accompany COSC 1337. Laboratory exercises reinforce the particular paradigms that are stressed in COSC 1337. Students will develop programs in an object-oriented programming language by practicing the use of a variety of abstract data types and data structures. Students will also gain experience on using advanced design tools and the skills to analyze, debug and correct errors in programs. This course places importance on scientific communication and collaboration methods.

Prerequisites: COSC 1336.

Corequisites: COSC 1337.

COSC 1336 Fundamentals of Programming

This course introduces fundamentals of a high-level programming language. Students, applying rules of syntax and semantics, develop the skills in program design, implementation and debugging to solve computational problems in the programming language. No programming or computer science experience is required. High school BCIS as well as basic Algebra abilities are helpful.

Corequisites: COSC 1136.

TCCN: COSC 1315

COSC 1337 Object Oriented Programming

A continuation of COSC 1336. Emphasis is placed upon applying the object-oriented paradigms to develop the skills in data abstraction and object design where language features, essential programming techniques, and design guidelines are presented from a unified point of view.

Prerequisites: COSC 1336.

Corequisites: COSC 1137.

COSC 2301 Fundamentals of Comp Sci

Introduces fundamental concepts of programming from algorithmic and object-oriented perspectives. Topics include the range of introductory algorithmic concepts and constructs, simple data types, control structures, and introduction to array and string data structures, as well as debugging techniques and the social implications of computing. Emphasizes good software engineering principles and developing fundamental programming skills both in a language independent manner and in the context of a language that supports the object-oriented paradigm. High school BCIS is encouraged. Students should have sufficient abilities in high school mathematics.

Prerequisites: No programming or computer science experience is required.

COSC 2330 Digital Logic Design

Hardware implementation of arithmetic and logical functions, organization and design of digital systems. Co-

Prerequisites: ENGR 2305.

TCCN: COSC 1309

COSC 3301 Algorithms&Data Structures

Builds on the foundation provided by COSC 1136/1336 and COSC 1137/1337 with an increased emphasis on algorithms, data structures, and software engineering. The treatment of programming concepts will be both in terms of the object-oriented paradigm as well as independent of any programming language.

Prerequisites: COSC 1137/1337 and MATH 3365

COSC 3310 Algorithm Design&Analysis

Introduces formal techniques to support the design and analysis of algorithms focusing on both the underlying mathematical theory and practical considerations of efficiency. Topics include asymptotic complexity bounds, techniques of analysis, algorithmic strategies, and an introduction to automata theory and its application to language translation.

Prerequisites: COSC 3301 and MATH 3365.

COSC 3320 Computer Architecture

Introduces the organization and architecture of computer systems, beginning with the standard von Neumann model and then moving forward to more recent architectural concepts.

Prerequisites: COSC 3301 and MATH 3365.

COSC 3326 Operating Systems&Network

Introduces the fundamentals of operating systems together with those of networking and communications.

Prerequisites: COSC 3301 and MATH 3365.

COSC 3340 Microprocessor Systems

Basic computer structure, the instruction set, addressing modes, assembly language programming, assembly language subroutines, arithmetic operations, programming in C, implementation of C procedures, elementary data structures, input and output and a survey of microprocessor design.

Prerequisites: COSC 2330.

COSC 3350 Human Computer Interaction

Presents a comprehensive introduction to the principles and techniques of human-computer interaction.

Prerequisites: COSC 3301 and MATH 3365.

COSC 3370 Databases

Introduces the concepts and techniques and database systems. Topics include information models and systems; database systems; data modeling to include conceptual, object-oriented and relational data models; relational databases; database query languages to include SQL and OQL; relational database design; transaction processing; distributed databases; and physical database design.

Prerequisites: COSC 3301 and MATH 3365.

COSC 3390 Software Development

Provides an intensive implementation-oriented introduction to the software-development techniques used to create medium-scale interactive applications, focusing on the use of large object-oriented libraries to create well-designed graphical use interfaces. Topics include event-driven programming, computer graphics, human-computer interaction (HCI), and graphical user interfaces.

Prerequisites: COSC 3301 and MATH 3365.

COSC 4152 Internship in Computer Science

A directed internship in a public/private organization that is appropriate to the student's career objective or desire in a computer science setting. Students will apply analytical and technical knowledge acquired in the program in a real world setting and receive on-the-job training experience. Seminar and training will be held to discuss field experience from theoretical and applied perspective.

Prerequisites: Permission of the instructor and advisor.

COSC 4252 Internship in Computer Science

A directed internship in a public/private organization that is appropriate to the student's career objective or desire in a computer science setting. Students will apply analytical and technical knowledge acquired in the program in a real world setting and receive on-the-job training experience. Seminar and training will be held to discuss field experience from theoretical and applied perspective.

Prerequisites: Permission of the instructor and advisor.

COSC 4301 Eng Proj Mngmt & Prop

Principles of project management; planning, scheduling, and control. Engineering proposals; technical reports. Students prepare proposals, including specifications, timelines, schedule, and budget, for projects to be implemented in COSC 4390. This course should be taken the semester preceding COSC 4390. Cross-listed with SENG 4301.

Prerequisites: Senior Standing.

COSC 4310 Computer Security

Theory and practice of computer security. Cryptographic tools used to provide security, such as shared key encryption, public key encryption, key exchange and digital signature, with application to security in computer programs, operating systems, database management systems and networks.

Prerequisites: COSC 3326.

COSC 4320 Programming Languages

Formal definition of programming languages including specification of syntax and semantics. Precedence, infix, prefix and postfix notation. Global properties of algorithmic languages. List processing, string manipulation, data description and simulation languages. Run-time representation of program and data structures.

Prerequisites: COSC 3301.

COSC 4340 Intelligent Systems

Introduction to methods for the analysis and design of intelligent engineering systems. Topics include reinforcement learning, optimal estimation, Bayesian networks, expert systems, neural networks, and genetic algorithms. Applications emphasize control and decision making in engineering, finance, and computer science. Cross listed with SENG 4340.

Prerequisites: SENG 3340.

COSC 4352 Internship in Computer Science

A directed internship in a public/private organization that is appropriate to the student's career objective or desire in a computer science setting. Students will apply analytical and technical knowledge acquired in the program in a real world setting and receive on-the-job training experience. Seminar and training will be held to discuss field experience from theoretical and applied perspective.

Prerequisites: Permission of the instructor and advisor.

COSC 4385 Special Topics in Comp Science

Topics may be from an area of computer science. May be repeated when topic changes

COSC 4390 Comp Science Senior Dsgn Proj

This capstone course provides students the experience of implementing (including building, testing, and documenting) the approved project in COSC 4301, within budget and on schedule. Requires integration of knowledge from required systems engineering courses. Course requirements include a written report and oral presentation. To be taken during the semester of graduation.

Prerequisites: COSC 4301.

COSC 4395 Undergraduate Research

Students work on a computer science research project. The topic is chosen by the student and approved by the instructor. Course may be repeated under different topic for credit.

Prerequisites: Permission of instructor and department.

COSC 4452 Internship in Computer Science

A directed internship in a public/private organization that is appropriate to the student's career objective or desire in a computer science setting. Students will apply analytical and technical knowledge acquired in the program in a real world setting and receive on-the-job training experience. Seminar and training will be held to discuss field experience from theoretical and applied perspective.

Prerequisites: Permission of the instructor and advisor.