Math placement level of 2 or above or any MATH course at the level 100 or above
Do viruses and rumors spread like forest fires? How do ants cooperate? Do spoken languages and biological species evolve in a similar way? Ants, Rumors, and Gridlocks exposes students to introductory aspects of computational science by addressing and answering these and many other questions. Students use and modify virtual experiments preprogrammed in the NetLogo programming language to investigate these topics and others in Social Sciences, Biology, and Environmental Science. No prior knowledge of computer programming or NetLogo is required.
SCI TECH ENGNR
Freshman or Sophomore Standing
Computer Science is a dynamic discipline and students are not typically exposed to its many facets during their first years in college while important foundation work is done. This module aims to change that by presenting several areas of recent interest. In this way, students can form an idea of the scope of the vast and rapidly growing subject and career options, and begin to map out steps toward a potential career path. In this team-taught seminar-style course, two or three different professors will introduce students to their research areas and related topics. Some of the areas represented among the faculty include data science, machine learning, social networks, and parallel computing and others. The course is intended to be taken freshman or sophomore year.
Take MATH-121, MATH-164, or MATH-165 (previous or concurrent)
This is a rigorous introduction to computer science in Java with an emphasis on problem solving, structured programming, object-oriented programming, and graphical user interfaces. Topics include expressions, input/output, control structures, intrinsic data types, classes and methods, iteration, top-down programming, arrays, graphical user interfaces, and elements of UML. Normally offered each semester.
Computer Science II (CSII) is the continuation of Computer Science I. The purpose of CSII is to expand students' understanding of Computer Science and computer programming, assuming that they have the basic knowledge of the Java language. The course introduce another programming language - C - and also focuses on the pure Object-Oriented features of Java, such as inheritance, polymorphism, and exceptions, as well as on simple data structures (lists, stacks, and queues) and algorithms (searching and sorting). By the end of the semester students will be able to develop sizable (several pages long) computer programs in the C and Java languages. Efficient C and Java program development requires an Integrated Development Environment (IDE) - a collection of tools that make it possible to edit, compile, and debug C and Java programs. Our IDE of choice is Eclipse. Eclipse is free and available for many operating systems, including Microsoft Windows (all flavors), Linux, Unix, and Mac OS X.
Includes topics such as strings, stacks, queues, lists, trees, graphs, sorting, searching, hashing, dynamic storage allocation, and analysis of algorithms. Most programming will be done in the C language. Normally offered each semester.
Object-Oriented Programming in C++ is taught using Trolltech's multi-platform Qt library and other open-source libraries and tools. Emphasis is placed on program design and code re-use. Topics include: encapsulation, inheritance and polymorphism, UML, refactoring, parent-child relationships, properties, event-driven programming, test cases, regular expressions, constraints, XML, design patterns, and graphical user interfaces. We deal with some operating system and programming environment issues and also with code packaging. C++ is a very large language, so we do not attempt to cover it all. Instead we work with a carefully selected subset of language elements that permits students to exploit the powerful Qt libraries and write robust, idiomatic, and interesting code. By the end of the course, the student should have a good command of C++, facility using and building libraries, an understanding and appreciation of the design patterns that we covered, and a well-established discipline of refactoring and code reuse. Prerequisite: CMPSC F265 (which may be taken concurrently). Normally offered each semester.
This course deals with the structure and operation of the major hardware components of a computer. Topics include basic logic design, basic datapath construction, basic pipelining, I/O system design, issues in memory hierarchy and network interface design. Normally offered each fall semester.
CMPSC F353 & CMPSC F265 and Working knowledge of C++.
This course presents an overview of modern operating systems, from the points of view of an application developer and of a system developer. It covers process management, scheduling, concurrency management, multi-threading, memory management, and file system organization. Intensive programming assignments in the C language and in an assembly language help students to learn the POSIX application programming interface (API) and the low-level organization of a general-purpose operating system. Normally offered each spring.
CMPSC 265 and MATH 285
This is an introduction to the design and use of database systems --- systems that manage very large amounts of data. Topics covered include Entity-Relationship (E/R) data model, Relational data model, object-oriented model, and the conversion of E/R and relational models. We shall also learn some database languages, both concrete and abstract, including Structured Query Language (SQL), Object Query Language (OQL), relational algebra, etc. We will introduce the semistructured data, such as the popular Extensible Markup Language (XML), and their usage in database systems as well. The course is intended for computer science students who need to have an in-depth understanding of modern database systems. Normally offered each fall semester.
CMPSC F331 and CMPSC F353
This course explores the fundamentals of computer networks, protocols and layering, applications and their implications to everyday networking life. Normally offered in spring.
Junior or Senior standing
This team-taught course is designed to explore career opportunities in Computer Science in depth. This course focuses on career search, the application process, entry, transition and networking for career success. Alternative options such as graduate school will also be explored. Students articulate and reflect on academic work, and co-curricular experiences from the perspective of professionals entering or advancing their careers. The goal of this course is to help students reach their fullest professional potential following graduation.
Permission of Instructor
This course provides an alternative to MATH 165 (Calculus I) for those students who have taken MATH 134 (Calculus for Management and Social Sciences) but who do not have the trigonometric precalculus prerequisite (such as MATH 121) for MATH 165. In other words, the sequence MATH 134 / MATH 164 serves as an alternative to the sequence MATH 121 / MATH 165, and similarly prepares students to take MATH 166 (Calculus II). The course includes a thorough review of trigonometry and other precalculus topics. Aspects of limits and differentiation which students have already seen in MATH 134 are presented briefly, but in most cases with more emphasis on conceptual understanding, and often illustrated using more complicated examples. New calculus topics (i.e. not covered in MATH 134) include one-sided limits, special trigonometric limits, differentiability, derivatives of trigonometric functions and their inverses, derivatives of general inverse functions, logarithmic and implicit differentiation, related rates, L'Hopital's rule, intermediate values theorem, Rolle's theorem, mean values theorem, Newton's method, and linearization. 4 lecture hours plus 1 recitation session each week. Normally offered in fall.
MATH-121 with a minimum grade of C, MATH-075, or MATH level 5
Functions, limits and continuity, squeeze theorem, limits at infinity; instantaneous rate of change, tangent slopes, and the definition of the derivative of a function; power, product, and quotient rules, trig derivatives, chain rule, implicit differentiation; higher order derivatives; derivatives of other transcendental functions (inverse trig functions, exponential and log functions, hyperbolic trig functions); applications of the derivative (implicit differentiation, related rates, optimization, differentials, curve sketching, L'Hopital's rule); anti-derivatives; indefinite integrals; Fundamental Theorem; applications (net change). 4 lecture hours plus 1 recitation session each week. Normally offered each semester.
MATH-164 or MATH-165 with a minimum grade of C
Riemann sums and definite integrals; Fundamental Theorem; applications (areas); integration of exponential functions, trig functions, and inverse trig functions; techniques of integration (substitution, by parts, trig integrals, trig substitution, partial fractions); area, volume, and average value applications; differential equations (separable, exponential growth, linear); improper integrals; infinite sequences and series; convergence tests; power series; Taylor and Maclaurin series (computation, convergence, error estimates, differentiation and integration of Taylor series). 4 lecture hours plus 1 recitation session each week. Normally offered each semester.
Take MATH-121, MATH-164, MATH-165, or MATH-166
Topics covered include: Logic and set theory, basic techniques of proof, relations and functions and their properties (equivalence relations, partial order relations, recurrence relations and their solutions), cardinality, elementary number theory, mathematical induction, counting, Pigeonhole principle, discrete probability. Normally taken second semester freshman year.
MATH-165 or MATH-164 with a grade of C or better
Topics include: random variable and distribution; expectation and variance; special discrete/continuous distributions (uniform, binomial, negative binomial, geometric, hypergeometric, Poisson, normal, and exponential distributions); joint distribution, marginal distribution and conditional distribution; covariance; limit theorems (law of large numbers and central limit theorem); introduction to confidence interval and hypothesis testing; regression analysis. Offered as needed.
Take MATH-185 with a grade of C or better
Topics covered include: Algorithms, growth of functions (big O notation), computational complexity of algorithms, divide-and-conquer algorithms, graphs and their properties (isomorphisms of graphs, Euler and Hamilton paths, shortest path problem, graph coloring) trees (tree traversal, minimum spanning trees). As time allows: matrices and linear transformations.
Note: The BS and BA degrees have an additional science requirement.
Residency Requirement Policy: In the College of Arts and Sciences, a two-course (8 credit) residency requirement must be satisfied for completion of a minor and a four-course (16 credit) residency requirement must be satisfied for the completion of a major.
To complete requirements for honors in the major, a candidate must:
Instructor consent required.
Students specify, design and implement a software system.
Students will be exposed to one or more topics in programming languages, software development, machine learning or other areas of computer science.
CMPSC-F131, CMPSC-F132, 1 CMPSC course at 200, 300 or 400 level, and a major GPA of 3.0 or above. Prior to registration, student must submit credit approval form and gain faculty approval.
Student works in a qualified software development setting to gain practical experience in modern industrial software development. Student will apply lessons learned in the classroom within a supervised, professional development while developing a greater understanding of the job expectations and organizational culture. Internship may be taken for 2-4 academic credit hours, at 4 hours of company work per week per each credit. Additional academic reports will be required. Students may not take more than one internship. CPT internships follow the same policies.
Mathematics and Computer Science are each diverse disciplines that are continually evolving. Mathematics is a study of quantity, structure, space and change that applies to many disciplines. It offers distinctive modes of thought such as examining concrete examples, pattern recognition, conjecturing, modeling, abstraction, then building a numerical foundation or logical argument to support one’s hypothesis. Once proven, such hypotheses then often are applied to solve concrete problems.
Learning goals and objectives reflect the educational outcomes achieved by students through the completion of this program. These transferable skills prepare Suffolk students for success in the workplace, in graduate school, and in their local and global communities.
Learning GoalsGraduates will have...
Learning ObjectivesComputer Science students will be able to…
|A mastery of fundamental computer system principles, demonstrate proficiency in theoretical and practical aspects on various computer science fields, and have built solid foundations to pursue advanced degrees.||
|A deep understanding of designing and developing computing systems and applications, and have strong programming skills and software engineering knowledge. Graduates will be capable of problem analysis, identification and definition, and able to apply mathematical foundations in the modeling and designing of its solutions.||
|Critical thinking skills and be able to design, implement and evaluate computer applications independently and/or with the teams. Graduates will have strong communication skills and function effectively on multidisciplinary teams to achieve the goal.||
|The requisite foundation for lifelong learning and will possess the skills to adapt and thrive in the rapidly changing field of Computer Science.||
|An understanding and appreciation for the professional, social, legal, security, and ethical implications of computing.||