Computer Science (COSC)
The department offers a major and a minor in Computer Science. Coursework is designed to help students acquire the knowledge, experience, and skills to use a computer as an effective tool for problem solving in many areas. Students completing the major in Computer Science may qualify for either the BA degree or the BS degree, depending upon how they meet the college’s natural science requirement.
The department also offers an Emphasis in Computational Science for students pursuing a BS in Biology, Chemistry, Computer Science, Environmental Studies, Mathematics, Physics or Psychology and an Emphasis in Information Management for students majoring in Accounting, Business Economics, Economics or Finance.
Requirements for the Major in Computer Science
Code | Title | Hours |
---|---|---|
Computer Science Courses | 30 | |
Programming & Problem Solving 1 | ||
Discrete Structures | ||
or MATH 235 | Discrete Mathematical Models | |
Computer Organization & Architecture | ||
Theory of Computation | ||
or MATH 431 | Abstract Algebra I | |
Data Structures & Algorithms 1 | ||
Advanced Data Structures | ||
Operating Systems | ||
or MATH 220 | Linear Algebra | |
Software Engineering | ||
Select six credit hours of Computer Science (COSC) courses at the 300- or 400-level | ||
Math Courses | 9 | |
Calculus I | ||
Calculus II | ||
Select at least one of the following: | ||
Statistics | ||
Modeling & Simulation | ||
Mathematical Modeling | ||
Numerical Methods | ||
Probability and Statistics I | ||
Ethics Course | 3 | |
Select one of the following: | ||
Bio-Medical Ethics | ||
Ethics and Business | ||
Environmental Ethics | ||
Computers, Ethics, and Society | ||
Total Hours | 42 |
1 | Students must complete COSC 235 and 350 with a grade of 'C' or higher. |
Requirements for the Minor in Computer Science**
Code | Title | Hours |
---|---|---|
COSC 235 | Programming & Problem Solving 1 | 3 |
COSC 350 | Data Structures & Algorithms 1 | 3 |
COSC 240 | Discrete Structures | 3 |
or MATH 235 | Discrete Mathematical Models | |
(or one COSC course at the 300- or 400-level) | ||
Select three additional COSC courses, one of which must be at the 300- or 400-level | 9 | |
Total Hours | 18 |
1 | Students must complete COSC 235 and 350 with a grade of 'C' or higher. |
** | COSC 101 may NOT be used to meet any requirement for the Computer Science minor. |
Emphasis in Computational Science
Coordinator
Beau M. Christ
Computational Science, an interdisciplinary field at the intersection of science, computer science, and mathematics, combines simulation, visualization, mathematical modeling, programming, data structures, networking database design, symbolic computation, and high performance computing with various scientific disciplines. Students who complete a major in Biology, Chemistry, Computer Science, Environmental Studies, Mathematics, Physics, or Psychology and meet requirements for the B.S. degree are eligible to obtain an Emphasis in Computational Science. Computer Science majors also are required to take eight credit hours (two courses) of a laboratory science at the 200-level or above beyond the natural science requirement for a B.S.
Requirements for the Emphasis in Computational Science
Code | Title | Hours |
---|---|---|
Prerequisite | ||
Calculus I | ||
Requirements | ||
COSC/MATH 201 | Modeling & Simulation | 3 |
COSC 235 | Programming & Problem Solving 1 | 3 |
COSC 350 | Data Structures & Algorithms 1 | 3 |
Select one of the following: | 3 | |
Introduction to Bioinformatics | ||
High Performance Computing | ||
Computational Science: Data and Visualization | ||
Internship 2 | ||
Total Hours | 12 |
1 | Students must complete COSC 235 and 350 with a grade of 'C' or higher. |
2 | Students must also complete an internship, approved in advance by the coordinator, which involves computing in the sciences. Before the internship, the student must complete at least two of the required Computer Science courses and submit a resume to the coordinator. Interning full-time for 10 weeks, the student is expected to work well and have good attendance. After the internship, the student must submit a final report, present a talk on campus about the work, and have a positive evaluation from the internship supervisor. The coordinator of the Emphasis on Computational Science must approve all materials submitted at the end of the internship. |
Emphasis in Information Management
Coordinator
David A. Sykes
Information Management is an interdisciplinary field at the intersection of business and computer science. It involves the representation, organization, and transformation of information; efficient and effective algorithms to access and update stored information; data abstraction and modeling; and physical file storage techniques. Students intending to pursue the emphasis in must also complete a major in Accounting, Business Economics, Economics, or Finance.
Requirements for the Emphasis in Information Management
Code | Title | Hours |
---|---|---|
COSC 235 | Programming & Problem Solving 3 | 3 |
COSC 330 | Introduction to Databases | 3 |
or COSC 335 | Web Application Development | |
COSC 350 | Data Structures & Algorithms 3 | 3 |
COSC 410 | Software Engineering | 3 |
Internship 4 | ||
Total Hours | 12 |
3 | Students must complete COSC 235 and 350 with a grade of 'C' or higher. |
4 | The internship, approved in advance by the coordinator, will involve computing and business. Before the internship, the student must complete at least two of the required Computer Science courses and submit a resume to the coordinator. Interning full time for 10 weeks, the student is expected to work well and have excellent attendance. After the internship, the student must submit a final report, present a talk on campus about their work, and receive a positive evaluation from the internship supervisor. The coordinator of the Emphasis in Information Management must approve all materials submitted at the end of the internship. |
COSC 101. Introduction to Computers. 3 Hours.
An introduction to the uses of computers in a variety of application areas.
COSC 115. Introduction to Web Authoring. 3 Hours.
An introduction to effective communications using Web technologies. No programming background is required. This course focuses on the technologies and tools, including HTML, CSS, and JavaScript, that facilitate the construction of interesting and effective Web sites.
COSC 150. Scientific Investigations Using Computation. 4 Hours.
With improved computational abilities and the explosion of the amount of scientific data, practicing scientists now routinely implement computation to test hypotheses and guide their research. Thus, joining theory and experiment, computation is the third major paradigm of science. Students in this course will explore important science concepts and using computation tools implement the scientific method to gain a better understanding of the natural world.
COSC 201. Modeling & Simulation. 3 Hours.
An introduction to modeling and simulation as part of the interdisciplinary field
of computational science. Large, open-ended scientific problems often require the
algorithms and techniques of discrete and continuous computational modeling and
Monte Carlo simulation. Students learn fundamental concepts and implementation of algorithms in various scientific programming environments. Throughout, applications in the sciences are emphasized. Cross-listed with MATH 201.
Prerequisite: MATH 181 with a minimum grade of D.
COSC 235. Programming & Problem Solving. 3 Hours.
Students learn to develop programs using an object-oriented language. Students are introduced to problem solving and algorithm development with emphasis on good programming style. Completion of this course with a C or higher is a prerequisite for all 300- and 400- level courses in Computer Science.
COSC 240. Discrete Structures. 3 Hours.
A study of concepts foundational to computer science: sets, logic, the nature of proof, functions, algorithms, relations, lattices, and graphs.
Prerequisite: COSC 235 with a minimum grade of D and (MATH 140 with a minimum grade of D or MATH 181 with a minimum grade of D).
COSC 270. Independent Study in Computer Science. 1 to 3 Hours.
Independent study of selected topics in Computer Science at an intermediate level.
It is intended for students who do not plan to major in Computer Science as well
as for those who do. Specific topics vary from semester to semester. Permission of the instructor required.
COSC 273. Computer Organization & Architecture. 3 Hours.
An introduction to computer organization and principles of computer design. Topics include digital logic and digital systems, machine level representation of data, instruction sets, CPU implementation, memory system organization, I/O and communication, and assembly language programming.
Prerequisite: COSC 235 with a minimum grade of C.
COSC 275. Introduction to Bioinformatics. 3 Hours.
An introduction to the basic computational methods used to analyze biological data with an emphasis on algorithms used in genomics. Other topics may include methods for storage, retrieval, analysis, and display of biological data.
Prerequisite: BIO 212 with a minimum grade of D and COSC 235 with a minimum grade of D.
COSC 280. Selected Topics in Computer Science. 1 to 4 Hours.
A course in the study of selected topics in Computer Science at an intermediate level. It is intended for students who do not plan to major in Computer Science as well as for those who do. Specific topics vary from semester to semester. Permission of the instructor required.
COSC 285. Selected Topics COSC. 3 Hours.
COSC 310. Computer Graphics. 3 Hours.
An introduction to computer graphics. Particular emphasis is placed on the algorithms used to produce 2D and 3D graphics with a computer. Topics include graphics devices, polygons, drawing tools, vectors, transformations, 3D viewing, polygonal meshes, lighting, and shading models.
Prerequisite: MATH 181 with a minimum grade of D and COSC 235 with a minimum grade of C.
COSC 315. Computer Networks. 3 Hours.
An introduction to computer networks including network architecture, communication protocols, algorithms, and the current state of technology used to implement computer networks.
Prerequisite: COSC 273 with a minimum grade of C and COSC 235 with a minimum grade of C.
COSC 320. Programming Languages. 3 Hours.
A comparative study of high-level programming languages, including study of the
design, evaluation, and implementation of such languages. Emphasis is placed on the ways in which such languages deal with the fundamentals of programming.
Prerequisite: (COSC 235 with a minimum grade of C and COSC 273 with a minimum grade of C) or COSC 350 with a minimum grade of C.
COSC 330. Introduction to Databases. 3 Hours.
A study of data models, including relational, object-oriented, hierarchical, and
network models. Topics include the theory of normal forms, database design, query
languages, and implementation of databases.
Prerequisite: COSC 235 with a minimum grade of C.
COSC 335. Web Application Development. 3 Hours.
A study of the design and programming of web applications. Topics include client-side scripting, website organization, responsive web design, server-side scripting, content management systems, web application frameworks, and security.
Prerequisite: COSC 330 with a minimum grade of C or COSC 350 with a minimum grade of C.
COSC 340. Theory of Computation. 3 Hours.
A study of formal models of computation such as finite state automata, push-down
automata, and Turing machines, along with the corresponding elements of formal
languages. These models are used to provide a mathematical basis for the study of
computability and to provide an introduction to the formal theory behind compiler
construction.
Prerequisite: COSC 350 with a minimum grade of C and MATH 181 with a minimum grade of D and (COSC 235 with a minimum grade of D or MATH 235 with a minimum grade of D).
COSC 350. Data Structures & Algorithms. 3 Hours.
An introduction to the formal study of data structures, such as arrays, stacks, queues, lists, and trees, along with algorithm design and analysis of efficiency.
Prerequisite: COSC 235 with a minimum grade of C.
COSC 351. Advanced Data Structures. 3 Hours.
Advanced data structures, advanced object-oriented programming concepts, and
advanced program design principles.
Prerequisite: COSC 350 with a minimum grade of C and (COSC 235 with a minimum grade of D or MATH 235 with a minimum grade of D).
COSC 360. Operating Systems. 3 Hours.
A study of fundamental concepts that are applicable to a variety of operating systems. Such concepts include processes and threads, process coordination and synchronization, scheduling, physical and virtual memory organization, device management, file systems, security and protection, communications and networking.
Prerequisite: COSC 350 with a minimum grade of C.
COSC 365. High Performance Computing. 3 Hours.
An introduction to the concepts, tools, languages, and algorithms for solving problems on massively parallel and distributed computers. Advanced computer architectures; performance and optimization; and the design, analysis, and implementation of applications in parallel are studied.
Prerequisite: COSC 350 with a minimum grade of C.
COSC 370. Computational Science: Data and Visualization. 3 Hours.
An introduction to data and visualization, part of the interdisciplinary field of computational science. The course contains a brief introduction to the network environment and the UNIX operating system. Because large Web-accessible databases are becoming prevalent for storing scientific information, the course covers the concepts and development of distributed relational databases. Effective visualization of data helps scientists extract information and communicate results. Students will learn fundamental concepts, tools, and algorithms of computer graphics and scientific visualization in three dimensions. Throughout, applications in the sciences are emphasized.
Prerequisite: COSC 235 with a minimum grade of C.
COSC 410. Software Engineering. 3 Hours.
A study of software engineering through a project-oriented approach. The emphasis is on the specification, organization, implementation, testing, and documentation of software. Students work in groups on various software projects.
Prerequisite: COSC 350 with a minimum grade of C.
COSC 420. Compilers. 3 Hours.
This course explores the design and construction of compilers to implement modern programming languages with a focus on procedural and object-oriented programming languages. Students implement a compiler for a small object-oriented programming language. Topics include scanning, parsing, semantic analysis, and code generation as well as garbage collection and optimization.
Prerequisite: COSC 350 with a minimum grade of C and COSC 273 with a minimum grade of C.
COSC 435. Cryptology. 3 Hours.
An introduction to cryptology and modern applications. Students will study various historical and modern ciphers and implement select schemes using mathematical software. Cross-listed with MATH 435.
Prerequisite: MATH 220 with a minimum grade of D and (COSC 235 with a minimum grade of D or MATH 235 with a minimum grade of D or MATH 260 with a minimum grade of D).
COSC 440. Artificial Intelligence. 3 Hours.
This course provides both an overview of the underlying theory, principles, and techniques in artificial intelligence and an in-depth examination of one or more specific topics in artificial intelligence such as approaches to AI, symbolic programming, heuristic search, neural networks, or robotics.
Prerequisite: COSC 350 with a minimum grade of D.
COSC 460. Computer & Network Security. 3 Hours.
An introduction to computer security in a networked environment. Topics will include ethical and social issues; type of attacks on computers and defenses; physical security and systems administration; authentication, access controls, and biometrics; encryption and network security; and the underlying formalisms and technologies relating to security.
Prerequisite: COSC 350 with a minimum grade of D.
COSC 470. Advanced Independent Study in Computer Science. 1 to 4 Hours.
Independent study of selected topics in Computer Science at an advanced level. Specific topics vary from semester to semester. Permission of the instructor required.
COSC 480. Advanced Topics in Computer Science. 1 to 4 Hours.
A study of selected topics in Computer Science at an advanced level. Specific topics vary from semester to semester. Permission of the instructor required.