Computer Science (COMP)
An overview of mainframe and personal computers. Topics include: application software, the Internet, hardware components and peripheral devices, and data processing.
A survey of current digital technology intended for students not majoring or minoring in Computer Science. Students will gain a better understanding of the digital systems they use every day and learn how to work more efficiently and effectively with computers and computer-based devices.
This course is designed for a student considering a career in a computing field but is accessible to any student wanting to learn more about computer technology. The skills developed in this course will be utilized throughout the computer science curriculum. Topics will include the binary number system, data representation, digital logic, algorithmic problem solving, and programming in both low-level and high-level programming languages. The required preparation is MATH 110 or three years of high school mathematics.
This course is designed for a student considering a career in a computing field but is accessible to any student wanting to learn more about computing technology. The skills developed in this course will be utilized throughout the computer science curriculum. Topics will include the binary number system, data representation, digital logic, algorithmic problem solving, and programming in both low-level and high-level programming languages. The required preparation is MATH 110 or three years of high school mathematics.
An introduction to the techniques of programming. Topics include problem solving methods, program design strategies, selection structures, iteration structures, subprograms, recursion, arrays and lists, sorting and searching, object-oriented design and classes. Students will use a popular high-level programming language to write, compile, debug, and document programs. Hands-on laboratory exercises will be integrated into the course. The required preparation is MATH 110 or three years of high school mathematics.
A continuation of COMP 164 with emphasis on the techniques of programming. Topics include problem solving methods, program design strategies, selection structures, iteration structures, subprograms, recursion, arrays and list, sorting and searching, object-oriented design and classes. Students will use a popular high-level programming language to write, compile, debug, and document programs. Hands-on laboratory exercises will be integrated into the course.
Continuation of COMP 165. Topics include: recursion, lists, dictionaries, sorting and searching, stacks, queues, binary trees, and graphs. Hands-on laboratory exercises will be integrated into the course. Students must enroll in both COMP 166 and COMP 166L.
Continuation of COMP 165. Topics include: recursion, lists, dictionaries, sorting and searching, stacks, queues, binary trees, and graphs. Hands-on laboratory exercises will be integrated into the course. Students must enroll in both COMP 166 and COMP 166L.
On-the-job, supervised experience and study dealing with the applications of computers.
Hands on training on Android programming intended for students NOT majoring in Computer Science. Topics include Android IDE installation and configuration, application structures and resources, XML basics, UI design, Java basics, Intent and event handling, Android design patterns, animation, and video streaming.
An overview of basic computer organization and architecture. Topics include: data presentation, digital logic, combinational and sequential circuit design and analysis, memory system organization, instruction and data path architecture, instruction set architecture and assembly language.
A study of computer science topics not ordinarily covered in established courses.
An introduction to program design using object-oriented methods. Topics include: abstraction, composition, inheritance, polymorphism, UML design, threads and sockets, graphic elements, user interface design, web-programming and event handling.
An introduction to C# programming using Microsoft .Net platform. Topics include: inheritance and polymorphism, delegates and events, streams, LINQ, XML, ADO.net and relational database, ASP.net and WPF application, threads and synchronization.
A study of algorithms. Topics include: analysis and verification techniques, divide and conquer, dynamic programming, greedy, backtracking, and problem complexity.
An introduction to areas of theoretical computer science. Topics include: finite state machines, regular languages, push down automata, context free languages, Turing machines and recursive languages.
An introduction to the principles of computer networking. Topics include: OSI and TCP/IP reference models, data link, network, transport, and application layers, and recent applications of network technology.
An introduction to the organization of programming languages and the run-time behavior of programs. Topics include: syntax and semantics, procedural block-structured languages, functional languages, object-oriented languages, logical languages, case studies of languages such as Pascal, Ada, FORTRAN, COBOL, Java, LISP, and Prolog.
An introduction to the storage and organization of information. Topics include: database management, data mining, intelligent systems, networked databases, and human-computer interaction.
An in depth look at programming on the UNIX/Linux platform. Topics include C/C++ programming, shell scripts, file management, memory management, process and thread management, server management, security, and networking.
An introduction to the major concepts in an operating system, data communication, and modern computer networks. Topics include: processes, concurrency, CPU scheduling, deadlocks and memory management, TCP/IP, ATM, OSI Model, frame relay, Ethernet, congestion control, link-level flow and error control.
An introduction to the major algorithms and techniques for computer graphics. Topics include: windowing, clipping, 3-D techniques, parametric curves and surfaces, hidden lines and surfaces, shading methods, ray casting and tracing.
Students will read, present, and discuss material pertaining to the social and professional issues of Computer Science and technology in general. Topics may include: social context of computing, professional and ethical responsibilities, risks and liabilities of computer-based systems, security issues and intellectual property. Students will also explore possible career opportunities.
A study of Android mobile application development. Topics include Android platform and development tools, application fundamentals, activity, intent, fragment, permission, services, thread & messages, graphics, multi-touch & gesture, networking
This course is designed to introduce the methods, techniques, and utilities for developing apps for iOS (Apple mobile devices).
A study of web programming, an in depth look at technologies that are fundamental to develop web-centric applications. Topics include HTML, Cascading Style Sheets (CSS), JavaScript, web servers, Document Object Model (DOM), JSON, XML, AJAX,PHP, and MySQL.
An introduction to the techniques of Software Engineering. Topics include: software processes, requirements elicitation and specification, analysis, design, development and implementation, validation, testing, and project management.
This courses covers a collection of machine learning models, algorithms, tools and techniques that can be applied to solve data driven decision making problems. Topics include supervised learning, regularization and model selection, neural networks, unsupervised learning and hands on machine learning applications.
An introduction to the basic concepts and technologies of artificial intelligence. Applications of these concepts and technologies are then discussed. Topics include: knowledge representation, search strategies, neural networks, and machine learning.
A study of computer science topics not ordinarily covered in the established courses. Prerequisite: consent of Computer Science Program faculty.
Students will work in teams to design, develop, and implement a significant software or hardware project. Two semester sequence.
Students will work in teams to design, develop, and implement a significant software or hardware project. Two semester sequence.
An independent study of a computer science topic not covered elsewhere.
On-the-job supervised experience and study dealing with applications of computer science.