An introduction to algorithm development and object-oriented programming, with an overview of computers, programming languages, and professional ethics. Programming topics include algorithms and problem-solving, fundamental programming constructs, and object-oriented software design. Students will use word processing and presentation software to collaboratively document and report on programming projects within the course. The course currently uses the Java and Python programming languages.
Computer Science Courses
CSCI 111 - Computer Science I
CSCI 112 - Computer Science II
An introduction to object-oriented programming and algorithm development, with an overview of computers, programming languages, and professional ethics. Programming topics include algorithms and problem-solving, fundamental programming constructs, and object-oriented software design. Students will use word processing, presentation, and social networking software to collaboratively document and report on programming projects within the course. A continuation of CSCI 111, presenting fundamental concepts in computer science and object-oriented programming using the Java and C++ programming languages. Topics include recursion, using application programming interfaces (APIs), database connectivity, software validation, fundamental sorting and searching algorithms, parallel processing, and analysis of algorithmic complexity. Instruction in the use of electronic spreadsheet software to analyze and describe the spatial and temporal complexity of algorithms is a part of the course.
CSCI 111 with a grade of "C" or better
CSCI 118 - Foundations of Data Science
An introduction to fundamental techniques and applications in Data Science and Big Data analytics. Students learn the processes for managing data analytics projects, practices for exploratory data analysis, fundamental statistical and analytical methods, technologies that support exploratory data analysis, and ethical issues encountered in data science and the consequences of data misuse.
CSCI 125 - Introduction to Video Game and Simulation Development
This course introduces students to professional video game and simulation development, including the modern video game industry and its historical development, game analysis and design, game programming technology and practices, graphics and sound technology used in games and simulations, and ethical issues related to video games and simulations. Students will learn about the game development process for both serious and casual games and the roles that various professionals play in that development. They will engage in a semester-long project to design, build, and publish an entry-level computer-based video game using a game development engine.
CSCI 211 - Data Structures and Algorithms
This course covers the theory and application of commonly used data structures and related algorithms for maintaining them. Emphasis is placed on efficiency, appropriate use, and the creation of encapsulated, object-oriented data structures. Students learn to implement iterative and recursive sorting algorithms, variations of linear data structures (linked lists, stacks, queues, and hash tables), variations of non-linear data structures (trees, heaps, and graphs), and the algorithms used process each structure's data. The course uses the Java, C++, and Python programming languages.
CSCI 112 with a grade of "C" or better.
CSCI 213 - Computer Organization
This course introduces the fundamentals of the hardware environment that serves as the basis for the functional components of a digital computer system. Digital logic, machine-level representation of data, instruction sets and addressing modes, I/O devices and their interconnections, processor organization, and memory architectures are among the essential topics of the course. Students further examine assembly-level machine organization to create assembly language programs, implement I/O operations and interrupts, and describe how the instructions of a high-level language maps to assembly/machine instructions.
CSCI 215 - Introduction to Android Development
This course prepares students to enter the mobile computing field. Students begin to prepare for these careers in a variety of entry-level positions such as mobile app developer, software developer, programmer, and mobile game developer. The course builds on a solid foundation of programming skills and design skills and introduces the specific skills needed for developing Android mobile/wireless applications. Students gain an understanding of mobile/wireless technologies and how these technologies are utilized and integrated to meet specific business needs. Current technologies and architectures that provide the network and communications infrastructure for mobile enabled systems are also covered. Students will learn to design mobile user interfaces and apply standards to create intuitive, usable and efficient applications.
CSCI 111 with a grade of "C" or better
CSCI 218 - Statistics for Computing and Data Science
Statistics for Computing and Data Science is a study of fundamental probability and statistical methods as they apply to the fields of computer science, data science, and precursory knowledge for further study in statistical computing. Major topics include descriptive and inferential statistics, basic probability theory, discrete and continuous distributions, and an introduction to estimation and regression. Students use a statistical programming language to apply course concepts, conduct experiments, and perform simulations.
CSCI 221 - Machine Learning
In this introduction to the mathematical foundations of machine learning, statistical models and algorithms for supervised and unsupervised learning will be implemented to perform classification, clustering, and rule learning. This course uses the Python and R programming languages.