The education that undergraduates in computer science (CS) receive must prepare them adequately for the workforce in a more holistic way than simply conveying technical facts. Indeed, soft skills (e.g., teamwork, verbal and written communication, time management, problem solving, flexibility) and personal attributes (risk tolerance, collegiality, patience, work ethic, identification of opportunity, sense of social responsibility, appreciation of diversity) play a critical role in the workplace.
Successfully applying technical knowledge in practice often requires an ability to tolerate ambiguity and to negotiate and work well with others from different backgrounds and disciplines. These overarching considerations are important for promoting successful professional practice in a variety of career paths. Students will enhance soft skills and personal attributes both through the general college experience and specific curricula.
The four-year baccalaureate program offers courses within all areas of STEM disciplines within the Ursuline Educational Tradition; it covers most key concepts and technical knowledge within the field; in addition, the program is designed to foster the development of soft skills and personal attributes.
CS110: Programming I
This is an entry-level programming course (no prior programming experience needed) that introduces programming using a high-level language such as C++. Students will be taught how to design, code, debug, and document programs using structured techniques and good programming styles. Students will be able to sit the C Programming Language Certified Associate (CLA) certification exam.
CS 111: Programming II
This course introduces the principles and practices of Object Oriented Programming, using at least two OOP languages such as C++ and JAVA. The course also continues to build on the students’ experience with control structures (i.e., selection, iteration, and recursion), data types (e.g. arrays, strings, pointers, and dynamic structures), and fundamental algorithms for operations such as sorting and searching. Students will be able to sit the C++ Certified Associate Programmer (CPA) exam.
CS 210: Data Structures and Algorithms
This course investigates the development and use of basic data structures and algorithms, which are used as tools in designing computer solutions to problems. It covers topics such as arrays, stacks, queues, trees, sorting, searching, and graphs. Students will become familiar with the specification, usage, implementation, and analysis of these data structures and algorithms.
CS 220: Computers Ethics
This course examines the ethical issues that arise as a result of the increasing use of computers, and the responsibilities of those who work with computers either as computer science professionals or end users. The course stresses the ways in which computers challenge traditional ethical and philosophical concepts, and the way they raise old issues in a new way. The aim of the course is to study the basis for ethical decision-making and the methodology for reaching ethical decisions concerning computing matters so that students will be able to think critically, arguing for and/or against a particular approach or idea.
CS 320: Operating Systems
This course looks at the internal operations and fundamental principles of modern operating systems. Students learn how an operating system manages both system resources and asynchronous concurrent events. Topics include processes/threads, CPU scheduling, synchronization, deadlocks, memory management, virtual memory, file systems, I/O systems, protection, and security. Students also learn how to operate in different operating systems such as Linux and Mac to understand basic user-level skills in order to use of advanced operating system features.
CS 370: Data Communication and Networking
This course introduces fundamental principles of computer communications and provides an overview of the design and implementation of computer communication networks by looking at different network architectures and design principles, along with procedures and rules involved in the communication process as well as the software that controls computers communication. The course also examines different communication technologies and protocols suites such as TCP/IP.
CS 385: Computer Organization and Architecture
This course is a follow-up to CS101 that overviewed the architecture and organization of a computer. It helps students understand the basic operation of computing hardware, how it works and interfaces to software. As a result, students reach a high-level understanding of the role played by compilers, assemblers, instruction sets, and hardware. The course will also introduce students to system-level programming, which helps students in debugging programs written in high-level languages.
CS 497: Senior Seminar I
This course is designed as the first part of the capstone research experience for students, integrating all of the courses that students have taken, including both general education and major courses. Students are required to do in-class presentations by reading current research or survey papers and synthesizing and applying their computer science knowledge in order to solve a substantial real-world problem. This results in a research proposal.
CS 498: Senior Seminar II
This completes the senior seminar for Computer Science majors and must be taken in conjunction with CS499 – Senior Project. Students are required to do in-class presentations by reading current research or survey papers and providing a forum for discussion of senior project expectations, development and progress. The course culminates in the creation of a product report for the software created in CS499 – Senior Project or a written paper (the thesis).
CS 499: Senior Project
This senior course allows students to complete a capstone project and serves as a culmination of their studies within the major. The project entails the implementation of the research proposal created in CS498 – Senior Seminar I. Students work typically through teams designing, implementing, and testing the solution to the specific problem. Each team is supervised by a designated faculty. The senior project concludes with the submission of a product (i.e. software, documentation) or a written paper (the thesis) and a public presentation.