The following courses are offered in Computer Science:
Computer Science
- This course introduces the student to the principles and theories of computation and information processing. The topics include hardware and software organization, data representation, algorithm development and networking principles. Special emphasis will be placed on creation of knowledge from data; the impact of computation on daily life; role of abstraction in solving problems; and implementation of algorithms on a variety of platforms including the Internet.
- This course is an introduction to the analysis of data. Topics include data preparation exploratory data analysis and data visualization. Some of the most commonly used classification and clustering techniques will also be covered. Students will apply these topics to real-world problems including science, business and engineering fields.
- This course introduces the student to the theoretical and practical aspects of computers. The major laboratory experience is the completion of programming projects using Polya's four-step method. These projects have been carefully selected and ordered to provide the student with experience in fundamental control and data structures. All practical programming work is done on microcomputers.
Prerequisite: CSC 101, GIS 101 or Departmental Approval
Course Syllabus - This course is an introduction to the fundamental concepts and terms of computer science, including algorithms, problem solving techniques, data types, concept of loops, conditional statements, modular programming, pointers, arrays, strings, basic file processing, structures and simple classes. Students will use a high-level computer programming language to solve a variety of problems. Prerequisite: MAT 206 and [CSC 101 or departmental approval]
- This course is a continuation of CSC 110. Students are introduced to elementary data structures, string processing, and searching and sorting techniques. Students are expected to complete several complex programs.
Prerequisite: CSC 110, CSC 111 or departmental approval
Course Syllabus - This is a second course in programming which will further develop those skills gained in CSC 111 emphasizing reliability, maintainability, and reusability. Students will be introduced to applications of Pointers, Dynamic memory allocation, Arrays, Abstract data types, Objects, classes, and object-oriented design. Additional programming topics such as Inheritance, Polymorphism, Text Processing, Exception Handling, Recursion and Templates will also be covered. Prerequisite: CSC 111 or departmental approval
- This course covers the fundamentals of computer organization and digital logic. Topics include number systems and codes, Boolean algebra, digital circuits, combinational logic design principles, sequential logic design principles, functional components of computer systems, hardware description language, and assembly language. Students will use computer aided design (CAD) tools for digital logic design, analysis and simulation. Prerequisite: CSC 111 or departmental approval
- This course covers mathematical foundations for computer science. Topics include algorithm analysis, recursion and recurrence, graph theory, trees, Boolean algebra, and modeling computation. Students will be expected to complete projects for each topic involving formal proof techniques, mathematical reasoning and/or programming.
Prerequisite: CSC 110
Corequisite: MAT 206
Course Syllabus - This course covers the computer science applications of fundamental mathematical structures. Topics include logic, set theory, function, relations, algorithm, recursion, recurrence relations, principle of counting, graph theory, trees, and Boolean algebra. Students will be expected to complete projects for each topic involving formal proof techniques, mathematical reasoning and/or programming. Prerequisite: [CSC 111 and MAT 301] or departmental approval
- This course focuses on discrete structures and techniques which have direct applications in computer science. Topics include the use of monoids, groups, finite automata and Turing machines in understanding and implementing simulations, circuitry, and the encoding and decoding of information.
Prerequisites: CSC 110, MAT 056, and MAT 200
Course Syllabus - This course is an introduction to abstract data structures, their use and implementation. Storage allocation techniques, including stacks, queues, and linked lists and recursive programming will be discussed. Students will be expected to complete several programming assignments illustrating the basic concepts.
Prerequisites: CSC 210 and CSC 230
Course Syllabus - This course will introduce students to linear and non-linear data structures, their use and implementation, algorithms, and software engineering techniques. Topics will include: stacks, queues, lined lists, has tables, trees, graphs, searching and sorting techniques. Asymptotic analysis of algorithms and data structures will also be discussed.
Prerequisites: [CSC 211 and CSC 231] or departmental approval - This course covers the fundamentals of software development, including software development life cycle, object-oriented paradigm, design patterns and event-driven programming working in teams. The students are required to develop software applications with graphic user interfaces and databases. Prerequisite: CSC 211 or departmental approval
- The students enhance their knowledge of Assembler Language and machine architecture by writing sophisticated programs utilizing indexing, subroutines and linkage conventions. User and system macros, conditional assembly and file input/output operations are covered.
Prerequisite: CSC 310
Course Syllabus - This course introduces students to complex data structures. Topics include the manipulation and uses of trees, graphs and heaps; the design and analysis of various searching and sorting algorithms and their applications.
Prerequisite: CSC 330
Course Syllabus - This course is an introduction to the principles of interactive computer graphics, including input techniques and devices, display files, and two-and-three-dimensional computer graphics.
Prerequisites: CSC 210 and CSC 230
Course Syllabus - This course presents the mathematical concepts underlying computer networks. The course introduces probability and stochastic process, queuing analysis, and basic graph theory and relates these topics to various layers of the seven layer Open Systems Interface (OSI) organization model of computer networks. Practical laboratory projects provide concrete illustration of theoretical concepts.
Prerequisites: MAT 302
Course Syllabus