This course provides an introduction to computer systems and provides the foundations to Computer Science. Topics include operating systems, parallel and distributed systems, communications networks, and computer architecture. Emphasis is placed on concepts and relationships between subdisciplines of computer systems.
This course explores the concepts underlying modern programming languages, including syntax, functions, expressions, types, polymorphism, assignment, procedures, pointers, encapsulation, classes, and inheritance. The course introduces programming paradigms, such as sequential, concurrent, object-oriented, functional, and logic programming.
This course introduces problem solving and computer programming using the C++ language. Students will analyze problems, design and implement solutions, debug their code, and assess the results. Topics include fundamental programming constructs such as variables, expressions, functions, pointers, and control structures. Emphasis is placed on low-level manipulation of data and the memory management features of the language.
This course introduces algorithms by looking at the real-world problems that motivate them. Students will use a range of design and analysis techniques for problems that arise in computing applications. The algorithm design process is emphasized as well as the role of algorithms in the broader field of computer science. The course incorporates ethics and privacy.
This course is a hands-on introduction to the design of abstract data types. Topics will include how to select and implement data structures for various problems or accomplish tasks. Fundamental data types used in computing such as lists, stacks, queues, priority queues, sets, maps, and binary trees are explored. Python language will be used for coding data structures.
This course introduces software engineering techniques that ensure development of well-designed, reliable, flexible, modular, and verified software and software systems. Development steps are examined, including software planning, specifications, coding, testing and maintenance. Additional topics include software product development, cloud-based software, microservices architecture, code management and review, agile development, and DevOps.
This course explores the fundamental methods, techniques, and software used to design and develop artificial intelligence (AI) systems. Students gain experience with the practical application of AI and its enabling technologies. Included are such topics as the ethics of artificial intelligence, machine learning, language processing, expert systems, and automated planning.
This course provides students the opportunity to work on a realistic computer science project that involves coordinating with the course professor and a project advisor. The application of classroom knowledge and skills in computer science to solve real-world problems is a signature feature of this course.