Courses

COSC 106 Introduction to Web Programming (3)
An introduction to programming and web technology. HTML and Web page structure will be introduced. In addition, introductory programming ideas such as sequence, selection, and repetition will be covered. This course is intended for students interested in exploring computer science who do not have a significant quantitative background. Does not count toward the COSC major.

COSC 109 Introduction to Information Management (3)
An introduction to fundamental principles, concepts and techniques that providers of information use to organize their data. Also studies techniques for using information effectively in decision making. Basic networking, web, database, spreadsheet and programming concepts will be covered. Does not count toward the Computer Science major or minor requirements.

COSC 110 Introduction to Computer Science (3)
Prerequisite: Minimum ACT composite score of 23 or COSC 109 recommended. Introduction to the fundamental ideas and techniques of computer science. Introductory programming topics such as variables, sequence, selection, repetition, and objects will be covered. Students will spend a significant amount of time out of class writing and debugging code in a programming language. (MR)

COSC 115 Scientific Programming (3)
Prerequisite: MATH 131. An introduction to fundamental programming concepts within the context of scientific applications. Programming structures such as selection, repetition, arrays/collections and functions/methods are covered as well as introductory numerical computation topics. This course is intended for students who are interested in exploring computer science and its application to science and mathematics.

COSC 130 Data Structures (3)
Prerequisite: COSC 110 or COSC 115. Studies the implementation of common data structures such as stacks, queues, linked lists, and trees. Intermediate programming topics such as recursion, analysis of algorithms, and other topics will be introduced. Students will spend a significant amount of time out of class designing, writing, collaborating on, and debugging classes and programs.

COSC 220 Software Design (4)
Prerequisite: COSC 130. Introduces current design methodologies for developing computer programs. Object-oriented programming concepts will be covered. Designing classes and interaction between objects will be emphasized. In addition, API’s for common data structures will be included. Students will spend a significant amount of time out of class designing, writing, collaborating on, and debugging classes and programs in an object- oriented programming language.

COSC 235 Discrete Structures (3)
Prerequisite: COSC 110. An introduction to the mathematical ideas that are most often used in computer science. Topics covered include recursion and induction, graphs and trees, counting techniques and discrete probability, and prepositional and digital logic. (MR)

COSC 245 Computer Organization and Architecture (4)
Prerequisite: COSC 130. A study of the internal organization and design of computing devices. The machine will be examined at different levels such as digital logic, microprogramming, conventional machine and assembly language. Advanced architectures such as RISC and parallel machines will be explored.

COSC 255 Programming: “Language” (2)
Prerequisite: COSC 130. A study of a selected programming language not covered in other computer science courses. This course may be repeated with a different language.

COSC 260 Web Application Development (3)
Prerequisite: COSC 130 and experience with HTML. Studies the tools and techniques used in developing client server applications for the World Wide Web. Topics include the client server application paradigm, scripting and other browser (client) side application tools, CGI and other server side application tools. Offered alternate years.

COSC 325 Mobile Application Development (4)
Prerequisite: COSC 220. Studies the principles of software development for mobile platforms.

COSC 330 Algorithms (3)
Prerequisite: COSC 130. A survey of many advanced programming algorithms. Topics include sorting and searching, string, geometric and graph algorithms. Students will spend a significant amount of time out of class designing, writing and debugging computer programs in programming languages such as Java or C++.

COSC 345 Computer Systems (4)
Prerequisite: COSC 245. Studies fundamental system concepts such as memory management, input/output, process and thread management, concurrency, and networking.

COSC 360 Database Systems (3)
Prerequisite: COSC 130. An introduction to the design and theory of database systems. Topics include the entity-relationship model, relational database model, query languages, procedural and nonprocedural paradigms, normal forms, security, distributed databases and recovery techniques.

COSC 362 Computer Graphics (3)
Prerequisite: COSC 130. Introduction to the principles and techniques of computer graphics programming. Offered alternate years.

COSC 370 Numerical Analysis (3)
Prerequisite: MATH 132 and COSC 110. A treatment of solutions of equations, interpolation and approximations, numerical differentiation and integration, matrix methods and numerical solutions to ordinary differential equations. Cross-listed as MATH 370.

COSC 372 Computer Networks (3)
Prerequisite: COSC 130. A study of local and wide area networks, their design and implementation, digital data communication techniques, protocols and architectures.

COSC 375 Introduction to Operating Systems (3)
Prerequisite: COSC 130. Introduces fundamental concepts and principles inherent in operating systems, such as processes, concurrency and parallelism, storage management, security and distributed systems. Offered alternate years.

COSC 390/490 Topics: Computer Science (Arr)
Prerequisite: COSC 220. Various topics in computer science can be studied depending upon the interest of the students. Some possible areas of study are advanced programming techniques and systems analysis.

COSC 420 Senior Project (4)
Prerequisite: COSC 220. Students independently research an advanced topic in computer science of their choice and then design and implement a project based on their topic. Students are expected to present (orally and in writing) the results of their work.