Computer and Data Science Major
Software Development is changing. The
days of the isolated application running on a single CPU are gone.
Today's software is distributed, leveraging many computers
simultaneously to do a job. Human interaction is lightweight and
mobile, with the network connecting us to the machines that do our
work. That work has evolved too, as the availability of
mindbogglingly huge amounts of data about everything has
fundamentally changed the sorts of problems we are able to address
with software. Professional
software developers are scrambling to figure out how to write the
code that drives applications in this datadriven landscape.
So, the Computer Science program at
LVC has evolved, too, becoming our new Computer & Data Science
major. We have rethought everything, creating a unique
undergraduate degree aimed at preparing graduates to move into
careers in modern Software Development.
What does this mean?

We start with a focus on data,
and the ways computing systems create, manage, and analyze that
data;

We maintain our tradition of a
strong core preparation in computer programming, using modern
languages and tools;

We integrate current approaches
to parallel computing and distributed systems into the curriculum.
Students design, implement, and deploy distributed services as part
of their coursework;

We apply a foundational study
of math and statistics to programming and data analytics;

We incorporate into the major
program a variety of Professional Experiences,
such as research projects and internships, focused on preparing
students to enter their careers the moment they walk off campus.
Software Development career
opportunities
are more exciting than ever. The Bureau of Labor Statistics measures
the growth in the software job market as double the overall rate. By
2020, it is estimated that there will be close to one million
unfilled jobs in the field. Starting salaries in the field average
above $60,000.
At LVC, our
computer science program has enjoyed a virtual 100% placement rate
for decades. LVC graduates have gone to work for huge multinational
corporations and tiny independent software startups.
What sets CDS at LVC apart?
Our curriculum and its focus on modern software development is
unique.
We critically evaluated every part of the program, in consultation
with industry leaders, to create an undergraduate major that stands
apart from all of its competitors.
In
the midst of this exciting upheaval, we have maintained our
commitment
to the development of the
fundamental
skills that sets
a liberal arts education apart. We guide our students to develop the
ability to

Read
difficult, technical material independently and critically, rapidly
digesting new information;

Analyze new
problems and synthesize solutions;

Communicate
those solutions clearly and precisely, in writing and in person.
This foundation
helps our graduates prove their value immediately, and adapt rapidly
to a quickly changing field.
Degree Requirements: Bachelor of Science with a major in computer science
Required courses:
CDS 121 DataAn introduction to the principles, techniques, and tools used in the creation, organization, and manipulation of data in a modern computing environment. Topics will include: computer memory organization and binary data formats; files and filesystems; relational databases; modern "noSQL" datastores. Students will be introduced to some elementary programming in a language like Python. 3 credits. 
CDS 142 Programming IThis course introduces the fundamentals of computer programming using the Java programming language. Control structures, types and the type system, and the design of methods and classes will be considered. 3 credits. 
CDS 180 Language LabA selfpaced, projectbased approach to learning a computer programming language. Several different languages are available in order to develop familiarity with different languages. Graded pass/fail. This course may be repeated for credit as topic changes. Prerequisite: CDS 121, or other computer programming background and permission of the instructor. 1 credit. 
CDS 241 Programming IIA continuation of CDS 142, students will extend and deepen their understanding of programming using Java. The course will cover three main topics: Objectoriented software organization; design and implementation of elementary data structures and algorithms; the mathematical tools and techniques required for complexity analysis. Prerequisite: CDS 142, or by permission of the instructor. 3 credits. 
CDS 242 Algorithms and Data StructuresA study of the design, analysis, and application of data structures and algorithms. Trees, graphs, heaps, hash tables, and other structures will be considered. Several mathematical techniques (e.g., complexity analysis, recurrence relations, induction) will be studied and applied to understanding these algorithms and structures. The impact of modern computer hardware, especially caches and parallelism on the design and performance of data structures and algorithms will be considered. Prerequisite: CDS 241; MAS 111 or MAS 161. 3 credits. 
CDS 280 Introductory Data Analysis LabProjects in access to data and its analysis and manipulation, using the Java programming language. Prerequisite: CDS 121 and CDS 142. 1 credit. 
CDS 341 Machine Learning and Data Analytics IConcepts and practice in extracting knowledge from data. We use data to train a model to predict, to classify, and to discover associations. Performance metrics are used to assess a model, and to construct better models. Prerequisite: CDS 142, CDS 241; MAS 270. 3 credits. 
CDS 361 Concurrent and Parallel ProgrammingA survey of concurrency and parallelism in modern software design. Threads and locks and other concurrency primitives. Thread pools, taskbased parallelism, task scheduling algorithms; hardware parallelism, GPUs. Prerequisite: CDS 242 and MAS 222. 3 credits. 
CDS 499 Professional ExperienceThis course tracks the completion of Professional Experiences by students in the Computer and Data Science major. Prerequisite: Must be junior or senior standing. 0 credits. 
MAS 111 Analysis IA calculus sequence for department majors and other students desiring a rigorous introduction to elementary calculus. Fulfills requirement: Liberal Studies Area 4 (Mathematics),Quantitative Reasoning. Corequisite: MAS 113. 4 credits. 
MAS 112 Analysis IISecond semester of a calculus sequence for department majors and other students desiring a rigorous introduction to elementary calculus. Fulfills requirement: Liberal Studies Area 4 (Mathematics),Quantitative Reasoning. Prerequisite: MAS 111; Corequisite: MAS 114. 4 credits. 
MAS 113 Introduction to Mathematical Thinking IAn introduction to college mathematics for potential mathematical science majors. Corequisite: MAS 111. 1 credit. 
MAS 114 Introduction to Mathematical Thinking IISecond semester. Introduction to college mathematics for potential mathematical science majors. Corequisite: MAS 112. 1 credit. 
MAS 222 Linear AlgebraAn introduction to linear algebra including systems of equations, vectors spaces and linear transformations. Prerequisites: MAS 112 or MAS 261. 3 credits. 
MAS 270 Intermediate StatisticsA more advanced version of MAS 170 intended for students with some calculus background. Fulfills requirement: Liberal Studies Area 4 (Mathematics),Quantitative Reasoning. A student may not receive credit for both MAS 170 and MAS 270. 3 credits. 
One additional lab from the following:
CDS 180 Language LabA selfpaced, projectbased approach to learning a computer programming language. Several different languages are available in order to develop familiarity with different languages. Graded pass/fail. This course may be repeated for credit as topic changes. Prerequisite: CDS 121, or other computer programming background and permission of the instructor. 1 credit. 
CDS 281 Software ProcessesA primer in managing the software development process, from the initial creation of a project proposal to the organization of the development team and its workflow. Will include an overview of an agile process such as Scrum. Graded pass/fail. Prerequisite: CDS 142, or by permission of the instructor. 1 credit. 
CDS 285 Computational Problem Solving IStudents will sharpen their skill at applying computational problemsolving techniques (particularly the design of data structures and algorithms) in the context of competitive programming. Graded pass/fail. Prerequisite: CDS 142, or by permission of the instructor. 1 credit. 
CDS 385 Computational Problem Solving IIStudents will sharpen their skill at applying computational problemsolving techniques (particularly the design of data structures and algorithms) in the context of competitive programming. This course considers more advanced data structures and algorithmic techniques than CDS 285. Graded pass/fail. Prerequisite: CDS 242, or by permission of the instructor. 1 credit. 
Three additional courses at the 300 level or higher.