The purpose of this course is to help students reflect upon the vexing ethical dilemmas and problems emerging in the information age. Legal issues involving current computer law will be discussed. Students are required to research a current topic in information ethics and present their findings to the class.
This beginning Web development course introduces basic Web design and publishing concepts and best practices. Students will create web pages with HTML5 and will learn to configure text, color, and page layout with Cascading Style Sheets (CSS). They will explore a number of free, cloud-based Web editors. Additional topics include: Web site hosting and promotion, search engine optimization, accessibility, and JaveScript.
Computer science is the study of what can be computed and how to compute it. The principles of computer science have far reaching interest in diverse fields, including: business (coordinating accounts across branches), medicine (optimization of the exchange of organs among pools of donors and recipients), and literature (retrieval of information from ancient texts from new databases). With the common and useful computer language Python, you will be able to: describe the basic principles of how computers work, break complex tasks into manageable components, and model and simulate data for problems that have many or no computable solutions.
This course provides an introduction to computer fundamentals and information systems. Topics include basic information systems components, database systems, decision support systems, and computer security considerations. The use of appropriate software packages will be included as lab assignments.
An introduction to computer science, which include topics such as software engineering, computer architecture, and programming languages. Emphasis on learning the styles, techniques, and methodologies necessary to design and develop readable and efficient programs.
A broadening of foundations for computer science with advanced concepts in software engineering and program development. Topics include an introduction to data structures, analysis of algorithms, and object-oriented design.
An introduction to the discipline of data science, which uses computer-based tools to extract knowledge from data. This course introduces the student to data science practices and basic theory using practical, hands-on examples that explore methods of data manipulation, basic modeling techniques, and data visualization using modern data science programming tools.
This course will acquaint students with applications and the logical structure of database management systems and database processing. Discussion of database systems and design of special projects utilizing different query and other high-level programming languages reinforces the theoretical concepts.
Students will be introduced to the fields of genetics and genomics with an emphasis on understanding how genetic technology affects their everyday lives and how the general public learns about and uses new genetic technology. Students will learn the material through lecture, discussion, case studies, and reading the scientific literature. The course will also feature guest lectures from members of the community involved in big data in medicine. Finally, students will apply their knowledge by analyzing data from the Sanford data collaborative data set and presenting their findings to a general audience.
This course is designed to provide a guide for programmers to develop web applications using popular web programming languages such as JavaScript and Perl. Web pages created using basic HTML are static. We will learn how to use web programming languages to bring web pages to life by adding dynamic content such as scrolling messages, animation, data input forums and interactive quizzes. We will discuss how to maintain and process clients' information using cookies and server-side processing.
This course provides an overview of the C++ programming language.
This course is designed to provide students with an introduction to the organization and architecture of digital computer systems. Topics include number systems, binary arithmetic, Boolean algebra, combinatorial and sequential logic circuits, and computer system components and their interrelationships. This course consists of both a lecture and a lab portion of hands-on hardware manipulation.
This course offers an introduction to machine- and assembly-language programming and how they relate to computer architecture. Students will be provided with an understanding of what the computer is doing at the machine language level. This understanding will enable a better understanding of the features and limitations of all computer facilities, since all systems eventually rest on their underlying hardware.
COSC 235
This course provides an introduction to the analysis and design of business information systems. Concentrates on the analysis phase of systems development. Covers systems development life cycle, feasibility studies, analysis of user requirements, and development of logical system models.
This course investigates various representations for several advanced data structures as well as compares and analyzes various algorithms for manipulating such data structures. Data structures examined include stack, queue, list, tree, and graph. Algorithms for sorting, searching, and memory management will also be examined.
Students on an F-1 visa are eligible to work off campus to provide additional experience so long as the employment relates directly to the student's major area of study. The practical experience gained outside the traditional classroom supplements the theoretical and/or applied knowledge as a part of the student's coursework. The registration process for this course must be completed every term (including summers), as students must have their work authorization reissued each term to ensure continued enrollment. Jobs must be approved and verified by the International Programs Office before work may begin.
This course provides an introduction to fundamental operating systems concepts. Topics include the process model of computation and concurrent processes, inter-process communication and synchronization, process scheduling, deadlock, memory management, paging and segmentation, and file systems.
This course will expand upon the skills learned in Introduction to Data Science to conduct the entire machine learning process, from start to finish, to create and characterize models from data. Students will learn a collection of the most commonly used machine learning algorithms and how to apply them for a particular problem. In addition, students will evaluate the performance of a model and diagnose potential problems with a prediction. All of this will be conducted using a high-level programming language along with the most recognized and current machine learning libraries used in industry.
In a data-rich, data-driven society, it is increasingly important to be able to tell a story with data. This course introduces the student to the fundamentals of advanced data visualization techniques, using both interactive computer visualizations and publication ready charts to display data and communicate model results. Whether your interests are related to business or science, effective, accurate, and ethical communication is essential in today’s data-centric world.
The fundamentals of data structures will be studied from an object-oriented perspective. Data structures discussed will include linked lists, stacks, queues, tress, sets, maps, hash tables, heaps and graphs. Concepts such as genetic types, iterators, file compression and dynamic programming will also be addressed.
This course offers an introduction to the foundations of computing. Topics include different models of computation such as finite automata, push-down automata, Turing Machines, and regular expressions; grammars and parsing techniques; solvable and unsolvable problems; and P and NP complexity classes.
This course provides students with a hands-on experience in applying project management and systems analysis, design and implementation. Students will work with local business professionals in the design and delivery of a project.
This course is designed to teach the full-fledged software development cycle, with a team project utilizing CASE tools. Topics include testing and validation, metrics and complexity, software reliability and fault tolerance.
The objective of this course is to teach the student the basic principles involved in the design and operation of computer networks. Topics include computer network architectures and models, physical media and signaling, data link protocols, medium access control, routing and IP, transport services including TCP/UDP, network applications, local-area and wide-area networks. The course will consist of both a lecture portion and a hands-on laboratory.
Bioinformatics is the application of computer science to biology and medicine but it is also a driver of how questions are generated and answered in modern biology. The magnitude of biological data - from environmental to genomic - is growing exponentially. This course will introduce students to a varied sampling of publicly available biological data and the basic scripting skills to organize, manage, and analyze that data. They will learn about algorithm design for genome and sequence analysis, genetic variation, phylogenetics, structural, and systems biology. Students will conduct independent projects and be introduced to the highly used programming language and statistical environment R and Python.
This course introduces the student to various aspects of artificial intelligence (AI), whose goals are the creation of more useful machines by making them more "intelligent." The course focuses on the fundamentals of machine learning and uses supervised, unsupervised, and reinforcement learning algorithms for classification and prediction tasks. The student will learn to build models from data using regression, logistic regression, classification and regression trees, random forests, ensemble and boosted methods, neural network techniques, and deep learning using convolutional neural networks. These algorithms are then applied to the areas of machine vision, image feature recognition, natural language processing, and general predictive techniques used in the field of Data Science.
Special Topics in Computer Science
Students will experience the major topics, big ideas, and computational thinking practices used by computing professionals to solve problems and create value for others. This course will empower students to develop computational thinking skills while building confidence that prepares them to advance to Computer Science Principles and Computer Science A.
Using Python® as a primary tool, students explore and become inspired by career paths that utilize computing, discover tools that foster creativity and collaboration, and use what they’ve learned to tackle challenges like app development and simulation. This course is endorsed by the College Board, giving students the opportunity to take the AP CSP exam for college credit.
Students explore the tools and concepts of cybersecurity and create solutions that allow people to share computing resources while protecting privacy.
Students collaborate to create original solutions to problems of their own choosing by designing and implementing user interfaces and Web-based databases, as well as creating a game for their friends or an app to serve a real need in the their community. This course is aligned to the AP CSA framework.