Computer Science
Associate Professors: Marcus Birkenkrahe
Assistant Professor: Pietro Dall'olio
Computer Science is a rapidly changing and exciting field. Its impact on our lives is evidenced by the variety of uses of information technology in business, industry, entertainment, science, and government, to name a few. The Computer Science Major focuses on the foundations of the computer sciences including areas such as software and hardware design, mathematical foundations of computer science, and complexity of computation. The program is designed to give students an enduring foundation for future professional growth. The program blends theory and practice into a learning experience that gives students the capability to apply computer and information systems technology to a wide range of disciplines.
 MTH 115 and MTH 210 may also be used to satisfy core requirements.
NOTE: To graduate with a Bachelor of Arts or Bachelor of Science degree from Lyon College, students must successfully complete a minimum of 120 semester credit hours comprised of our required Core curriculum (4448 hours), the requirements of at least one major (credit hours vary per major), and a selection of our Liberal Arts electives. They must also earn at least a 2.00 cumulative grade point average for all work taken at Lyon College and a 2.00 cumulative grade point average in their major, minor, and concentration.
Degrees

Computer Science Major (BA) 
Computer Science Minor
Courses
CSC 100: Introduction to Programming in C++
An introduction to structured programming, including conditional statements, loops, functions, input, output, and use of various data types. Objectoriented features are introduced.
MTH 101 or MTH 103
CSC 105: Digital Humanities
An introduction to the theory and methods of Digital Humanities. Topics will include digital text encoding (XML), text computation and analysis, data visualization, and geographic information system (GIS) mapping.
CSC 109: Introduction to Programming in Python
This course assumes students have no prior programming experience and then introduces them to the Python programming language. Topics include basic programming concepts, problemsolving methods, algorithm development, program design and learning the use of packages/ libraries useful for data processing tasks.
CSC 115: Introduction to Programming in Java
An introduction to objectoriented programming using Java. Topics include problemsolving methods, algorithm development, program design, testing, debugging, and documentation.
MTH 101 or MTH 103
CSC 230: Web Development
This course introduces basic web page development techniques. Topics include HTML, CSS, scripting languages, and commercial software packages used in the development of web pages. The course also includes detailed discussion of design practices, such as the appropriate use of text and graphics, font and color selection, navigation techniques, media formats, and methods of enhancing the user experience. At the conclusion of this course, students will be able to use specified markup languages to develop basic web pages.
CSC 240: Data Structures with C++
Fundamentals of data structures as they are used for the efficient storage and manipulation of data.Topics include common data structures that are used in various computational problems, such as stacks, queues, trees, lists, and heaps
MTH 101 and one of the following: CSC 100, CSC 115 or CSC 109
CSC 245: Introduction to Digital Logic
An introduction to digital electronic circuits and techniques. Boolean algebra, digital logic gates, registers, automa theory, and integrated circuits.
MTH 115 or MTH 290
CSC 255: Computer Architecture
Introduction to computer organization and the basic structure of a modern programmable computer. Topics covered include the von Neumann architecture, the CPU, pipelining, memory hierarchy, assembly/ machine language, and the basic laws underlying performance evaluation.
CSC 240 and CSC 245
CSC 265: Algorithms
Study of algorithmic paradigms including divide and conquer algorithms, greedy methods, dynamic programming, heuristics, and probabilistic algorithms.
CSC 301: Junior Internship
Practical experience through a supervised internship. Students can conduct their internships onsite, working under the supervision of computing/automation/IT professionals, or on eIntern.
CSC 100 and permission of instructor
CSC 310: Mathematical Foundations of Computer Science
Introduction to mathematical topics as they relate to computer science, such as finite state automata, regular expressions, contextfree grammars, Turing machines, and unsolvability.
CSC 320: Programming Languages
A study of programming languages, their data, paradigms, and design and implementation issues. Topics include language representation, control structures, binding, runtime environment, exception handling, information handling, encapsulation and static and dynamic types.
CSC 330: Database Theory and Application
An introduction to the theory of databases, database design, and database application development. Topics include database models such as relational, network, hierarchical, objectoriented, and distributed. Students will apply this theory to the development of an actual database application.
MTH 115 or MTH 290 and one of the following: CSC 100, CSC 115, or CSC 109
CSC 401: Senior Internship
Practical experience through a supervised internship. Students can conduct their internships onsite, working under the supervision of computing/automation/IT professionals, or on eIntern.
CSC 100 and permission of instructor
CSC 410: Data Communications and Networks
An introduction to the theory and practice of computer networks, software protocols, communication hardware, error detection, and handling.
CSC 265 and CSC 310
CSC 415: Numerical Analysis
Examination of error analysis, interpolation, approximate differentiation, approximate integration, solutions to differential equations, matrix manipulation, and solutions to systems of linear equations. (Same as MTH 415)
MTH 210 and one of the following: CSC 100, CSC 115, or CSC 109
CSC 420: Operating Systems
An introduction to the components and organization of operating systems. Batch, interactive and distributed operating systems will be considered. Other topics include multiprogramming, multiprocessing, concurrent programming, memory management, and resource allocation.
CSC 450: Independent Study
Individual work on special topics in computer science.
Permission of instructor.
CSC 482: Special Topics in Computer Science
Study of selected topics in computer science. Prerequisites will vary.