2023-2024 Graduate Catalog
In the Master of Science in Computer Science program, you will develop the skills and knowledge necessary to analyze, synthesize, and evaluate solutions for real-world problems using techniques from computer science. By staying updated on current practices in systems, networks, tools, algorithms, and advanced topics, you will demonstrate expertise in the field.
One of the key outcomes of this program is to become a self-sufficient learner of computer science. You will learn to assess your own knowledge and skills by asking appropriate questions and seeking additional resources as needed. Creating effective timelines for task progress and identifying necessary resources will enable you to meet the demands of assigned projects. Additionally, you will develop the ability to accurately assess your own work, reflect on your approaches, and adjust strategies for improved outcomes.
Ethics in computing is a fundamental aspect of the program. You will gain knowledge about the ethical considerations in computing and consistently act in an ethical and moral manner throughout your studies and professional work. This includes honoring copyrights and patents, giving proper credit for intellectual property, respecting confidentiality and privacy rights, accessing authorized computing and communication resources, maintaining professional competence, documenting risks or faults in system designs, and taking full responsibility for your work.
Upon graduation, you will be well-prepared for employment in computer science-related fields. The program's comprehensive curriculum and emphasis on practical skills will equip you with the expertise and experience needed to thrive in the industry. Whether you aspire to work in software development, data analysis, network administration, or other computer science roles, this program will provide a solid foundation for your career success.
Graduation Requirements
General Overview
Core Courses (12 credits)
One core course must be taken from each of the following four core areas:
- COSC 510 Advanced Operating Systems or COSC 511 Computer Architecture
- COSC 512 Artificial Intelligence or COSC 513 Data Management Systems
- COSC 514 Networks or COSC 515 Security
- COSC 516 Algorithms or COSC 517 Models of Computation
Advanced courses (3 credits)
Advanced courses build on the core courses and provide more depth in the core areas.
- COSC 521 Automated Theorem Proving
- COSC 522 Data Compression
- COSC 523 Machine Learning
- COSC 524 Natural Language Processing
- COSC 525 String Processing
- COSC 560 Algorithms/Graph Theory
- COSC 521 Automated Theorem Proving
- COSC 522 Data Compression
- COSC 523 Machine Learning
- COSC 524 Natural Language Processing
- COSC 525 String Processing
- COSC 560 Algorithms/Graph Theory
Electives (12-15 credits)
The Computer Science electives must be at the 500 or above level. Up to three (or six if Computing Ethics is waived) credits of 500-level courses may be taken outside the program with departmental approval.
- COSC 530 Web-based Systems
- COSC 531 Parallel and Distributed Computing
- COSC 532 Data Visualization
- COSC 533 Compilers
- COSC 535 Theory of Programming Languages
- CPMA 551 Digital Image Processing
- CPMA 565 Numerical Methods
- CPMA 566 Operations Research
- CPMA 573 Statistical Computing
Internships (0-3 credits)
The program emphasizes gaining practical, real-world experience by applying learned tools and concepts. Students without prior work experience must complete an internship during the summer term, while those with relevant experience may receive credit in its place. To earn credit for prior experience, students submit an academic reflection highlighting acquired skills and create a comprehensive portfolio showcasing related projects.
This requirement ensures students possess both theoretical knowledge and practical expertise, allowing them to apply their computer science skills effectively. Through hands-on experience and project-based learning, the program equips students with the necessary skills and documentation to demonstrate their readiness for professional roles in the field of computer science.