Computer Science
Computer Science | Overview | Sample Schedule
46 credits
Why computer science?
The curriculum for the computer science major consists of three parts: computer science core, upper level required and elective major courses, and a senior capstone experience. The core provides the necessary programming, architectural and mathematical foundation for all later course work. The upper level required and elective courses provide both breadth and depth of application and theory across the various fields in computer science. During the capstone experience, students work in teams with other majors in the department to do requirements analysis, design, implementation and evaluation of a complex, real-world enterprise system. This major supports a student who wishes to work as a computer science professional in industry and/or to pursue graduate studies.
Career Options
Computer and Information Systems Managers; Computer Programmers; Computer Scientists; Computer Software Engineers; Computer Systems Analysts; Management Consultants
High School Preparation
Calculus; Chemistry; Computer Science; Discrete mathematics; Foreign language; Physics
Sample First Year Schedule |
| Fall Semester |
Course # | Title | Credits |
| CS110/111 | Computer Science I & Lab I | 4 |
| M151 | Calculus I | 4 |
| LCT140 | First Year Seminar | 3 |
| E120 | English Composition | 3 |
| | Disciplinary Studies/ Oral Communication Requirement | 3 |
| | 17 total |
| Spring Semester |
Course # | Title | Credits |
| CS210 | Computer Science II | 4 |
| CS220 | Discrete Mathematics | 3 |
| | Disciplinary Studies/ Oral Communication Requirement | 3 |
| | Disciplinary Studies Course | 3 |
| | | 13 total |
For more information contact: |
| Computer Science Chair |
Ann Smith, M.S. Saint Mary's University of Minnesota 700 Terrace Heights #1459 Winona, MN 55987-1399 (800) 635-5987, Ext. 1430 asmith@smumn.edu |
(From the 09-11 Catalog)
A. Computer Science Core
All of the following:
CS110 Computer Science I
CS111 Computer Science I Lab
CS210 Computer Science II
CS220 Discrete Mathematics
CS310 Computer Organization
CS320 Data Structures
M151 Calculus I
B. Upper Level Required Courses:
CS335 Programming Languages
CS345 Theory of Computation
CS410 Operating Systems
C. Capstone Experience:
CS480 Systems Development
CS495 Senior Research Seminar
D. Electives: 9 credits from any combination of the following:
CS 300+ courses (see Course Catalog for options)
M342 Numerical Analysis
P314 Digital Electronics
Click on courses below for descriptions
CS110 Computer Science I (3 credits)This course introduces students to the practice of software development. Students learn the fundamentals of programming, algorithm development, and object-orientated design principles.
Students must concurrently register for CS111.
Offered fall semester.
Co-requisites: M115 and M116 or equivalents.
CS111 Computer Science I Lab (1 credit)The laboratory course complements CS110 by using programming exercises to reinforce concepts and practices covered in CS110 lectures.
Students must concurrently register for CS110.
Offered fall semester.
Co-requisites: M115 and M116 or equivalents.
CS210 Computer Science II (4 credits)This course is a continuation of CS110/111. CS210 expands on object-oriented design practices, introduces simple data structures, and explores sorting and searching algorithms. Advanced programming techniques such as recursion and unit testing are also covered. Class lab time is used to reinforce concepts and practices covered in lectures.
Offered spring semester.
Prerequisite: C grade or better in CS110/111 or department approval.
CS220 Discrete Mathematics (3 credits)This course provides the theoretical foundation of modern computer hardware and software. It provides that foundation in the form of mathematical tools and concepts geared toward computer science applications. Topics covered include: logic and set theory; functions and relations; simple algorithm analysis; and an introduction to graph theory.
Offered spring semester.
Prerequisite: mathematics competency.
CS310 Computer Organization (3 credits)This course introduces students to digital computer organization and programming at the assembly level. Students learn the connection between Boolean logic and hardware circuits, the operation of combinational and sequential circuitry comprising the hardware of a modern computer, and the interaction between the hardware and software processes.
Prerequisites:
- CS210 Computer Science II
CS320 Data Structures (4 credits)A more complete and detailed study of data structures. Lists, queues, stacks and trees are reviewed, but with more emphasis on the mathematical analysis of their properties. Advanced data structures such as balanced trees, graphs and heaps are covered, as are specific algorithms that use these structures efficiently. General algorithm techniques and their analysis are also covered. Class lab time is used to introduce new concepts and explore ones described during lecture.
Offered fall semester.
Prerequisite: C grades or better in CS210 and CS220.
CS335 Programming Languages (3 credits)A comparative study of programming languages. Formal language theory; control flow; data types and abstractions; functions, procedures, and modules; tasks and concurrency. Students write programs in languages such as C, Java, ML, and Prolog that embody the major programming paradigms.
CS345 Theory of Computation (3 credits)This course builds on fundamental mathematics to present the mathematical foundations of computer science. Topics covered include the basic theoretical models of computation (formal languages and their automata), decidability and un-decidability, and computational complexity.
Prerequisites: C grades or better in CS220 and CS320.
CS410 Operating Systems (3 credits)This course introduces students to operating system concepts while facilitating the synthesis of knowledge related to digital computer organization, assembly language, data structures, and software development. Students learn how operating systems manage processes, provide mechanism for inter process communication and synchronization, and manage computer resources such as memory, processor ti me, and files. Students apply their learning by writing and/or modifying operating system code.
Pre-requisites: C grades or better in CS310 and CS320.
CS480 Systems Development (3 credits)This course is a capstone course wherein students apply the principles of design and development learned from earlier courses toward the implementation of a large-scale software system. Working in inter-disciplinary teams, students explore software life-cycle models, software development methodologies, software revision control, and project management.
Prerequisites: senior status and department major or minor.
CS495 Senior Research Seminar (3 credits)The second semester of a two-semester capstone course sequence. While the first semester of the capstone is team based, this second semester gives each student an opportunity to demonstrate the process of independent learning and thinking as it relates to computer science. Students propose, research, write-up and present their own new idea in a computer science area of interest.
Prerequisites: senior status and department major or minor.
M151 Calculus I (4 credits)This course provides an introduction to the differential and integral calculus. Topics include: the concepts of function, limit, continuity, derivative, definite and indefinite integrals, and an introduction to transcendental functions.
Credit cannot be granted for this course and M308 or M309.
Prerequisites: M115 and M116, or departmental placement.
M342 Numerical Analysis (3 credits)This course provides an introduction to the theory and methods of numerical analysis. Topics include: numerical methods for solving linear and nonlinear equations, polynomial approximation of functions, numerical integration and differentiation, numerical approximation to solutions of differential equations, direct and iterative methods for solving systems of equations.
Prerequisites: either CS105 or CS110/111, and M251, M252.
P314 Digital Systems (4 credits)This is a course on digital electronics and its applications in modern electronic instrumentation. Emphasis is placed on gaining experience with the use of individual digital integrated circuits and programmable arrays. The course covers Boolean algebra, simple gates, combinational and sequential logic circuits, counters, shift registers, state machines, astable multivibrators, encoding, decoding, multiplexing, and conversion between analog and digital representations. Coursework involves both circuit simulation and actual hardware implementations. The course targets applications in the natural sciences, mathematics, and computer science. Three hours of lecture and one three-hour laboratory per week.
Prerequisites:
- P211 Introductory Physics II
- P212 Introductory Physics II Laboratory
Offered in alternate fall semesters.