Computer Science
Information
George Thomas, Chair
Department Office: Halsey Science 229
Department Telephone: (920) 424-2068
COMP SCI
Faculty
Furcy
Hillberg
Krohn
Kurek
Lynch
Rogers
Sivasamy
Summers
Thomas
Degrees
- Undergraduate: A major in Computer Science can lead to the degree(s): Bachelor of Arts; Bachelor of Science. A major in Software Technology can lead to the degree: Bachelor of Science.
- Graduate: None
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 teamwork skills effectively in the development of complex software systems.
- Use communication skills to advance within the organizational structure of workplaces that are becoming increasingly diverse and interconnected among different groups including, but not necessarily limited to, those groups based on racial, gender, age, and religious backgrounds.
- Demonstrate strong professional ethics in all of their computing endeavors.
2. The Major(s)
- The Department offers two majors. These are 1) Computer Science, 2) Software Technology. The Department also offers an emphasis in Systems and Theory under the Computer Science major.
3. The Minor(s)
- The Department offers two minors: Computer Science and Web and Mobile Development.
Admission/Graduation Requirements
- To be eligible to declare a Computer Science Major, students must be currently enrolled in or have completed Computer Science 221 Object-Oriented Design and Programming I.
- To be eligible to declare a Software Technology Major, students must be currently enrolled in or have completed Computer Science 221 Object-Oriented Design and Programming I, or have an A.A.S. in Software Developer from an approved technical college.
- 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, or the Software Technology major. 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 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.
The Major(s), with Emphases and/or Options
The requirements for a major in Computer Science consist of the courses listed below. In addition, a Computer Science major can further complete the optional Systems and Theory emphasis.
1. Computer Science Major
- 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 Credits: 52 minimum
-
- Computer Science: Computer Science 212, 221, 251, 262, 271, 321, 331, 341, 399 or 490.
-
- Philosophy: Philosophy 350
- Interdisciplinary Studies: Interdisciplinary Studies 208
- Mathematics/Economics: Mathematics 171 or 206 and Mathematics 201 or 301 or Economics 210
- Electives: 12 credits from: Computer Science: 300, 310, 326, 342, 344, 346, 361, 371, 381 391, 421, 431, 474, 480.
-
A. Systems and Theory 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 ABET, 415 N. Charles Street, Baltimore, MD 21201, telephone: (410) 347-7700. The Computer Science emphasis is open only to students pursuing the B.S. degree.
- Required Credits: 10-12 minimum
- Required Courses:
- Computer Science: Computer Science 310, 326, 381, 421, 431, 499
- Mathematics: Mathematics 171, 172 or 256, 201 or 301
- Electives: Total of 3 credits from the Elective List (see below). These chosen electives must not be one of the required courses for the Computer Science Emphasis. Additionally, the requirements in math and science necessitate completion of Mathematics 171, 172, 301; Computer Science 212, 381; plus an additional 6 credits of natural science courses. In selecting courses for these additional 15 credits, science courses must be chosen to ensure the student meets the general university natural science requirement for a B.S. degree, and Mathematics courses must be numbered 222 or above.
- Elective List: Computer Science: 300, 310, 326, 342, 344, 346, 361, 371, 381 391, 421, 431, 474, 480
2. Software Technology Major
- Focuses on knowledge and skills for web developer and application programmer positions.
-
- Required Credits: 39 minimum
- Required Courses:
- Computer Science: Computer Science 221, 262, 247, 271, 341, 344, 346, 399.
- Information Systems: Information Systems 315, 316, 318 or 432.
- Philosophy: Philosophy 350
- Interdisciplinary Studies: Interdisciplinary Studies 208
-
The Minor(s)
1. Computer Science Minor
- Required Credits: 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, 326, 331, 341, 342, 344, 346, 361, 371, 381, 391, 421, 431, 480, 490
- Required Credits: 22 minimum
- Required Courses:
- Computer Science: Computer Science 125, 142, 221, 247, 262
- Computer Science/Information Systems: Computer Science 344 or Information Systems 433, Computer Science 346 or Information Systems 432
- Computer Science: Computer Science 300, 310, 321, 326, 331, 341, 342, 344, 346, 361, 371, 381, 391, 421, 431, 480, 490
2. Web and Mobile Development Minor
- Required Credits: 22 minimum
- Required Courses:
- Computer Science: Computer Science 125, 142, 221, 247, 262
- Computer Science/Information Systems: Computer Science 344 or Information Systems 433, Computer Science 346 or Information Systems 432
The Certificate(s)
1. Web Design
- This certificate provides students with exposure to web site development, usability design and basic programming. This should be of interest to students in all majors who might need basic programming and web site design skills in their current fields of study.
-
- Required Credits: 9 credits
- Required Courses:
- CS 125: Web Site Development
- CS 142: Introduction to Computer Science and Programming
- CS 247: Introduction to Usability
-
2. Computer Programming
- This certificate equips students with an in-depth understanding of programming fundamentals in a specific programming language. This should be of interest to students in any major, but especially Math, Science and Engineering Technology, who might need programming skills in their current fields of study.
-
- Required Credits: 10-11 credits
- Required Courses:
- CS 221 Object-Oriented Programming and Design I
- CS 262 – Object-Oriented Programming and Design II
- CS 251 – Computer Architecture and Assembly Language or CS 271 – Data Structures
-
Course Offerings
Computer Science 105 | 3 (crs.) |
Computer Applications | |
Principles and use of computer applications including word processors, spreadsheets, and data bases. May also cover other applications such as telecommunications, graphics, statistics, simulations, or CAI. Does not include teaching of programming. | |
Computer Science 120 | 3 (crs.) |
Introduction to E-Commerce | |
This course will familiarize the student with the basics of e-commerce. Major topics include the basics of the internet, entrepreneurship, the creation of a business plan, financing, web site design, and e-business management. Students will develop a background in electronic commerce technology through exploring infrastructure and emerging technical issues in support of e-commerce. | |
Computer Science 125 | 3 (crs.) |
World Wide Web Site Development (XS) | |
This is an introductory course on website design and online branding. It covers elementary aspects of popular web development software packages. You will learn to create complete websites using responsive design and web services. The expectations for prerequisite knowledge are only basic computer skills. | |
Computer Science 125Q3 | 3 (crs.) |
World Wide Web Site Development (XS) | |
This is an introductory course on website design and online branding. It covers elementary aspects of popular web development software packages. You will learn to create complete websites using responsive design and web services. The expectations for prerequisite knowledge are only basic computer skills. | |
Computer Science 142 | 3 (crs.) |
Introduction to Computer Science and Programming | |
In this course, students will be introduced to the science of computing. The history of Computer Science, Elementary computer organization, big ideas in computing, algorithmic problem solving, and introductory programming concepts will be discussed. Programming concepts include data types, expressions, input/output, conditional statements, repetition, data processing, procedures and basic object-oriented principles. Programming concepts will be taught through the use of a specific programming language. The course assumes no previous programming experience. Prerequisites: Math 103 or PBIS 187 or PBIS 188 or PBIS 189 with a grade of C or better, or qualifying for either Mathematics 104 or Mathematics 171 via Math Placement Test. Not open to students who have completed Computer Science 271. (Fall, Spring) | |
Computer Science 212 | 3 (crs.) |
Discrete Structures | |
This course focuses on discrete mathematical structures that are essential to computer scientists. In this course, students will develop their analytical and algorithmic thinking skills through practice with propositional and first-order predicate logic, various proof techniques, mathematical and structural induction, sets, functions, sequences, recurrence relations, algorithm analysis and computational complexity, the basics of counting, and in introduction to discrete probability. Prerequisites: CS 262 AND (Math 171 OR Math 206) with a grade of C or better in all. | |
Computer Science 216 | 4 (crs.) |
Problem Solving and Programming Techniques in C++ | |
Program design using both modular and object-oriented methods. Topics covered to include stream I/O, recursion, multi-dimensional arrays, sorting and searching, pointers and dynamic memory allocation, classes and abstract data types, and operator overloading. | |
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, 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 247 | 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: A grade of C or better in Comp Sci 142 or Comp Sci 221 or Info Sys 318. | |
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, for Computer Science majors, either Completion (with a grade of C or better) of or concurrent enrollment in Computer Science 251. (Fall, Spring) | |
Computer Science 291 | 1 – 3 (crs.) |
Special Topics in Computer Science | |
In-depth treatment of subjects introduced in other COMP SCI courses. Choice of topics depends on student interest, staff and equipment availability. Typical topics include file handling, operating systems, social implications, simulation, management tools, specialized languages, current technology, numerical methods, artificial intelligence and digital logic. | |
Computer Science 299 | 1 – 3 (crs.) |
Intermediate Independent Study | |
Independent study under the supervision of an instructor. The work may, for example, consist of advanced laboratory investigation into a particular topic or library research and writing of a paper on some subject of interest. | |
Computer Science 300 | 3 (crs.) |
Artificial Intelligence | |
This course is an introduction to the field of artificial intelligence. It is a survey of classical search in artificial intelligence and machine learning and an in-depth examination of a specific application area such as robotics, theorem proving, computer vision, natural language processing, etc. Students are expected to demonstrate mastery via computer programs using the techniques of artificial intelligence. Prerequisite: Computer Science 271 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. Prerequisites: A grade of C or better in Computer Science 212 and Computer Science 251. (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: A grade of C or better in Computer Science 212 and Computer Science 271. (Fall) | |
Computer Science 326 | 3 (crs.) |
Computer Security | |
This course is an introduction to computer security with an emphasis on software design principles and technical controls that help secure computer systems. After discussing foundational concepts in information security and assurance (e.g., the CIA triad, authentication, nonrepudiation, threats, attack vectors, risk assessment, security controls, plans, and policies), we will delve into the following topics: principles of secure software design and defensive programming, authorization and access control, and cryptography. Prerequisites: A grade of C or better in Computer Science 212 and Computer Science 271. | |
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 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 344 | 3 (crs.) |
Mobile Application Development | |
An introduction to the tools for developing mobile applications. Topics covered include: history of mobile development, using an appropriate IDE, emulating a mobile device, building a flexible user interface, understanding the application lifecycle, creating and managing multiple threads, creating and using web services and encrypting a completed project. A large mobile application will be created throughout the course. Prerequisites: CS 262 with a grade of C or better. | |
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 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: A grade of C or better in CS 212 and CS 271. | |
Computer Science 371 | 3 (crs.) |
Computer Graphics | |
An introduction to the mathematics, data structures, and algorithms used to create graphical output in the programmable pipeline. Topics include graphics hardware, shaders, transformations in two and three dimensions, three-dimensional viewing, modeling three-dimensional shapes with polygon meshes, hierarchical modeling of three-dimensional objects, lighting and shading techniques, raster algorithms. 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: A grade of C or better in Computer Science 271, and (Computer Science 212 or Mathematics 222). | |
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: A grade of C or better in Computer Science 212, Computer Science 251, and Computer Science 271. 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, and completion of Interdisciplinary 208 (Professional Career Skills in Math and Natural Science, 1 credit ) with a passing grade. | |
Computer Science 421 | 3 (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: A grade of C or better in CS 212, CS 251, and CS 271 (Spring) | |
Computer Science 431 | 3 (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. Prerequisites: Completion of Computer Science 212 with a grade of C or better and completion of or concurrent registration in Computer Science 331. | |
Computer Science 446 | 1 – 3 (crs.) |
Advanced 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 | 3 – 6 (crs.) |
Honors Thesis | |
The Honors Thesis is one of two options offered to Honors students to meet the senior capstone requirement of The Honors College. Students who choose the thesis engage in research as an independent study over two semesters (fall/spring or spring/fall) with the support of a faculty advisor. They decide on a topic in their major or minor, address recent scholarship, develop a prospectus, and produce a substantial work (e.g., a written thesis, scientific experiment or research project, or creative arts exhibit or production). At the end of the term in which the capstone is completed, students give presentations at the Honors Thesis Symposia. Credits are applied to the respective department or unit. Prerequisites: In good standing with The Honors College, prior enrollment in HNRS 175Q and HNRS 275Q, and senior status. | |
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 and completion of Interdisciplinary 208 (Professional Career Skills in Math and Natural Science, 1 credit) 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. | |
LSFDL
Computer Science 105 | 3 (crs.) |
Computer Applications | |
Principles and use of computer applications including word processors, spreadsheets, and data bases. May also cover other applications such as telecommunications, graphics, statistics, simulations, or CAI. Does not include teaching of programming. | |
Computer Science 120 | 3 (crs.) |
Introduction to E-Commerce | |
This course will familiarize the student with the basics of e-commerce. Major topics include the basics of the internet, entrepreneurship, the creation of a business plan, financing, web site design, and e-business management. Students will develop a background in electronic commerce technology through exploring infrastructure and emerging technical issues in support of e-commerce. | |
Computer Science 125 | 3 (crs.) |
World Wide Web Site Development (XS) | |
This is an introductory course on website design and online branding. It covers elementary aspects of popular web development software packages. You will learn to create complete websites using responsive design and web services. The expectations for prerequisite knowledge are only basic computer skills. | |
Computer Science 142 | 3 (crs.) |
Introduction to Computer Science and Programming | |
In this course, students will be introduced to the science of computing. The history of Computer Science, Elementary computer organization, big ideas in computing, algorithmic problem solving, and introductory programming concepts will be discussed. Programming concepts include data types, expressions, input/output, conditional statements, repetition, data processing, procedures and basic object-oriented principles. Programming concepts will be taught through the use of a specific programming language. The course assumes no previous programming experience. Prerequisites: Math 103 or PBIS 187 or PBIS 188 or PBIS 189 with a grade of C or better, or qualifying for either Mathematics 104 or Mathematics 171 via Math Placement Test. Not open to students who have completed Computer Science 271. (Fall, Spring) | |
Computer Science 216 | 4 (crs.) |
Problem Solving and Programming Techniques in C++ | |
Program design using both modular and object-oriented methods. Topics covered to include stream I/O, recursion, multi-dimensional arrays, sorting and searching, pointers and dynamic memory allocation, classes and abstract data types, and operator overloading. | |
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, 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 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, for Computer Science majors, either Completion (with a grade of C or better) of or concurrent enrollment in Computer Science 251. (Fall, Spring) | |
Computer Science 291 | 1 – 3 (crs.) |
Special Topics in Computer Science | |
In-depth treatment of subjects introduced in other COMP SCI courses. Choice of topics depends on student interest, staff and equipment availability. Typical topics include file handling, operating systems, social implications, simulation, management tools, specialized languages, current technology, numerical methods, artificial intelligence and digital logic. | |
Computer Science 299 | 1 – 3 (crs.) |
Intermediate Independent Study | |
Independent study under the supervision of an instructor. The work may, for example, consist of advanced laboratory investigation into a particular topic or library research and writing of a paper on some subject of interest. | |