Computer Science

Courses

COSC-160: Computer Science I

Credits 3.0

Introduction to all aspects of the programming and problem-solving process and the elements of good programming style. A language such as C++ or FORTRAN is used as a means for introducing these concepts. Use of the computer in designing, coding, debugging, and executing programs. Pre-requisites: MATH 115 or higher (or the equivalent) with a grade of C- or better, Math ACT score of 23 or higher, or permission of the instructor. Fall, Spring.

COSC-194: Computer Science Career Seminar

Credits 2.0

This course explores computer science from its historical foundations to the most cutting edge developments in the multifaceted discipline with an emphasis on helping the computer science student know and match their interests and skills with the career opportunities in computer science and related disciplines.

COSC-240: Computer Science II

Credits 3.0

A second semester study of computing principles. Abstract data types, object-oriented programming concepts, and introductory topics of graphical-user interfaces, unit testing, and file structures. Students hone their problem solving skills through a variety of programming assignments. Prerequisite(s): COSC 160 or consent of instructor. As needed.

COSC-244: Data Structures

Credits 3.0

A second-year course in data structures and algorithms. Topics include commonly used data structures, recursive algorithms, computational complexity, sorting and searching techniques, and an introduction to run-time storage management. Course assignments emphasize both program design and implementation. Prerequisite(s): COSC 240 and MATH 220. As needed.

COSC-344: Software Engineering I

Credits 3.0

The application of object-oriented analysis and design methods to develop commercial software. Emphasis is placed on software process maturity, software development life cycles, software documentation, and team projects. Prerequisite(s): COSC 244. Spring. As needed.

COSC-346: Operating Systems

Credits 3.0

An introduction to the principles and concepts of operating systems to include process management, memory management, and storage management. Emphasis is placed on learning the principles and then applying them in various systems programming exercises. Pre- or Co-requisite(s): COSC 244. As needed.

COSC-348: Principles of Algorithms

Credits 3.0

The analysis, design, and implementation of popular algorithm methods. Topics include specific algorithms for searching, sorting, set operations, and graph-related operations. Emphasis on empirical and theoretical measures of the space and time efficiency. This course is the Junior Writing Requirement course. Prerequisite(s): COSC 244. As needed.

COSC-350: Programing Languages

Credits 3.0

A survey of language classes, such as imperative, functional, logic, concurrent and object- oriented paradigms, as well as their run-time structures. The student will gain experience writing programs in a variety of languages and develop an appreciation of the strengths and weaknesses of each language. Includes historical precedents and current trends in design and philosophy of languages. Formal approaches to defining the syntax and semantics are used to describe the fundamental concepts underlying programming languages. Prerequisite(s): COSC 244. As needed.

COSC-354: Networks and Data Communications

Credits 3.0

An introduction to the principles and concepts of network-based communication between software processes. This includes the organization of WANs and LANs, the function of gateways and routers, and the use of protocols at the application, transport, and network layers. Emphasis is placed on the TCP/IP protocol suite. Exercises focus on studying network traffic and developing TCP- and UDP-based client/server programs. Pre- or Co-requisite(s): COSC 244. As needed.

COSC-356: Database Management

Credits 3.0

A study of data modeling, relational databases, normalizing techniques, query languages, managerial aspects of database administration, and trends in database administration. Programming is done in a 4GL language. Prerequisite(s): COSC 244. As needed.

COSC-358: Artificial Intelligence

Credits 3.0

An introduction to the field of artificial intelligence studying basic techniques such as heuristic search, deduction, learning, problem solving, knowledge representation, uncertainty reasoning, and symbolic programming languages such as LISP. Application areas may include intelligent agents, data mining, natural language, machine vision, planning, and expert systems. Prerequisite(s): COSC 244. As needed.

COSC-440: Network Security

Credits 3.0

An introduction to network security emphasizing authentication applications, electronic mail security, IP security, web security, network management security, and firewalls. Students are exposed to the tools and techniques used by malicious network attackers for reconnaissance, scanning, gaining and maintaining access, and covering their tracks. Prerequisite(s): COSC 354. As needed.

COSC-444: Software Engineering II

Credits 3.0

Application of software project management, requirements analysis, design, implementation, and testing to the development of large software systems. Emphasis is on software process improvement, requirements management, software testing techniques, quality assurance, configuration management, risk management, and group projects. Prerequisite(s): COSC 344. As needed.

COSC-446: Program Translation

Credits 3.0

A study of language design and translation, including: various types of compilers; LL and LR parsing; support mechanisms for access and storage of translation data; scoping concerns; and lifetime, visibility, and overloading mechanisms. All if this is done within the context of the program translation stages. Prerequisite(s): COSC 340 and COSC 344. As needed.

COSC-448: Computer Theory

Credits 3.0

A study of the computational and linguistic theory on which the field of computer science is based. Topics include finite state automata, context-free grammars, push-down automata, Turing machines, undecidability, computability, and complexity theory. This course is the Senior Writing Requirement course. Prerequisite(s): COSC 348 and MATH 220 or consent of instructor. As needed.

COSC-450: Computer Architecture

Credits 3.0

A study of design alternatives in computer architecture. Topics include machine organization, memory subsystem organization, interfacing concepts, issues that arise in managing communication with the processor, and alternative computer architectures. Assembly language is studied and used to implement a variety of small programs. Prerequisite(s): COSC 244 and PHYS 350 with lab. As needed.

COSC-498: Computer Science Internship

Credits 3.0

Students may work at an internship in a business, a non-profit organization, or an on-campus research or design project, under the supervision of a computing professional. Students are required to apply their skills in a real-world setting. Each credit hour earned requires 60 hours of logged, on-duty work. The student must submit a written report or journal at the conclusion of the internship. The internship is monitored and evaluated by a faculty sponsor, in verification and close consultation with the supervising representative of the business/agency. Lincoln Memorial University retains ultimate control and supervision of the internship Prerequisite(s): COSC 344 and departmental approval. As needed.