Chairperson: Iqbal Ahamed, Ph.D.
Department of Computer Science website


The Department of Computer Science provides its majors with a fluent understanding of our dynamic field. Introductory course work in software development, design, algorithms and data structures sets the stage for more advanced courses in a wide variety of both applied and theoretical subfields of computing.

The Computer Science major (COSC) provides students with an understanding of the foundational principles and techniques used to solve real problems with software. Students practice the skills required to build computer systems that address problems in scientific, engineering and business domains. Most importantly, the major prepares students for long-term success in a rapidly changing field that provides the computer technology underpinning our modern world.

Data Science is the emerging field that extracts and quantifies knowledge from data. The interdisciplinary Data Science major (INDS), offered jointly with the Department of Mathematical and Statistical Sciences, integrates statistics and mathematics with computer science, allowing students to develop the skills necessary to discover and quantify new knowledge from data. Those prepared to integrate advanced technology with modern statistical and mathematical practices have the opportunity to use in data in action to benefit society. Data scientists turn data into knowledge. For more information about the interdisciplinary Data Science major (INDS), visit the College of Arts and Sciences Interdisciplinary Majors and Minors section of the Undergraduate Bulletin.

Bioinformatics, a field that lies at the intersection of biology, statistics and computer science, is focused on the generation and analysis of large biological data sets. The interdisciplinary Bioinformatics major (INBI), offered jointly with the Department of Biological Sciences, provides sufficient depth in both biology and computer science to approach problems in bioinformatics from the perspective of both parent fields of Biology and Computer Science. The program is designed to prepare individuals to use the computational tools of bioinformatics to solve problems or analyze data sets in biological sciences. For more information about the interdisciplinary Bioinformatics major (INBI), visit the College of Arts and Sciences Interdisciplinary Majors and Minors section of the Undergraduate Bulletin.

The Department of Computer Science offers a five-year B.S./M.S. accelerated degree program in which students may obtain both a B.S. degree in Computer Science and the professional master of science (M.S.) degree in Computing in five years. In addition, together with the Graduate School of Management, the Department of Computer Science offers a five-year B.S./M.B.A. accelerated degree program.

Major in Computer Science

The major in computer science consists of nine required COSC courses (31 credit hours) and 12 credit hours of upper-division COSC elective courses, for a total of 43 credit hours of COSC courses. In addition, each student must complete 30 credit hours of mathematics and science, including four required MATH cognate courses (14 credit hours), a natural science elective with laboratory component (3-4 credit hours), and an additional 3 credit hours of upper-division MATH.

Required Computer Science Courses:
COSC 1010Introduction to Software Development4
COSC 1020Object-Oriented Software Design4
COSC 2100Data Structures3
COSC 2200Hardware Systems4
COSC 3100Algorithms3
COSC 3250Operating Systems4
COSC 3410Programming Languages3
COSC 4920Principles of Design3
COSC 4998Senior Design Project3
Electives - Choose 12 credit hours of upper-division COSC courses. 12
Required Mathematics Cognate Courses:
MATH 1450Calculus 14
MATH 1451Calculus 24
MATH 2100Discrete Mathematics3
MATH 3100Linear Algebra and Matrix Theory3
Mathematics Elective - Choose 3 additional credit hours of upper-division MATH. 3
Natural Science Elective with Laboratory Component - Choose at least 3 additional credit hours of BIOL, CHEM or PHYS with laboratory.3
Math/Science Electives - Choose 10 additional credit hours of MATH, BIOL, CHEM or PHYS.10
Total Credit Hours73

Notes:

  • MATH 2100 Discrete Mathematics is the preferred course for a COSC major. For those seeking a double major in MATH or a minor in MATH, MATH 2350 Foundations of Mathematics can be accepted as a substitute.

Typical Program for Computer Science Majors

Freshman
First TermHoursSecond TermHours
COSC 10104COSC 10204
MATH 14504MATH 14514
ENGL 1001 or ESSV1 (MCC)3ENGL 1001 or ESSV1 (MCC)3
Natural Science with Laboratory4PHIL 1001 or THEO 1001 (MCC)3
 15 14
Sophomore
First TermHoursSecond TermHours
COSC 21003COSC 31003
COSC 22004COSC 32504
MATH 21003MATH 31003
CORE 1929 (MCC) or elective3CORE 1929 (MCC) or elective3
PHIL 1001 or THEO 1001 (MCC)3DSCV (MCC)1,23
 16 16
Junior
First TermHoursSecond TermHours
COSC 34103COSC 3xxx/4xxx3
COSC 3xxx/4xxx3MATH 3xxx/4xxx3
Math/Science elective3-4Math/Science elective3-4
DSCV (MCC)1,23DSCV (MCC)1,23
DSCV (MCC)1,23Elective3
 15-16 15-16
Senior
First TermHoursSecond TermHours
COSC 49203COSC 49983
COSC 3xxx/4xxx3COSC 3xxx/4xxx3
CORE 4929 (MCC) or elective3CORE 4929 (MCC) or elective3
Math/Science elective3Electives6
Elective3 
 15 15
Total credit hours: 121-123

Note: Must complete 16 credit hours of Math/Science electives, including at least:

  • 3 credit hours upper-division (3000- or 4000-level) MATH courses,
  • 3 credit hours science course with a laboratory component (BIOL, CHEM or PHYS).

Computer Science B.S./M.S. or M.B.A. Accelerated Degree Programs

The Department of Mathematics, Statistics and Computer Science offers an accelerated degree program (ADP) where eligible students may obtain both their B.S. degree in Computer Science and a professional master of science (M.S.) degree in Computing in five years.

Students are eligible to apply to this program as early as the final semester of their sophomore year. Students wishing to participate in the five-year program must apply and be admitted to the program before their senior year, when they begin to take graduate credits.  Minimal criteria for application to the ADP include a GPA of at least 3.000 in the following: two terms of courses in programming; two terms of courses on data structures and algorithms; and three courses in calculus and discrete mathematics.

For more detailed information, please refer to the Graduate School Bulletin and contact the Department of Mathematics, Statistics and Computer Science.

Together with the Graduate School of Management, the Department of Mathematics, Statistics and Computer Science offers an accelerated degree program which allows students to earn both their B.S. degree in Computer Science and a master of business administration (M.B.A.) all within in a five-year time period.

During the first four years of the program, students complete both their course work requirements for their Computer Science B.S. degree and the necessary prerequisite courses for the M.B.A. degree in the College of Business Administration. In addition, undergraduate students begin their M.B.A. graduate work in their senior year by taking two graduate level courses.

To be considered for admission to the B.S./M.B.A. five-year program, applicants must formally apply to the Graduate School of Management during their junior year at Marquette University. For more detailed information and details of a typical five-year course work plan, please refer to the Graduate School of Management Bulletin and contact the Department of Mathematics, Statistics and Computer Science or the Graduate School of Management.

Minor in Computer Science

The minor in computer science consists of 21 credit hours of computer science courses, including four required COSC courses (15 credit hours) and 6 additional credit hours of upper-division COSC elective courses. In addition, each student must complete a required MATH course (3 credit hours) as listed below:

Required Courses:
COSC 1010Introduction to Software Development4
COSC 1020Object-Oriented Software Design4
COSC 2100Data Structures3
COSC 2200Hardware Systems4
Electives - Choose 6 credit hours of upper-division COSC courses. 6
Required Mathematics Course:
MATH 2100Discrete Mathematics3
Total Credit Hours24

Note:

  • MATH 2100 Discrete Mathematics is the preferred course for a COSC minor. For those seeking a major in MATH or a minor in MATH, MATH 2350 Foundations of Mathematics can be substituted.

Minor in Software Development

The minor in software development consists of 20 credit hours of computer science courses, including four required COSC courses (14 credit hours) and 6 additional credit hours of upper-division COSC elective courses. In addition, each student must complete a required MATH course (3 credit hours) as listed below:

Required Courses:
COSC 1010Introduction to Software Development4
COSC 1020Object-Oriented Software Design4
COSC 2100Data Structures3
COSC 4860Component-Based Software Construction3
Electives - Choose 6 credit hours of upper-division COSC courses. 6
Required Mathematics Course:
MATH 2100Discrete Mathematics3
Total Credit Hours23

Note:

  • MATH 2100 Discrete Mathematics is the preferred course for a Software Development minor. For those seeking a major in MATH or a minor in MATH, MATH 2350 Foundations of Mathematics can be substituted.

Courses

COSC 1000. Introduction to Computer Science. 3 cr. hrs.

Introduction to the science behind today's computerized society. Emphasis placed on understanding the breadth and current status of computer science rather than the development of skills. Topics include machine architectures, operating systems, networking, algorithms and their development, programming languages, artificial intelligence, data representation systems, and the impact computing has on culture and society. Previous computer experience is not required. Prereq: Two years of college preparatory mathematics.

COSC 1010. Introduction to Software Development. 4 cr. hrs.

Introduction to abstraction, algorithmic thinking, simulation and testing for computer-based problem solving. Students learn a high-level programming language and use tools developed by computer scientists and software engineers to solve problems. No prior programming experience is assumed. 3 hrs. lecture, 2 hrs. lab. Prereq: Two years of college preparatory mathematics.

COSC 1020. Object-Oriented Software Design. 4 cr. hrs.

Software development using Java. Topics include classes and interfaces as design patterns, the Java API, current object-oriented design methodologies, an introduction to the Internet and the development of Web applications. Projects involve the development of graphical interfaces and net-centric applications. 3 hrs. lecture, 2 hrs. lab. Prereq: COSC 1010 or advanced placement.

COSC 2100. Data Structures. 3 cr. hrs.

Introduction to algorithm analysis and complexity theory presented in the context of data structures and the algorithms used to manipulate them. Includes traditional abstract data types, such as lists, stacks, queues and trees; as well as concepts of indexing, hashing, and time/space complexity. Prereq: COSC 1010 or EECE 1610.

COSC 2200. Hardware Systems. 4 cr. hrs.

Introduction to computer architecture and machine level programming. Topics include combinational and sequential binary logic, assembly languages, memory management, caching, pipelining, bus architecture, interrupts and I/O processing. 3 hr. lecture, 2 hrs. lab. Prereq: COSC 1020; and MATH 2100 or MATH 2350, which may be taken concurrently.

COSC 3090. Bioinformatics Algorithms. 3 cr. hrs.

Introduction to the science of bioinformatics for computer science and bioinformatics. Exposed to fundamental algorithmic concepts underlying computational molecular biology. Learn how to formulate important biological problems as computational problems and develop algorithms to solve such problems efficiently. Topics include sequence similarity, suffix trees, database searches, genome alignment, multiple sequence alignment, motif finding and population genetics. Prereq: COSC 2100.

COSC 3100. Algorithms. 3 cr. hrs.

Types of algorithms such as divide-and-conquer, greedy, probabilistic, graph traversal, heuristic and parallel algorithms. Computational complexity including time and space complexity, and the P=NP problem. Prereq: COSC 2100; and MATH 2100 or MATH 2350.

COSC 3250. Operating Systems. 4 cr. hrs.

Fundamental concepts of operating systems including process control and scheduling, synchronization, memory management, file systems, device control and the boot process. 3 hrs. lecture, 2 hrs. lab. Credit cannot be earned for both COSC 3250 and COEN 4820. Prereq: COSC 2100 and COSC 2200.

COSC 3410. Programming Languages. 3 cr. hrs.

A comparative study of programming paradigms and representative programming languages. Topics include binding times, control of data, control of execution, execution environment, the role of language as an organizational tool, modularization and the concept and significance of universal programming languages. Prereq: COSC 2100.

COSC 3550. Programming Computer Games. 3 cr. hrs.

Algorithms, data structures and tricks used to program arcade-style video games written in Java. Topics include 2D animation, sprites, interaction, music/sound, 3D worlds, network games. Underlying issues include graphical user interfaces, multi-threaded applications, real-time concerns, use of APIs, and client-server applications. Prereq: COSC 2100.

COSC 3570. Introduction to Data Science. 3 cr. hrs.

An initial course in visualizing and extracting information from data and models. Topics include introduction to Python or R, clustering, dimension reduction, regression and basis functions. Credit will not be given for both COSC 3570 and MATH 3570. Prereq: COSC 1010; MATH 1450; MATH 4710 or MATH 4720, which may be taken concurrently.

COSC 3810. Software Design and Analysis. 3 cr. hrs.

Issues involved in the design and implementation of large software systems. Topics include software lifecycle, software design methodologies, human factors analysis and project management. Prereq: COSC 2100.

COSC 3870. Pedagogy of Computer Science. 1 cr. hr.

Hands-on introduction to the teaching of computer science. Collaborates on planning and giving lessons and laboratory assignments with area school teachers. A service-learning course with a mandatory off-campus component alternating between on-campus instruction and field work in area school classrooms. Topics include elements of teaching introductory computer science, inquiry-based learning and equity in the computer science classroom. Prereq: COSC 1000 or COSC 1010 or EECE 1610.

COSC 3977. Problem Solving - Programming. 1 cr. hr.

Students study and implement computing problems, examine their solutions, apply classical algorithms and formulate strategies for teamwork and problem solving in a programming contest environment. Preparation for the ACM International Collegiate Programming Contest. S/U grade assessment. Prereq: Cons. of instr.

COSC 4010. Teaching Computer Science. 3 cr. hrs.

Historical background, problems, curricular materials and pedagogy in computer science pertinent to the needs of secondary school teachers. Prereq: EDUC 2227 or equiv.

COSC 4290. Real-Time and Embedded Systems. 3 cr. hrs.

Focuses on event-driven programming, real-time scheduling, and synchronization; worst-case execution time analysis and deadline analysis; real-time operating systems and real-time programming languages. Prereq: COSC 3250 or COEN 4820 or equivalent system programming experience.

COSC 4300. Networks and Internets. 3 cr. hrs.

Focuses on data communication and network protocols, including the TCP/IP protocol suite; Internet transport, packet switching and routing; network programming and network applications. May consist of a 3 hr. lec. or a 2 hr. lec. and 2 hr. lab. Prereq: COSC 3250 or equivalent system programming experience.

COSC 4360. Computer Security. 3 cr. hrs.

Fundamentals of computer security, including cryptography, access control, security policy models, attacks, surveillance, privacy, and forensics. Draws examples of security vulnerabilities and defenses from many areas of computer science such as operating systems, databases, networks and software engineering. Prereq: COSC 3250 or COEN 4820, which may be taken concurrently.

COSC 4370. Internet of Things (IoT). 3 cr. hrs.

Topics include the definition of IoT, trends in the adoption of IoT, the importance of the IoT in society, the current components of typical IoT devices and trends for the future. Focuses on IoT design considerations, constraints, and interfacing between the physical world and the device. Students are presented with design trade-offs between hardware and software, technologies behind the Internet of Things – RFID, NFC, Wireless networks, WSN, RTLS, GPS, agents, multiagent systems, IoT in retail, NFC applications for the IoT, and IoT in healthcare. Prereq: COSC 2100.

COSC 4400. Compiler Construction. 3 cr. hrs.

Lexical analysis, parsing, code generation and optimization. Includes theoretical foundations and the practical concerns of implementation. Prereq: COSC 3410.

COSC 4500. Advanced Data Science. 3 cr. hrs.

Focuses on developing data products using the Javascript/D3 framework by combining concepts from human-computer interaction, visualization and design. Also focuses on model visualization, interpretation, A/B testing and design thinking. Prereq: COSC 3570.

COSC 4600. Fundamentals of Artificial Intelligence. 3 cr. hrs.

An introduction to the broad field of artificial intelligence. Topics include problem solving by searching, knowledge representation, reasoning, planning, decision making, learning, perception and language processing. Prereq: COSC 2100 and COSC 2200.

COSC 4610. Data Mining. 3 cr. hrs.

Techniques for extracting and evaluating patterns from large databases. Introduction to knowledge discovery process. Fundamental tasks including classification, prediction, clustering, association analysis, summarization and discrimination. Basic techniques including decision trees, neural networks, statistics, partitional clustering and hierarchical clustering. Prereq: COSC 2100.

COSC 4800. Principles of Database Systems. 3 cr. hrs.

Topics include database concepts and architecture, data modeling, formal query languages such as relational algebra, commercial query language SQL, database access from application programs and a brief examination of advanced concepts including transactions, distributed databases, security and XML. Prereq: COSC 2100.

COSC 4820. Ethical and Social Implications of Data. 3 cr. hrs.

An introduction to the ethical and social consequences of collecting, curating and analyzing data in academia, public and private contexts. A socio-technical stance is taken in unpacking issues of algorithmic biases, fairness, transparency and accountability. Prereq: COSC 2100 or COSC 3570.

COSC 4860. Component-Based Software Construction. 3 cr. hrs.

Introduction to software components in the context of the object-oriented paradigm. Component development, component selection and adaptation/customization, component deployment and assembly/integration, and system architecture. Industry standards such as JavaBeans, CORBA Component Model, and Microsoft COM/DOM/COM+. Prereq: COSC 2100; and MATH 2100 or MATH 2350.

COSC 4920. Principles of Design. 3 cr. hrs.

Fundamentals of structured software design and development applied in a multi-disciplinary, team-based project environment. Teams create project definition and specification based on user needs. Activities focus on software lifecycle, design methodologies, human factor analysis, teamwork, customer interaction, project management and effective communication. Work culminates in a technically and economically viable proposal for future development. Course specifies and designs a project for implementation in COSC 4998. Prereq: COSC 3100, COSC 3250 and MATH 1451; and MATH 2100 or MATH 2350.

COSC 4931. Topics in Computer Science. 1-3 cr. hrs.

Topics selected from one of the various branches of computer science. Specific topics to be announced in the Schedule of Classes.

COSC 4953. Undergraduate Seminar. 3 cr. hrs.

Designed to initiate a selected group of qualified undergraduates into the techniques and discipline of scholarly research by concentrated work in a restricted field. Emphasis on critical reading and analysis of sources. Specific topics to be announced in the Schedule of Classes. Prereq: Cons. of dept. ch.

COSC 4987. Co-op Work Period. 0 cr. hrs.

Students work full-time during fall or spring terms in a cooperative education program work assignment approved in advance by the department. Responsibilities include relevant academic content. Grading and credits are accomplished by registering for COSC 4988 during the following term. Fee. SNC/UNC grade assessment. Prereq: Jr. stndg.

COSC 4988. Co-op Grading Period. 1 cr. hr.

Grading for preceding co-op work assignment is accomplished by completing a report on the work assignment, a report on academic material related to the work assignment and other materials as required. Grading is completed during the school term following the work assignment. May be taken more than once, but a maximum of 2 credits may be counted toward a major in the department. Prereq: Jr. stndg. and COSC 4987.

COSC 4995. Independent Study in Computer Science. 1-3 cr. hrs.

Directed reading and/or research in computer science under a member of the faculty. Prereq: Cons. of dept. ch.

COSC 4998. Senior Design Project. 3 cr. hrs.

Given initial design and project specification, focus is on detailed software design, prototyping and testing of design concepts in a realistic multi-disciplinary team environment. Team-based activities result in implementation of a software system in support of a project and culminate in a working prototype satisfying user needs and software specification. Final report documents prototype details and verifies resulting project meets needs and specifications. Course implements project specified and designed in COSC 4920. Prereq: COSC 3100, COSC 3250, MATH 1451; and MATH 2100 or MATH 2350.

COSC 4999. Senior Thesis. 2 cr. hrs.

Preparation of a thesis by approved students under the direction of an adviser from the faculty. Prereq: Cons. of dept. ch.