CSC - Computer Science Course Descriptions

CSC 140 Survey of Computers

Is a thorough introduction to computers, including hardware and software concepts. Hands-on experience using micro-computer hardware and software tools is included. Elementary skills in using such computer tools as word processing, spreadsheets, database managers, and programming will be developed as time allows. Social issues involving computers will be discussed.

3

CSC 141 Introduction to Computer Science

Serves three main purposes: to develop in students an understanding of the algorithmic formulation of methods for problem solving on a computer; to train students to use at least one procedural computer language; and to acquaint students with the basic properties of computers.

3

CSC 144 Object-Oriented Programming

Serves three main purposes: to develop in the students an understanding of the principles of object-oriented programming, to introduce the student to the algorithmic methods for problem solving on the computer, and to train students to use at least one object-oriented computer language.

3

CSC 145 Data Structures

Introduces data structures such as stacks, queues, lists, trees, and graphs in an object-oriented framework. The material of this course is fundamental in the object-oriented analysis and computer solution of a wide variety of problems.

3

Prerequisites

CSC 144 or permission of instructor.

CSC 155 Computers and Instructional Technology I

Enables the student educator to master the knowledge and skills necessary tobecome an intelligent user of computers in classrooms and laboratories. Course topics include computer-aided instruction; Piaget's and Papert's learning theories in relation to computers; word processing; electronic grade books; databases; spreadsheets; telecommunications; Internet; and an introduction to multimedia. This course is for those seeking teacher licensure. Education majors only.

3

Notes

Laptop required.

CSC 171 Applied Object-Oriented Programming

Serves three main purposes: to develop in the students an understanding of the object-oriented approaches to the algorithmic formulation of methods for problem solving on the computer; to train students to use at least one object-oriented computer language and to prepare students for applied object-oriented programming in their upper level courses.

3

CSC 205 Bioinformatics Programming

Studies the use of scripting languages and software tools for work in bioinformatics. Emphasis will be on data manipulation, file input and output, FASTA files, regular expressions and pattern matching, databases, and web programming.

3

Prerequisites

CSC 141, CSC 144, CSC 171 or CSC 280

CSC 210 Bioinformatics Algorithms

Studies the fundamental algorithms used in bioinformatics. Attention will be paid to specific algorithms (e.g. for measuring DNA similarity and for constructing phylogenic trees), to algorithm design methods (e.g. exact vs. heuristic methods, and dynamic programing) as well as to the computational costs of the various algorithms (Big-O notation, and the difference between polynomial and exponential time algorithms).

3

Prerequisites

CSC 141, CSC 144, CSC 171 or CSC 280

CSC 230 Data Methods in Natural Sciences

This course serves as an introduction to statistical analysis and programming with applications in the natural sciences. Topics include data entry, basic programming, statistical tests such as the t-test, ANOVA, the analysis of survey data, data visualization. Emphasis will be placed on how to select the right tool, use it competently, and interpret the results. 

3

CSC 231 Nursing Informatics

Introduces students to the use of computers in the nursing profession.  Topics include computer fluency in office technology, electronic medical record systems, healthcare and nursing informatics, healthcare documentation, and new technologies.
3

Prerequisites

Nursing Major

CSC 255 Computers and Instructional Technology II

Further prepares student educators for the effective use of computers and technology in the classroom. Through this course, students will learn the basic skills needed to evaluate, design, produce, and utilize multimedia products in educational, organizational, and communications environments.

3

Prerequisites

CSC 155-Education majors only

CSC 256 Networking/Telecommunications

Introduces students to the fundamentals of network and data communication technologies. Course topics include telecommunication media and equipment; data transmission and protocols; corporate, local, and wide area networks; intranets and internets; and network software and management. An introduction to electromagnetic concepts and principles is included to provide a technical foundation for these concepts.
3

Prerequisites

CSC 141 or CSC 144 or junior standing

CSC 261 Database and Information Processing Systems

Studies the design and the implementation of a database. The focus is on SQL and relational databases, but some of the more recent NoSQL approaches will also be discussed.

3

Prerequisites

CSC 141 or CSC 144

CSC 271 Structured Systems Analysis

Studies the system development cycle with emphasis on techniques and tools, system documentation, data flow diagrams, system testing, and implementation. Students are expected to suggest, design, and implement a specific application system.

3

Prerequisites

CSC 171

CSC 280 Numerical Computing

Introduces procedural programming techniques using the programming language FORTRAN. Emphasis is placed on the analysis and design of numerical algorithms, which are useful in business and science. Other topics include file processing and parallel processing.

3

Corequisites

MTH 161

CSC 310 Programing Languages

Examines the basic concepts of programming languages: programming language processors, elementary and structured data types, subprograms, sequence control, data control, storage management, syntax and translation, and programming environments. The student will also study three different programming languages and write a short project in each.

3

Prerequisites

CSC 145

CSC 315 Introduction to Data Science

Data science is an interdisciplinary field which blends mathematics, computer science, and various domain-specific fields (such as bioinformatics). The goal is to extract usable information from large sets of data. This course will be an introduction to data science using R, Python or a similar language. Emphasis will be on exploratory data analysis, visualization, model fitting, classification, and prediction.
3

Prerequisites

Prerequisites: class='sc-courselink' href='/en/2022-2023/undergraduate-catalog/courses/mth-mathematics-course-descriptions/200/mth-204'>MTH 204, class='sc-courselink' href='/en/2022-2023/undergraduate-catalog/courses/mth-mathematics-course-descriptions/400/mth-401'>MTH 401, or class='sc-courselink' href='/en/2022-2023/undergraduate-catalog/courses/eco-economic-course-descriptions/200/eco-212'>ECO 212. Pre or Corequisite: at least one other CSC course.

CSC 320 Evolutionary Algorithms

Studies the use of simulated evolution in computer science and biology. Primary emphasis will be on the use of evolutionary and genetic algorithms as tools for solving combinatorial optimization problems (including problems arising in bioinformatics). Secondary emphasis will be placed on construction of computer models designed to illuminate aspects of evolutionary theory (e.g. the computer evolution of strategies for playing the prisoner's dilemma as a model for the evolution of altruistic traits).

3

Prerequisites

CSC 141, CSC 144, CSC 171, CSC 230 or CSC 280

CSC 330 Cryptography

Covers the fundamental algorithms used in both symmetric key and public key cryptography. Algorithms include AES, Diffie-Hellman, RSA, elliptic curve cryptography, as well as cryptographical hash algorithms. Both mathematical foundations and computer implementations will be discussed during the course.

3

Prerequisites

CSC 141, CSC 144, CSC 171, or CSC 280; and MTH 155 or MTH 220.

Cross Listed Courses

MTH 330

CSC 335 Junior Seminar

Is designed to teach computer science and computer information science majors the skills necessary to learn computer science on their own and communicate their knowledge to others in oral and written form. All students will attend presentations made by senior computer science students. Students will be required to write a short, independently-researched paper and present it to the other students in the junior seminar.

1

Cross Listed Courses

MTH 335

CSC 344 Algorithm and Complexity

Will introduce concepts of algorithm analysis, strategies, time and resource complexity and basic computability.

3

Prerequisites

CSC 145 and MTH 220

CSC 351 Current Topics in Computer Information Science

Is a seminar in information resource management covering such topics as office automation, networks, distributed data processing, data integrity, and decision support systems.

3

Prerequisites

Junior standing or permission of instructor

CSC 352 Software Patterns in Object-Oriented Programming

Serves three main purposes: to develop in the students an understanding of software patterns in an object-oriented framework; to teach the students the 24 most common software patterns; and to train students to use another object-oriented computer language.

3

Prerequisites

CSC 144

CSC 400 Internship

Is a work-experience opportunity with the purpose of expanding education by applying accumulated knowledge in computer science/technology. The availability of internships is limited to upper-level students, normally seniors with a 2.5 quality point average. Students are approved individually by the academic department. A contract can be obtained from the Career Services Office in Starvaggi Hall. Internships count as general electives.

1-6

Prerequisites

Computer science junior or senior standing and permission of the department chair. Internships must be preapproved.

CSC 402 Hardware and Software Systems

Surveys the relationship be- tween hardware architecture and both systems and applications software. The influence of processor and storage system architecture on software design is also studied.

3

Prerequisites

Junior standing or permission of instructor

CSC 403 Operating Systems

Considers the structure of operating systems involving design, implementation, and maintenance. Various types of mainframe, mini, and micro operating systems will be discussed. Some systems programming will be considered.

3

Prerequisites

CSC 404

CSC 404 Computer Architecture with Assembly Language

Is an introduction to the architecture of the microprocessors and Assembly Language. Concepts in digital logic, machine level of data, the assembly level machine organization, memory system organization, interfacing and functional organization are covered. Exercises in Assembly Programming will illustrate some of these concepts.

3

Prerequisites

CSC 145 and MTH 220

CSC 405 Systems Project

Gives students an opportunity to plan and implement a significant project using previously obtained analytic and programming skills. Students will be responsible for the proposal, management, implementation, documentation, and communication of the project. Departmental guidance will be available when necessary.

3

Prerequisites

CSC 271

CSC 410 Introduction to Artificial Intelligence and Expert Systems

Explores Artificial Intelligence (AI) within the context of special languages used in AI, such as LISP and PROLOG. Basic AI techniques presented include those needed to understand and design simple expert systems. As time permits, topics from the following areas may be investigated: natural language processing, planning, machine learning, neural networks, and various forms of reasoning.

3

Prerequisites

CSC 145 and junior standing

CSC 430 Theory of Computing

Examines the underlying mathematical models and theories that are the basis of the modern computer. Topics include grammars, types of languages, types of automata, computability, and complexity.

3

Prerequisites

MTH 220

CSC 434 Senior Thesis

Requires all computer science and computer information science students to write a thesis on an approved topic in computer science. Students must consult closely with a departmental faculty member at each stage in the development of their theses. The thesis will be presented to students in the Junior Seminar.

1