Computer Science, B.S. Requirements

Department Chairperson:Ralph J. Bravaco Office: Stanger hall 304 Phone: 508-565-1077rbavaco@stonehill.edu

The Bachelor of Science program in computer science is designed to prepare students for entry-level positions in the computer industry or graduate study in computer science. The major offers a selection of courses covering software development, design and analysis of computer systems, computer architecture and computer applications.

The B.S. in Computer Science requires the completion of twenty-two courses.

First year

Code Course Credits

CSC 103

Computer Science I

Offered: Fall Semester

An introduction to programming and problem solving using Java. Topics include: Input and Output; Selection; Repetition; Methods; Recursion; Arrays; Classes and Objects.

Course may be applied to the Data Science program.

4

MTH 125

Calculus I     (offered both semesters)

Offered: Fall and Spring Semesters

Calculus of a single variable: functions, limits, derivatives, differentiation rules, applications of derivatives, integrals, techniques of integration, applications of integration, infinite sequences and series, first and second order differential equations. May not receive credit for both MTH 125 and MTH 119.

4

PHY 121

Physics I

Offered: Fall Semester

Brief introduction to vectors and basic concepts of calculus; kinematics; Newton’s laws, force, work and power; conservative forces, potential energy; momentum, collisions; rotational motion, angular momentum, torque; oscillations, simple harmonic motion; gravitation and planetary motion; fluid dynamics; kinetic theory of gases, thermodynamics; heat capacity and transport.

Corequisite(s): MTH 125.

4

CSC 104

Computer Science II

Offered: Spring Semester

Inheritance; Polymorphism; Exceptions; Stream IO; Elementary Data Structures; Graphics; Event Driven Programming.

Prerequisite(s): CSC 103.
Course may be applied to the Data Science program.

4

MTH 126

Calculus II     (offered both semesters)

Offered: Fall and Spring Semesters

Calculus of a single variable: functions, limits, derivatives, differentiation rules, applications of derivatives, integrals, techniques of integration, applications of integration, infinite sequences and series, first and second order differential equations.

Prerequisite(s): Prerequisite for MTH 126: MTH 125.

4

PHY 122

Physics II

Offered: Spring Semester

Brief introduction to the basic concepts of vector calculus, such as line and surface integrals, integral version of Gauss’ theorem and Stokes’ theorem; Coulomb’s law, insulators and metals; electrostatic induction, potential energy; capacitance; currents, resistance, basic circuits, batteries; magnetism and currents; Ampere’s law; motion of free charges in magnetic fields, mass spectroscopy; magnetic induction, Faraday’s law; Maxwell’s equations, electromagnetic waves; geometric and wave optics; light as photons, photoelectric effect.

Prerequisite(s): MTH 125
Corequisite(s): MTH 126.

4

Sophomore year

Code Course Credits

CSC 201

Discrete Mathematics for Computer Science I

Offered: Fall Semester

Discrete mathematical models for applications in computer science. Mathematical induction, graphs, trees, sets, equivalence relations, functions, and partially ordered sets. Asymptotic complexity, Big-O, and Big Omega, recursion and recurrence equations, finite and infinite sums. Predicate logic and first order logic. Basic counting methods, simple combinatorics. Probability and Markov Chains. Linear algebra, applications of linear algebra in computer science.

Prerequisite(s): MTH 126, CSC 104.

3

CSC 211

Data Structures

Offered: Fall Semester

The fundamental methods used to organize data in computer algorithms: stacks, queues, linked lists, trees, graphs, searching, and sorting. Design and analysis of algorithms.

Prerequisite(s): CSC 104.

3

LC 207

Learning Community: Mathematical Experiments in Computer Science

Offered: Fall Semester

Computers provide us with tools to explore mathematics in deeper ways than ever before. They allow empirical testing of mathematical conjectures with elusive proofs. Computers enable us to experimentally analyze algorithms whose performance defies theoretical analysis. This LC focuses on the delicate balance between theory and practice in computer science, revealing the dual and sometimes contradictory nature of computer science as both an engineering and a mathematical discipline.

Corequisite(s): Students must also take CSC 201 and CSC 211 as part of this Learning Community.

3

CSC 202

Discrete Mathematics for Computer Science II

Offered: Spring Semester

Discrete mathematical models for applications in computer science. Mathematical induction, graphs, trees, sets, equivalence relations, functions, and partially ordered sets. Asymptotic complexity, Big-O, and Big Omega, recursion and recurrence equations, finite and infinite sums. Predicate logic and first order logic. Basic counting methods, simple combinatorics. Probability and Markov Chains. Linear algebra, applications of linear algebra in computer science.

Prerequisite(s): MTH 126, CSC 104.

3

CSC 324

Web Programming

Offered: Spring Semester

Programming for the world wide web. Design patterns. Presentation Layer: XHTML, CSS, Javascript. Processing Layer: XSLT, Servlet Frameworks. Data Layer: XML, Document Object Model.

Prerequisite(s): CSC 211 (with a grade of C- or better).

3

MTH 225

Statistics for Science

Offered: Spring Semester

Probability; descriptive statistics; normal distribution, inference; hypothesis testing; analysis of variance; sampling theory; correlation and regression. Examples from the sciences.

Prerequisite(s): MTH 125.
Fulfills the Statistical Reasoning requirement. Course may be applied to the Data Science program.

3

Junior and Senior years

Code Course Credits

CSC 221

Computer Logic and Organization

Offered: Alternate Years: Fall 2017, 2019

The basics of digital logic design. Binary representation of information, Boolean algebra, truth tables, combinatorial logic, Karnaugh maps, memory elements, flip flops, latches, registers, RAM and variations. ALU's, control logic, and finite state machines. The design of a simple computer. Gates and their implementation with transistors and integrated circuits.

Prerequisite(s): CSC 103.
Course may be applied to the Management of Information Systems program.

3

CSC 312

Compiler Design

Offered: Alternate Years: Fall 2017, 2019

Finite automata and lexical analysis, context free grammars, top-down and bottom-up parsing, syntax directed translation, symbol table techniques, runtime storage administration, code generation, optimization.

Prerequisite(s): CSC 211 (with a grade of C- or better).

3

CSC 314

Operating Systems

Offered: Alternate Years: Fall 2016, 2018

Process management, concurrency, virtual storage organization, processor management, auxiliary storage management, operating system performance.

Prerequisite(s): CSC 211 (with a grade of C- or better).

3

CSC 323

Programming Languages

Offered: Alternate Years: Fall 2017, 2019

Formal language concepts including syntax and basic characteristics of grammars. Control structures, data flow, run-time considerations. Scripting, Functional, and Logic languages.

Prerequisite(s): CSC 211 (with a grade of C- or better).

3

CSC 384

Theory of Computation

Offered: Alternate Years: Fall 2016, 2018

Introduction to the general theory of computation. Formal grammars: regular, context-free, and context-sensitive languages. Formal automata: finite-state and pushdown models. Decidability. Turing Machines. The Chomsky hierarchy. NP-Completeness and Complexity Theory.

Prerequisite(s): CSC 201.

3

CSC 304

Computer Architecture

Offered: Alternate Years: Spring 2018, 2020

The basics of computer organization, architecture and assembly language. Instructions sets, address modes, and the run/time stack are explored by programming on a RISC machine. CPU and ALU design, performance analysis, pipelining, cache, virtual memory is examined. Trade-offs between RISC, CISC and advanced architectures is discussed. Assumes basic knowledge of digital logic.

Prerequisite(s): CSC 221.

3

CSC 311

Algorithms and Complexity

Offered: Alternate Years: Spring 2017, 2019

Basic algorithm techniques: recursion, dynamic programming, greedy method branch and bound. Analysis of algorithms: recurrence equations, NP-completeness, asymptotic complexity. Applications include graph and combinatorial algorithms.

Prerequisite(s): CSC 201 and (CSC 211 with a grade of C- or better).

3

CSC 400

Capstone: Software Engineering (WID)

Offered: Spring Semester

Large-scale software project involving teamwork, written reports and oral presentations.

Prerequisite(s): Senior standing in Computer Science.
Fulfills the Writing-in-the-Disciplines requirement. Fulfills the Capstone requirement for Computer Science.

4

Complete Two of the Following Courses

Code Course Credits

MTH 371

Combinatorics and Graph Theory

Offered: Alternate Years: Fall 2015, 2017

Methods for determining, given some well-defined operation, the number of ways it can be performed. Networks of dots and lines.

Prerequisite(s): MTH 270.

3

CSC 325

Database Management Systems

Offered: Alternate Years: Spring 2017, 2019

Data Modeling using the Entity-Relationship approach. The Relational Model and Relational Algebra. SQL. Functional dependencies and normalization. Database design Process. Record storage and primary file organization. Index structures for files. Concurrency control techniques.

Prerequisite(s): CSC 211 (with a grade of C- or better).
Course may be applied to the Data Science and Management of Information Systems programs.

3

CSC 382

Artificial Intelligence

Offered: Alternate Years: Spring 2017, 2019

Introduction to artificial intelligence. Knowledge representation. Natural language processing. Deduction and inference. Expert systems. Computer vision. Robotics. Programming in LISP, PROLOG, or another AI language.

Prerequisite(s): CSC 211 (with a grade of C- or better).

3

CSC 390

Computer Networks

Offered: Alternate Years: Spring 2018, 2020

Computer Networks: Data communication system components, network architecture, layered protocols, traffic analysis, and capacity planning.

Prerequisite(s): CSC 211 (with a grade of C- or better).

3

CSC 393

Numerical Analysis

Offered: Alternate Years: Spring 2018, 2020

For description and semester schedule, see MTH 393.

3

CSC 399

Topics in Computer Science

Offered: Spring Semester

An advanced topic in an area of current interest in computer science.

3

Computer Science Honors

The student who completes the honors requirements in Computer Science below will be awarded a degree "with honors in computer science."

  • Cumulative GPA of 3.50 in all major (CSC) courses; and
  • Completion of an honors thesis on a topic in computer science chosen in consultation with a faculty member who acts as the student's major advisor on the thesis. A committee of three faculty members judges the thesis. The thesis is ordinarily completed during the senior year and the student must earn at least a "B" or better in the thesis.

Contact Professor Ralph Bravaco, Computer Science Department Chair for more information.