The core requirements cover three course areas in: Development, Design, and Foundations. In the core curriculum there are different courses under each core area so students can tailor their path through the program to meet their educational objectives. Students in the program are required to take one five-credit course from each core area.
In addition to these core areas of study, all students must take a one credit faculty seminar, and a writing assessment exam in their first quarter of enrollment. The Writing Assessment results will place students into (or out of) the technical writing skills courses (0-3 credits). All students must take these core courses to fulfill the breadth of knowledge requirements.
The Development core teaches students essential concepts and skills in building software solutions based on contemporary tools and platforms. Through extensive hands-on assignments, these courses also cover best practices in practical implementation.
- Understand theoretical underpinnings of a software application area
- Discuss existing software designs and implementations that apply the theory
- Research, design, and implement software solutions using contemporary tools and platforms
Students may choose one of the following to meet the Development core requirement:
- CSS 533: Distributed Programming
- CSS 534: Parallel Programming in Grid & Cloud
- CSS 535: High Performance Computing
- CSS 551: Advanced 3D Computer Graphics
- CSS 587: Advanced Topics in Computer Vision
The Design core teaches students essential concepts in software engineering and process including skills in analysis, problem decomposition, and solution modeling through developing applications using design languages. Design courses also teach students to use effective oral and written communication skills, team member skills, and working in a team environment in designing software systems.
- Assess software engineering concepts and processes
- Analyze, decompose, and model systems
- Synthesize new solutions
- Implement applications using design languages
- Apply effective oral/written communication skills and team member skills in designing software systems
Students may choose one of the following to meet the Design core requirement:
- CSS 555: Evaluating Software Design
- CSS 553: Software Architecture
- CSS 577: Secure Software Development
The purpose of the Foundations core is to emphasize the methods of scientific inquiry and emphasize theoretical and conceptual knowledge as it relates to practical/how-to-knowledge. The Foundations core also covers ethical issues that arise in computing and software systems. Courses in the Foundations core provide students with the opportunities to solve problems that emphasize the ability to synthesize and apply theories and techniques in a professional setting. Specifically, students will be solving problems that address the relationship between mathematical and/or scientific foundations and actual practice.
- Describe methods of scientific inquiry
- Analyze the relationship between mathematical and/or scientific foundations and actual practice
- Synthesize and apply theories and techniques in a professional setting
- Understand and assess ethical issues in computing and software systems
- Relate theoretical concepts to practical knowledge
Students may choose one of the following to meet the Foundations core requirement:
- CSS 518: Human Factors in Cybersecurity
- CSS 527: Cryptography and Information Assurance
- CSS 539: Cybersecurity in Emerging Environments
- CSS 565: Research Methods in Software Development
- CSS 566: Software Management
Faculty Research Seminar
All students must take a one-credit CSS 599: Faculty Research Seminar. The seminar gives students the opportunity to interact and learn about current research conducted by the CSS faculty. It is recommended students take this course in their first quarter, so that they are made familiar with current research early in their academic career. The course is 1 credit, and the class typically meets one hour per week.
Graduate-level Technical & Scientific Writing
Graduate-level competency on technical and scientific writing is a critical area of knowledge for students in any master’s degree. In the students first quarter of enrollment they will be given a writing assessment.
Based on the results of the writing assessment, students may place out of any required coursework, or they will place into CSSKL 511: Technical Writing (1 cr) and/or CSSSKL 594: Scientific Writing for Thesis/Project (2 cr), as appropriate. Completion of these courses with a passing grade will show appropriate depth and skills of graduate level writing.
All students will be given a writing assessment study guide and overview of expected knowledge at orientation. The writing assessment is given in the second month of the quarter in which a new student will have enrolled, allowing the student to have time to both orient themselves to the new degree program and study for the assessment exam.
- CSSSKL 511: Technical Writing (1 cr): Students are advised to take CSSSKL 511 when enrolled in the Foundations core course, as the assignments required in the foundations course are used to help teach the goals of the CSSSKL 511.
- CSSKL 594: Scientific Writing for Thesis/Project (2 cr): Students are advised to take CSSKL 510 in their final quarter of study, when the writing of the final thesis or capstone report is taking place. Course goals include helping students draft and edit thesis or capstone reports.