CS-109
Credit Hours:
4
Foundations of Computer Science
This course is an introduction to computational problem solving. In each instance of the course, students will develop their abilities to abstract and model problems drawn from a particular application domain, and generate elegant and efficient solutions. Students will practice these skills by developing computer programs to solve these applied problems. Possible application domains may include modeling in the social sciences, big data analysis, robotics, artificial intelligence, etc. The course will cover programming fundamentals, as well as the development of algorithms and data manipulation techniques related to the chosen application area. The level of this course is equivalent to CS 110 and 111; therefore students may earn credit for at most one of CS 109, 110, and 111. Absolutely no prior experience is necessary.
CS-109
Credit Hours:
4
Foundations of Computer Science
This course is an introduction to computational problem solving. In each instance of the course, students will develop their abilities to abstract and model problems drawn from a particular application domain, and generate elegant and efficient solutions. Students will practice these skills by developing computer programs to solve these applied problems. Possible application domains may include modeling in the social sciences, big data analysis, robotics, artificial intelligence, etc. The course will cover programming fundamentals, as well as the development of algorithms and data manipulation techniques related to the chosen application area. The level of this course is equivalent to CS 110 and 111; therefore students may earn credit for at most one of CS 109, 110, and 111. Absolutely no prior experience is necessary.
CS-110
Credit Hours:
4
Foundations of Computing Through Digital Media
This course is an introduction to computational problem solving. Students will develop their abilities to abstract otherwise complex problems and generate elegant and efficient solutions. Students will practice these skills by developing computer programs that manipulate digital images and sounds. These skills will prove applicable not only in subsequent computer science courses but in numerous other fields. The level of this course is equivalent to CS 109 and 111; therefore students may earn credit for at most one of CS 109, 110, and 111. Absolutely no prior experience is necessary.
CS-110
Credit Hours:
4
Foundations of Computing Through Digital Media
This course is an introduction to computational problem solving. Students will develop their abilities to abstract otherwise complex problems and generate elegant and efficient solutions. Students will practice these skills by developing computer programs that manipulate digital images and sounds. These skills will prove applicable not only in subsequent computer science courses but in numerous other fields. The level of this course is equivalent to CS 109 and 111; therefore students may earn credit for at most one of CS 109, 110, and 111. Absolutely no prior experience is necessary.
CS-111
Credit Hours:
This course is an introduction to computational problem solving. Students will develop their abilities to abstract (or model) otherwise complex problems and generate elegant and efficient solutions. Students will practice these skills by developing comput
Foundations of Computing for Scientific Discovery
This course is an introduction to computational problem solving. Students will develop their abilities to abstract (or model) otherwise complex problems and generate elegant and efficient solutions. Students will practice these skills by developing computer programs that solve problems motivated by research in the sciences. Additional topics may include Monte Carlo methods, data analysis, population dynamics, computational biology, genetic algorithms, cellular automata, networks, data mining, and fractals. The level of this course is equivalent to CS 109 and 110; therefore students may earn credit for at most one of CS 109, 110, and 111. Absolutely no prior experience is necessary.
CS-111
Credit Hours:
4
Foundations of Computing for Scientific Discovery
This course is an introduction to computational problem solving. Students will develop their abilities to abstract (or model) otherwise complex problems and generate elegant and efficient solutions. Students will practice these skills by developing computer programs that solve problems motivated by research in the sciences. Additional topics may include Monte Carlo methods, data analysis, population dynamics, computational biology, genetic algorithms, cellular automata, networks, data mining, and fractals. The level of this course is equivalent to CS 109 and 110; therefore students may earn credit for at most one of CS 109, 110, and 111. Absolutely no prior experience is necessary.
CS-119
Credit Hours:
1
Seminar: Programming Problems
Students meet weekly to solve a challenging programming problem. Strategies for solving problems will be discussed. Used as a preparation for programming contests. Prerequisite: CS 173. Offered fall semester.
CS-173
Credit Hours:
4
Intermediate Computer Science
A study of intermediate level computer science principles and programming techniques with an emphasis on abstract data types and software engineering. Topics include recursion, sorting, dynamic memory allocation, basic data structures, software engineering principles, and modularization. Prerequisite: CS 109 or 110 or 111.
CS-173
Credit Hours:
4
Intermediate Computer Science
A study of intermediate level computer science principles and programming techniques with an emphasis on abstract data types and software engineering. Topics include recursion, sorting, dynamic memory allocation, basic data structures, software engineering principles, and modularization. Prerequisite: CS 109 or 110 or 111.
CS-174
Credit Hours:
4
Discrete Mathematics for Computer Science
This course covers mathematical topics necessary for understanding concepts in computer sciences. Topics include proofs, sets, relations, functions, number theory, induction, solving recurrences, probability, elementary counting techniques and matrices. Prerequisite: CS 109 or 110 or 111.
CS-199
Credit Hours:
1-4
Introductory Topics in Computer Science
A general category used only in the evaluation of transfer credit.
CS-200
Credit Hours:
1
Topics in Computer Science
Occasionally, the department offers this "mini course" devoted to a particular application or programming language. Past offerings have included scripting languages, Mac OS X programming, LaTeX, Chemoinformatics, and iOS/mobile device programming.
CS-215
Credit Hours:
1
Technical Communication I
This course aims to enhance mathematics and computer science students' proficiency and comfort in orally communicating content in their disciplines. Students will present three talks during the semester on substantive, well-researched themes appropriate to their status in their major. Prerequisite: Math 210 or CS 271.
CS-271
Credit Hours:
4
Data Structures
In this course, students study a variety of data organization methods, and implement and analyze the efficiency of basic algorithms that use these data structures. Course topics include lists, stacks, queues, binary search trees, heaps, priority queues, hash tables, and balanced trees. Students will also be introduced to basic functional programming in LISP. The department strongly recommends that students enrolling in this course have earned a grade of C or higher in Intermediate Computer Science (CS 173) and a grade of C or higher in Discrete Math (CS 174) or Proof Techniques (MATH 210). Prerequisites: CS 173 and either CS 174 or MATH 210.
CS-271
Credit Hours:
4
Data Structures
In this course, students study a variety of data organization methods, and implement and analyze the efficiency of basic algorithms that use these data structures. Course topics include lists, stacks, queues, binary search trees, heaps, priority queues, hash tables, and balanced trees. Students will also be introduced to basic functional programming in LISP. The department strongly recommends that students enrolling in this course have earned a grade of C or higher in Intermediate Computer Science (CS 173) and a grade of C or higher in Discrete Math (CS 174) or Proof Techniques (MATH 210). Prerequisites: CS 173 and either CS 174 or MATH 210.
CS-275
Credit Hours:
4
Elementary Graph Theory
Graphs are mathematical structures that are used to model a great variety of phenomena ranging from the internet to social networks to phylogenetic clusters. In this class, we will study the mathematical properties of graphs and develop algorithms to solve many common graph problems. Prerequisite: CS 109, 110 or 111 and 174 or Math 210.
CS-275
Credit Hours:
4
Elementary Graph Theory
Graphs are mathematical structures that are used to model a great variety of phenomena ranging from the internet to social networks to phylogenetic clusters. In this class, we will study the mathematical properties of graphs and develop algorithms to solve many common graph problems. Prerequisite: CS 109, 110 or 111 and 174 or Math 210.
CS-281
Credit Hours:
4
Introduction to Computer Systems
A study of computer organization and the interface between hardware and software. Topics include assembly language programming, machine language, binary number representation and computer arithmetic, the central processing unit, input and output, the memory hierarchy, and digital design using modern simulation software. The department strongly recommends that students enrolling in this course have earned a grade of C or higher in Intermediate Computer Science (CS 173). Prerequisite: CS 173.
CS-281
Credit Hours:
4
Introduction to Computer Systems
A study of computer organization and the interface between hardware and software. Topics include assembly language programming, machine language, binary number representation and computer arithmetic, the central processing unit, input and output, the memory hierarchy, and digital design using modern simulation software. The department strongly recommends that students enrolling in this course have earned a grade of C or higher in Intermediate Computer Science (CS 173). Prerequisite: CS 173.
CS-299
Credit Hours:
1-4
Intermediate Topics in Computer Science
A general category used only in the evaluation of transfer credit.
CS-309
Credit Hours:
4
Computational Biology
As large and complex data sets have become more prevalent in biology, computer algorithms for analyzing the data have become critical, driving the need for scientists with expertise in both fields. This interdisciplinary course will explore this intersection, examining the biology and the computational methods behind a variety of interesting and important problems. The laboratory portion of the course will involve students working together in multidisciplinary groups to design algorithms to investigate these problems, as well as undertaking a self-designed "capstone" project at the end of the term. Prerequisites: CS 173 and either CS 271 or MATH 231. Students are also encouraged to have taken BIOL 150 and 201. Course is cross-listed with BIOL 309.
CS-309
Credit Hours:
4
Computational Biology
As large and complex data sets have become more prevalent in biology, computer algorithms for analyzing the data have become critical, driving the need for scientists with expertise in both fields. This interdisciplinary course will explore this intersection, examining the biology and the computational methods behind a variety of interesting and important problems. The laboratory portion of the course will involve students working together in multidisciplinary groups to design algorithms to investigate these problems, as well as undertaking a self-designed "capstone" project at the end of the term. Prerequisites: CS 173 and either CS 271 or MATH 231. Students are also encouraged to have taken BIOL 150 and 201. Course is cross-listed with BIOL 309.
CS-315
Credit Hours:
1
Technical Communication II
This course is a capstone experience in oral and written communication for mathematics and computer science majors. Students will research a substantive topic, write a rigorous expository article, and make a presentation to the department. Prerequisite: Math/CS 215. Corequisite: a 300-400 level mathematics or computer science course.
CS-334
Credit Hours:
4
Theory of Computation
This course is a study of formal languages and their related automata, Turing machines, unsolvable problems and NP-complete problems. The department strongly recommends that student enrolling in this course have earned a grade of C or higher in Data Structures (CS 271). Prerequisites: CS 271 and 275.
CS-337
Credit Hours:
4
Operations Research
This course involves mathematical modeling of real-world problems and the development of approaches to find optimal (or nearly optimal) solutions to these problems. Topics include: Modeling, Linear Programming and the Simplex Method, the Karush-Kuhn Tucker conditions for optimality, Duality, Network Optimization, and Nonlinear Programming. Prerequisite: Math 231.
CS-339
Credit Hours:
4
Artificial Intelligence
A survey course of topics in Artificial Intelligence including search, formal systems, learning, connectionism, evolutionary computation and computability. A major emphasis is given to the philosophy of Artificial Intelligence. The department strongly recommends that students enrolling in this course have earned a grade of C or higher in Data Structures (CS 271). Prerequisite: CS 271 or Math 231 or consent of instructor.
CS-339
Credit Hours:
4
Artificial Intelligence
A survey course of topics in Artificial Intelligence including search, formal systems, learning, connectionism, evolutionary computation and computability. A major emphasis is given to the philosophy of Artificial Intelligence. The department strongly recommends that students enrolling in this course have earned a grade of C or higher in Data Structures (CS 271). Prerequisite: CS 271 or Math 231 or consent of instructor.
CS-349
Credit Hours:
4
Software Engineering
Students will apply their theoretic background, together with current research ideas to solve real problems. They will study principles of requirements analysis, methods of designing solutions to problems, and testing techniques, with special emphasis on documentation. The department strongly recommends that students enrolling in this course have earned a grade of C or higher in Data Structures (CS 271). Prerequisite: CS 271 and 281.
CS-361
Credit Hours:
1-4
Directed Study
CS-362
Credit Hours:
1-4
Directed Study
CS-363
Credit Hours:
1-4
Independent Study
CS-364
Credit Hours:
1-4
Independent Study
CS-371
Credit Hours:
4
Algorithm Design and Analysis
In this course, students study in depth the design, analysis, and implementation of efficient algorithms to solve a variety of fundamental problems. The limits of tractable computation and techniques that can be used to deal with intractability are also covered. The department strongly recommends that students enrolling in this course have earned a grade of C or higher in Data Structures (CS 271). Prerequisites: CS 271, 275, and junior/senior status.
CS-372
Credit Hours:
4
Operating Systems
A study of the principles of operating systems and the conceptual view of an operating system as a collection of concurrent processes. Topics include process synchronization and scheduling, resource management, memory management and virtual memory, and file systems. The department strongly recommends that students enrolling in this course have earned a grade of C or higher in Data Structures (CS 271). Prerequisites: CS 271 and 281.
CS-373
Credit Hours:
4
Programming Languages
A systematic examination of programming language features independent of a particular language. Topics include syntax, semantics, typing, scope, parameter modes, blocking, encapsulation, translation issues, control, inheritance, language design. A variety of languages from different classes are introduced. The department strongly recommends that students enrolling in this course have earned a grade of C or higher in Data Structures (CS 271). Prerequisites: CS 271 and 281.
CS-374
Credit Hours:
4
Compilers
A study of regular and context-free languages with the purpose of developing theory to build scanners and parsers. The class will develop its own structured language and construct a working compiler. An examination of compiler construction tools. The department strongly recommends that students enrolling in this course have earned a grade of C or higher in Data Structures (CS 271).Prerequisites: CS 271, 281, and 334.
CS-375
Credit Hours:
4
Computer Networks
A study of computer network architecture and protocols. Topics include packet and circuit switching, datalink, network and transport layer protocols, reliability, routing, internetworking, and congestion control. The department strongly recommends that students enrolling in this course have earned a grade of C or higher in Data Structures (CS 271). Prerequisites: CS 271 and 281.
CS-377
Credit Hours:
4
Database Systems
A study of the design, implementation and application of database management systems. Topics include the relational data model, physical implementation issues, database design and normalization, query processing and concurrency. The department strongly recommends that students enrolling in this course have earned a grade of C or higher in Data Structures (CS 271). Prerequisites: CS 271 and 281.
CS-391
Credit Hours:
4
Robotics
An introductory course in both hardware and software aspects of robotics. Students will learn the basics of manipulators, sensors, locomotion, and micro-controllers. Students will also construct a small mobile robot and then program the robot to perform various tasks. The department strongly recommends that students enrolling in this course have earned a grade of C or higher in Data Structures (CS 271). Prerequisites: CS 271 and 281.
CS-391
Credit Hours:
4
Robotics
An introductory course in both hardware and software aspects of robotics. Students will learn the basics of manipulators, sensors, locomotion, and micro-controllers. Students will also construct a small mobile robot and then program the robot to perform various tasks. The department strongly recommends that students enrolling in this course have earned a grade of C or higher in Data Structures (CS 271). Prerequisites: CS 271 and 281.
CS-399
Credit Hours:
1-4
Advanced Topics in Computer Science
A general category used only in the evaluation of transfer credit.
CS-401
Credit Hours:
4
Advanced Topics in Computer Science
Topics may include Game Design, High Performance Computing, Graphics or other subjects of current interest.
CS-402
Credit Hours:
4
Advanced Topics in Computer Science
Topics may include High Performance Computing, Graphics, Neural Networks, Advanced Algorithms, Network security or other subjects of current interest.
CS-403
Credit Hours:
4
Advanced Topics in Computer Science
Topics may include High Performance Computing, Graphics, Neural Networks, Advanced Algorithms, Network security or other subjects of current interest.
CS-451
Credit Hours:
4
Senior Research
CS-452
Credit Hours:
4
Senior Research