Personal tools
You are here: Home > Undergrad Bulletins > 2013-2015 > Departments and Majors > Computer Science

Computer Science

Information

Information

David Furcy, Tom Naps, Co-Chairpersons

Department Office: Halsey Science 229 
Department Telephone: (920) 424-1388

Code 34 or COMP SCI

Faculty

Faculty

Furcy 
Naps 
Georgiev 
Summers 
Krohn 
Thomas
Lynch

Degrees

Degrees

  • Undergraduate: A major in Computer Science can lead to the degree(s): Bachelor of Arts; Bachelor of Science.
  • Graduate: None

Summary of Fields of Study

Summary of Fields of Study

  1. Goal(s)

    Within three to five years after graduation, our typical alumni will:

    • Advance beyond initial entry-level positions as computing professionals or have made significant progress toward a graduate degree in computing.

    • Use the background they have acquired in a wide range of areas in computer science during their undergraduate study as a basis for continued growth of their professional knowledge and skills.

    • Use communication and teamwork skills to effectively collaborate with others in their workplace.

    • Demonstrate strong professional ethics in all of their computing endeavors.

  2. The Major(s)

    • The Department offers a choice of three emphases within the Computer Science Major. These are 1) Computer Science, 2) Software Engineering and 3) Computer Information Systems.

  3. The Minor(s)

    • The Department offers one minor: Computer Science.

Admission/Graduation Requirements

Admission/Graduation Requirements

  • The Computer Science Department has no admission requirements for the Computer Science Major. Any enrolled student may declare a Computer Science Major.

  • To be eligible for graduation, students must meet all requirements for the degree being sought in addition to earning a minimum grade point average of 2.00 in all courses required for the Computer Science major or minor. In addition to University and College requirements, students must have a minimum grade point average of 2.00 in those computer science courses numbered 300 or above that are used to satisfy the requirements of the Computer Science Major excluding Computer Science 399, 446, 456, 474 and 490. This statement implies that if a student completes more than the minimum number of courses required for a specific emphasis, the student may designate those courses that will be used for computing the grade point average when more than one choice is possible. The resulting set of designated courses must satisfy the requirements of a specific emphasis of the Computer Science Major.

 

Required Core Courses

Required Core Courses

These courses are required of all Computer Science Majors:

  • Computer Science

    • Computer Science 221, Object-Oriented Programming and Design I 3 crs.

    • Computer Science 251, Computer Organization and Assembly Language 3 crs.

    • Computer Science 262, Object Oriented Programming and Design II 4 crs.

    • Computer Science 271, Data Structures 4 crs.

    • Computer Science 331, Programming Languages 3 crs.

  • One of the following

    • Computer Science 399 Internship in Computer Science 6 crs. maximum

    • Computer Science 490 Practicum in Computer Science 3 crs.

  • Mathematics

    • Mathematics 212 Mathematics for Computer Science 3 crs.

  • Physics

    • Physics 311 Digital Instrumentation 4 crs.

Comments:

The Physics 311 course also satisfies the one-semester laboratory science course requirement for the B.S. degree, as long as the two-course laboratory science sequence is taken from courses in a department other than Physics. Students pursuing the Computer Science emphasis should see the description of that emphasis for special considerations that apply when using Physics 311 in this way. Physics 311 also satisfies the one-semester laboratory science course requirement.

The Major(s), with Emphases and/or Options

The Major(s), with Emphases and/or Options

The requirements for a major in Computer Science consist of the courses listed in the Required Core Courses plus those listed under one of the Emphases described below. Every Computer Science major must satisfy one of these three emphases.

  1. Computer Science Major

    • Computer Science Emphasis
      • Focuses on the fundamental, practical, and theoretical foundations of computer science, providing an in-depth understanding of both the software and hardware components of computer systems. It is appropriate for students preparing for careers in scientific computing or research, and for students planning to pursue graduate degrees. This emphasis is accredited by the Computing Accreditation Commission of the ABET, 111 Market Place, Suite 150, Baltimore, MD 21202-4102, telephone: (410) 347-7700. The Computer Science emphasis is open only to students pursuing the B.S. degree.
    • Required Units (crs.): 35 minimum
    • Required Courses: In addition to the Core Courses:
      • Computer Science: Computer Science 310, 321, 350, 381, 421, 431, 499
      • Mathematics: Mathematics 171, 172, 301
    • Electives: Total of 6 units (crs.) from Elective List A (see below). These chosen electives must not be one of the required courses for the Computer Science Emphasis. Additionally, the requirement in math and science necessitate completion for Mathematics 171, 172, 212, 301; Computer Science 381; Physics 311; plus an additional 11 units (crs.) from other math and science courses. In selecting courses for these additional 11 units (crs.), science courses must be chosen to insure the student meets the general university natural science requirement for a B.S. degree, and math courses must be chosen from elective List C (see below).
      • Elective List A:
        • Computer Science: 300, 310, 321, 341, 342, 346, 350, 361, 371, 381 391, 421, 431, 480
      • Elective List B:
        • Business: 260, 314, 315, 319, 355, 410, an MIS course approved by the Computer Science department.
      • Elective List C:
        • Physics: 305, 319, 405, 415, a Physics course approved in advance by the Computer Science department.
        • Mathematics: 222, 256, 302, 304, 342, 346, 349, 355, 356, 357, 371, 385, 401, 402, a Mathematics course approved in advance by the Computer Science department.
    • Software Engineering Emphasis
      • Focuses on knowledge and skills for the design, development, maintenance, and management of software, including software for the operation of instrumentation. It is appropriate for students preparing for careers as systems programmers, systems analysts, software engineers or computer-based instrumentation specialists.
    • Required Units (crs.): 33 minimum
    • Required Courses: In addition to the Core Courses:
        • Computer Science: Computer Science 321, 341, 342, 350, 361, 421 or 431.
        • Mathematics/Economics: Mathematics 171 or 206, Mathematics 201 or 301, or Economics 210
      • Electives: Three units (crs.) from Elective List A; six units (crs.) from Elective Lists B and C combined (see below). The chosen electives must not be one of the required courses for the Software Engineering Emphasis.
        • Elective List A:
          • Computer Science: 300, 310, 321, 341, 342, 346, 350, 361, 371, 381 391, 421, 431, 480
        • Elective List B:
          • Business: 260, 314, 315, 319, 355, 410, an MIS course approved by the Computer Science department.
        • Elective List C:
          • Physics: 305, 319, 405, 415, a Physics course approved in advance by the Computer Science department. 
          • Mathematics: 222, 256, 302, 304, 342, 346, 349, 355, 356, 357, 371, 385, 401, 402, a Mathematics course approved in advance by the Computer Science department. 
      • Computer Information Systems Emphasis
        • Focuses on the knowledge and skills for designing, implementing, and administering application software, including network administration and database administration, computerization plan preparation, and user requirement specification preparation. It is appropriate for students preparing for careers as systems administrators, network managers, or application programmers.
      • Required Units (crs.): 32 minimum
      • Required Courses: In addition to the Core Courses:

        • Computer Science: Computer Science 341, 346, 350, 361

        • Mathematics: Mathematics 171 or 206

        • Mathematics/Economics: Mathematics 201 or 301 or Economics 210

      • Electives: Nine units (crs.) from Elective List A; six units (crs.) from Elective List B (see below). The chosen electives must not be one of the required courses for the Computer Information Systems Emphasis.

        • Elective List A:

          • Computer Science: 300, 310, 321, 341, 342, 346, 350, 361, 371, 381, 391, 421, 431, 480

        • Elective List B:

          • Business: 260, 314, 315, 319, 355, 410, an MIS course approved by the Computer Science department.

       

      The Minor(s)

      The Minor(s)

      Computer Science Minor

      • Required Units (crs.): 23 minimum

      • Required Courses:

        • Computer Science: Computer Science 221, 251, 262 and 271

      • Electives: Any three courses from the following:

        • Computer Science: Computer Science 300, 310, 321, 331, 335, 341, 342, 346, 361, 371, 381, 391, 421, 431, 480, 490

      Course Offering(s)

      Course Offering(s)

      Computer Science   115                                     3 (crs.)

      Using Computers

      This course introduces students to computers and their use. The course emphasizes productivity tools such as word processing, spread sheet and internet application packages. Emphasis will be placed on methodologies that acquire, organize, analyze, synthesize and present data. This course does not apply toward the Computer Science major or minor. Students may not earn credit for both Computer Science 115 and Business 210. Not open to students who have completed Computer Science 271.

       

       

      Computer Science   125                                     3 (crs.)

      World Wide Web Site Development

      An introduction to the tools for developing World Wide Web pages. Topics covered include: Internet history, overview of file transfer, remote login, electronic mail, introduction to Hyper Text Markup Language (HTML), incorporating graphics, clip art and other multimedia materials, techniques and principles of effective presentation and uploading files to a server. This course does not apply toward the Computer Science major or minor. Not open to students who have completed Computer Science 271.

       

       

      Computer Science   142                                     3 (crs.)

      Elementary Programming in Visual Basic

      A service course in computer programming using the language Visual Basic. Topics covered include problem solving, algorithms, selection statements, repetition, arrays, functions and sub-programs. This course does not apply to the major or minor. Prerequisite: Mathematics 103 with a grade of C or better, or qualifying for either Mathematics 108 or Mathematics 171 via Math Placement Test. Not open to students who have completed Computer Science 271. (Fall, Spring)

       

       

      Computer Science   221                                     3 (crs.)

      Object-Oriented Design and Programming I

      A first course in problem solving, software design and computer programming using an object-oriented language. Problem solving/software design techniques include: flow charts, pseudo code, structure charts, structure charts and UML class diagrams. Data structures and algorithms include: arrays, characters strings, Linear search. Programming topics include; data types assignment statements, standard input/output, selection, repetition, functions/methods, parameters, scope of identifiers, debugging. Prerequisites:  A grade of C or better in Math 104 or Math 108 or Math 206 or Computer Science 142, or qualifying for Math 171 via the Mathematics Placement Exam.  (Fall, Spring)

       

       

      Computer Science   251                                     3 (crs.)

      Computer Architecture and Assembly Language

      An introduction to RISC-based instruction set architecture. Topics include: data representation, assembly language programming, run-time storage management, pointers and references as exemplified in the C++ programming language and introduction to system software. Prerequisite: Computer Science 221 with a grade of C or better. (Fall, Spring)

       

       

      Computer Science   262                                     4 (crs.)

      Object Oriented Design and Programming II

      A second course in problem solving, software design and computer programming using an object-oriented language. Problem solving/software design topics include: abstract data types, universal modeling language (UML), simple recursion, unit testing, event-handling, simple concurrency. Data structures and algorithms include: binary search, simple sorting algorithms, use of collection classes and their iteration protocols, sequential file processing. Additional topics include: inheritance, polymorphism, graphical user interfaces, simple use of threads. Prerequisites: Mathematics 108 or equivalent with a grade of C or better, or qualifying for a higher level mathematics course via the Mathematics Placement exam, and Computer Science 221 or equivalent with a grade of C or better.  (Fall, Spring)

       

       

      Computer Science   271                                     4 (crs.)

      Data Structures

      A course surveying the fundamental methods of representing data and the algorithms that implement and use those data representation techniques. Data structures and algorithms include: linked lists, stacks, queues, trees, heaps, priority queues, hashing, searching, sorting, data compression, graphs, recursion. Analysis topics include: elementary big-O analysis, empirical measurements of performance, time/space trade-offs, and identifying differences among best average, and worst case behaviors. Prerequisites: Computer Science 262 with a grade of C or better AND either Completion of or concurrent enrollment in Computer Science 251 with a grade of C or better. (Fall, Spring)

       

       

      Computer Science   300                                     3 (crs.)

      Artificial Intelligence

      This course is a survey of existing techniques in the field of artificial intelligence. An introduction to the areas of robotics, theorem proving, heuristic programming, natural language processing, neural networks and game playing is presented. Students are expected to demonstrate mastery via computer programs using the techniques of artificial intelligence. Prerequisite: Computer Science 262 with a grade of C or better.

       

       

      Computer Science   310                                     3 (crs.)

      Computer Organization and Design

      An introduction to digital logic and computer hardware organization. The students are introduced to elementary Boolean algebra and switching theory as related to computer architecture. Emphasis is given to the design of Central Processing Units, Arithmetic and Logic Units and main memories. A comparison of alternate computer organizations is presented. Prerequisite: Computer Science 251, Mathematics 212, with a grade of (C) or better.  Prerequisite or concurrent enrollment: Physics 311.  (Fall)

       

       

      Computer Science   314                                     1 (crs.)

      Participation in Programming Competition

      This course is taken by students participating in the November ACM International Collegiate Programming Contest. During the course and prior to their participation in the contest, students practice team-orientated problem-solving strategies in areas that often arise in the problems that are given during the contest. These areas include data structures, string manipulation, combinatorics, graph algorithms, dynamic programming and computational geometry.

       

       

      Computer Science   321                                     3 (crs.)

      Algorithms

      Algorithm design techniques including brute-force, backtracking, divide-and-conquer, dynamic programming and greedy algorithms. Other topics include big-O and amortized analysis, recurrence relations in the analysis of recursive algorithms, numerical algorithms, pattern matching, data integrity, authentication and encryption. Prerequisite: Computer Science 271 and Math 212 with a grade of C or better. (Fall)

       

       

      Computer Science   331                                     3 (crs.)

      Programming Languages

      A study of programming languages. Topics covered include: formal syntactic description, methods of implementation and language features such as recursion, block structure, string processing and list processing.  Specific high level programming languages are studied to demonstrate the use of these language features. Prerequisite: Computer Science 271 with a grade of C or better. (Spring)

       

       

      Computer Science   334                                     1 (crs.)

      Advanced Visual Basic Programming

      The objectives of this course are to provide fast-paced coverage of writing Windows applications in Visual Basic to students who already have substantial programming experience in another language. The course will describe Visual Basic in the context of Microsoft's .NET framework and focus on a number of advanced concepts. These concepts will include, but are not limited to, the event-handling model, object-oriented programming, a wide range of GUI controls, file-handling, database access, ASP, .NET, Web forms and Web controls. Prerequisite: Computer Science 262 with a grade of C or better.

       

       

      Computer Science   335                                     2 (crs.)

      Windows and GUI Programming

      This course examines modern Windows and GUI programming and design techniques, using the Microsoft.Net framework as a basis.  The course will include an overview and history of GUI programming. The C# language will be studied, along with an introduction to back-end database (ADO.Net) connectivity within .Net, and its role in the tiered structure of modern application design.  Web-based forms and Active Server Pages (ASP.Net) will be covered, along with the recent concept of XML Web Services.  Finally, the course will look at aspects of components, deployment and class design within the .Net environment, concluding with other advanced Net techniques such as Reflection. Prerequisite: Concurrent registration in or completion of Computer Science 334 with a grade of C or better.

       

       

      Computer Science   341                                     3 (crs.)

      Software Engineering I

      This course will provide an in-depth study and analysis of at least one large scale software system. Students will analyze, design and partially implement an extensive software project. Case studies will address major system concerns such as specification, classification, inter-relationships, validation and evaluation. Other topics include the use of UML, prototyping, data flow diagrams and CASE tools. Prerequisite: Computer Science 271 with a grade of C or better, Or Junior-level standing and Computer Science 262 with a grade of C or better. (Fall)

       

       

      Computer Science   342                                     3 (crs.)

      Software Engineering II

      Software Engineering II is the second of a two-semester sequence on the topic of modern Software Engineering tools and techniques. Topics covered include Design Patterns, the Unified Modeling Language, (UML), Component-based Software development, Advanced OO Design and Analysis, Refactoring and other techniques such as Extreme Programming. An extensive software development project will allow for practical application of the discussed techniques. Prerequisite: Computer Science 271 and Computer Science 341 each with a grade of C or better. Junior-level standing.

       

       

      Computer Science   346                                     3 (crs.)

      Web Software Development

      An introduction to the tools for developing internet applications. Topics covered include: Internet history, the HyperText Markup Language, graphic images and manipulation, multimedia, programming in the JavaScript and PERL languages. Prerequisite: Computer Science 262 with a grade of C or better.

       

       

      Computer Science   347                                     3 (crs.)

      Introduction to Usability

      This course presents the basic theory and professional views on design and usability, with an emphasis on human-computer interaction in web-based environments. The nature of life, in general, requires understanding of how people think and act. What makes a well-designed door versus a poorly designed door? Understanding the answer scientifically is based on understanding people and usability, not the mechanics of doors. This class will focus on several basic principles that range from defining usability, design, sketches and how to evaluate usability. A case study will be conducted using high-level psychology and visual perception concepts that often pertain to usability. Prerequisites: Computer Science 142 or Computer Science 221, and Math 201 or Math 301 or Econ 210 or Psychology 203, and junior standing.

       

       

      Computer Science   350                                     1 (crs.)

      Ethical Issues in Computing

      A study of the evolution of computing, its implications for society and the ethical issues underlying those implications. This course will focus on reading the current literature regarding these issues and on presenting the pros and cons of such issues in both oral and written fashion. The course is required for all Computer Science majors in the Computer Science Emphasis and is strongly recommended for all Computer Science majors.  Prerequisites: Junior standing and completion of Computer Science 262 with a grade of C or better.

       

       

      Computer Science   361                                     3 (crs.)

      Database Systems

      An introduction to database processing with emphasis on database techniques, design and modeling. Programming projects include implementation of selected database processing methods and the use of database software. Prerequisite: Computer Science 271 with a grade of C or better. (Spring)

       

       

      Computer Science   371                                     3 (crs.)

      Computer Graphics

      An introduction to the mathematics, data structures and algorithms used to create both 2D and 3D graphical output. 2D topics include viewing transformation, clipping, scan conversion, geometric transformations, hierarchical modeling and animation. 3D topics include projections, viewing systems, back face culling, polygon clipping, wireframe images, visible surface algorithms, Phong reflection model, Gouraud and Phong shading techniques, color dithering, color quantization, ray tracing and Bezier patches. Prerequisite: Computer Science 262 and Mathematics 171 or Math 206 each with a grade of C or better.  371/571

       

       

      Computer Science   381                                     3 (crs.)

      Introduction to the Theory of Computing

      An introduction to the basic concepts in the theory of computing. Topics covered will include automata theory, formal languages, Turing machines, the Chomsky Hierarchy and undecidability. Prerequisite: Computer Science 271, and Mathematics 212 or Mathematics 222 all with a grade of C or better.

       

       

      Computer Science   391                                     3 (crs.)

      Data Communication and Computer Networks

      An introductory course which covers the basic concepts in data communication and computer networks. Topics covered will include the nature of data communication, characteristics of computer networks, the ISO-OSI network protocol layers, error detection and correction codes and network performance considerations. Prerequisite: Computer Science 251, Computer Science 271 and Mathematics 212 each with a grade of C or better.  391/591

       

       

      Computer Science   399                                     3 (crs.)

      Internship in Computer Science

      An internship experience with a cooperating organization or corporation to provide on-the-job learning. Internships may be arranged at any time. Prerequisites: 75 credits toward graduation, at least six credits of 300-400 level Computer Science courses. Concurrent registration in Interdisciplinary 208 (Professional Career Skills in Math and Natural Science, one credit ) or completion of Interdisciplinary 208 with a passing grade.

       

       

      Computer Science   421                                     4 (crs.)

      Operating Systems

      An introduction to operating systems concepts. Topics covered include: interrupts, memory allocation, virtual memory techniques, process scheduling and synchronization, deadlocks, resource allocation and file systems. A major programming project will be assigned to provide experience with operating system design. Prerequisite: Computer Science 271 and Mathematics 212 each with a grade of C or better. (Spring)

       

       

      Computer Science   431                                     4 (crs.)

      Compilers

      An introduction to compiler writing techniques for translating a higher level programming source language into a lower level target language. Topics to be covered include: definition of programming languages, lexical and syntactic analysis, low level code generation and optimization, run time systems, and error detection, reporting, and recovery. A major programming project will be assigned to provide experience with compiler design. Prerequisite: Computer Science 251, Computer Science 331 and Mathematics 212 each with a grade of C or better. (Fall)

       

       

      Computer Science   446                                  1-3 (crs.)

      Computer Science Independent Study

      See Independent Study under Course and Academic Advisement information for general course description,  general prerequisites and proper contract from requirements.

       

       

      Computer Science   474                                  1-6 (crs.)

      Honors: Thesis

      Honors thesis projects include any advanced independent endeavor in the student's major field of study e.g., a written thesis, scientific experiment or research project or creative arts exhibit or production. Proposals (attached to Independent Study contract) must show clear promise of honors level work and be approved by a faculty sponsor. Course title for transcript will be 'Honors Thesis.' Completed projects will be announced and presented to interested students and faculty. Prerequisite: University Honors program and junior standing. Maximum of six units (crs.).

       

       

      Computer Science   480                                     3 (crs.)

      Special Topics in Advanced Computer Science

      A topic of current interest in computer science will be investigated by faculty and qualified students. In addition to lectures by faculty, the students will be responsible for research and presentation of selected aspects of the topic. The course may be repeated for credit if the topic is different, and the student has the consent of department. Graduate students will be required to do an extra programming project or paper. Prerequisite: Junior-level standing and consent of the instructor.

       

       

      Computer Science   490                                     3 (crs.)

      Practicum in Computer Science

      A project oriented course that brings together the material learned in previous computer science courses. The student will investigate and solve a problem(s) under the supervision of a faculty member. Prerequisites: 75 credits toward graduation, at least six credits of 300-400 level Computer Science courses. Concurrent registration in Interdisciplinary 208 (Professional Career Skills in Math and Natural Science, one credit) or completion of Interdisciplinary 208 with a passing grade.

       

       

      Computer Science   499                                     0 (crs.)

      Computer Science Assessment

      Students will take the Educational Testing Service Major Field Test (MFT) in Computer Science. Required of all students in the Computer Science Emphasis. Those who take the test will receive a passing grade. Prerequisite: Standing final semester of senior year or department consent. Pass/Fail course.

      Document Actions