This focus track provides essential training in the foundations of computing, data storage and information processing. With this foundation, graduates of the program can easily adapt to and create new information technologies, new computing paradigms, and new ideas for applying computer systems.
INTRODUCTION TO COMPUTER SCIENCE I
An introduction to problem solving, algorithms and structured programming using a higher-level programming language. The course will focus on skills for developing algorithms, and for writing and debugging programs. Students will learn how and when to use loops, conditionals, and functional abstractions in the context of problems motivated by real world applications. PREREQUISITE(S): MAT 130 or Mathematics Diagnostic Test placement into MAT 140.
INTRODUCTION TO COMPUTER SCIENCE II
An intermediate course in problem solving, algorithms and programming. Programming skills are further strengthened through more complex and larger programming assignments. The assignments will also be used to introduce different Computer Science areas (e.g. a Client/Server application for the Distributed Systems area). Classes and object oriented programming are motivated and introduced. PREREQUISITE(S): CSC241
DATA STRUCTURES IN JAVA I
This is the first course in a two-course sequence on data structures using Java. The course introduces basic Java programming, reviews recursion, introduces asymptotic notations, and focuses mainly on linear data structures including arrays, linked lists and their variants, stacks and queues, and data structures supporting disjoint-set operations. The implementation of the basic operations on each data structure are discussed and analyzed in terms of their efficiency. The applications covered highlight and exploit the unique characteristics of the data structures, and emphasize problem solving and recursive thinking. Prerequisite(s): CSC 242 or CSC 243
DATA STRUCTURES IN JAVA II
This is the second course in a two-course sequence on data structures using Java. The course focuses mainly on the following data structures, their analysis, and their applications: trees (search trees, balanced search trees), heaps, associative arrays, hash tables, and data structures for representing graphs. The implementation of the basic operations on each data structure are discussed and analyzed in terms of their efficiency. The applications discussed highlight and exploit the unique characteristics of the different data structures, and emphasize problem solving and recursive thinking. Prerequisite(s): CSC 300
DISCRETE MATHEMATICS I
Combinatorics, graph theory, propositional logic, singly-quantified statements, operational knowledge of set theory, functions, number systems, methods of direct and indirect proof.
MAT 130 or above or equivalents or placement by test is a prerequisite for this class.
COMPUTER SYSTEMS I
A course on computer systems topics, focusing on machine-level programming and architecture and their relevance for application programming. Information representations, assembly language, C programming, and debuggers, processor architecture. PREREQUISITE: (CSC 383 or CSC 393 or CSC 300) and Math 140
COMPUTER SYSTEMS II
A course on computer systems topics, focusing on operating systems components and their relevance for application programming. Caching, memory hierarchy, performance optimization, linking, processes, virtual memory, dynamic memory allocation, system level I/O. PREREQUISITE: CSC 373