Suffolk Home

Main Menu

  • Undergraduate Catalog
  • Graduate Catalog
  • Law School
  • Archives
  •  
Quick Links
  • A-Z Directory
  • Campus Map
  • My Suffolk / Blackboard
  • Academic Calendar
  • E-Mail
  • Health & Safety
  • Dining
  • Libraries
Page Navigation

Academic Catalogs > Undergraduate Catalog > College of Arts & Sciences > Majors and Minors > Computer Science

Computer Science

The Department of Mathematics and Computer Science offers major and minor programs in computer science. The major program in computer science can prepare students for a wide variety of careers in science and industry, and serves as a firm foundation for graduate study in computer science. The minor program is intended to provide expanded career options for those who prefer to major in another discipline.

 

Course descriptions may be updated periodically to reflect changes since the last published catalog.

Major Requirements

 A student majoring in computer science must successfully complete 36 credits of coursework in computer science plus 20 credits of coursework in mathematics and science distributed as follows:

Computer Science (9 courses, 36 credits)

One 4-credit computer science elective course at or above the 300 level

  • CMPSC-F131 Computer Science I

    Credits:

    4.00

    Description:

    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.

    Type:

    Quantitative Reasoning

  • CMPSC-F132 Computer Science II

    Prerequisites:

    CMPSC F131

    Credits:

    4.00

    Description:

    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.

    Type:

    Quantitative Reasoning

  • CMPSC-F265 Data Structures & Algorithms

    Prerequisites:

    CMPSC F132

    Credits:

    4.00

    Description:

    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.

    Type:

    Quantitative Reasoning

  • CMPSC-F331 Object Oriented Programming

    Prerequisites:

    CMPSC-F265

    Credits:

    4.00

    Description:

    Object-Oriented Programming in C++ is taught using Trolltechs 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.

    Type:

    Quantitative Reasoning

  • CMPSC-F353 Architecture of Computer Systems

    Prerequisites:

    CMPSC F253 and CMPSC F265.

    Credits:

    4.00

    Description:

    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.

    Type:

    Quantitative Reasoning

  • CMPSC-F355 Operating Systems

    Prerequisites:

    CMPSC F353 & CMPSC F265 and Working knowledge of C++.

    Credits:

    4.00

    Description:

    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.

    Type:

    Quantitative Reasoning

  • CMPSC-F363 Intro to Database Systems

    Prerequisites:

    CMPSC 265 and MATH 285

    Credits:

    4.00

    Description:

    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.

    Type:

    Quantitative Reasoning

  • CMPSC-375 Introduction to Networks

    Prerequisites:

    CMPSC F331 & CMPSC 353

    Credits:

    4.00

    Description:

    This course explores the fundamentals of computer networks, protocols and layering, applications and their implications to everyday networking life.

Complementary Major Requirements

Mathematics (3 courses, 12 credits) 

  • MATH-165 Calculus I

    Prerequisites:

    Math Placement score or MATH 121 with a grade of C or better

    Credits:

    4.00

    Description:

    Functions, limits and continuity; 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; applications(curve sketching, limits at infinity, optimization, differentials); other transcendental functions (inverse trig functions, exponential and log functions, hyperbolic trig functions); anti-derivatives; indefinite integrals; applications (net change). 4 lecture hours plus 1 recitation session each week. Normally offered each semester.

  • MATH-255 Probability and Statistics

    Prerequisites:

    MATH-166 with a grade of C or better

    Credits:

    4.00

    Description:

    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.

  • MATH-285 Discrete Mathematics

    Prerequisites:

    MATH-166 with a grade of C or better

    Credits:

    4.00

    Description:

    Topics mostly selected from the following list: Logic and set theory, elementary number theory, relations and functions and their properties (equivalence relations, partial order relations, recurrence relations and their solutions); computational complexity of algorithms (big O notation); graphs and their properties (isomorphisms of graphs, Euler and Hamilton paths, shortest path problem, graph coloring) trees (tree traversal, minimum spanning trees); finite state machines; methods of proof (proof by induction, proof by contradiction). Prerequisite: MATH 220 or permission of instructor. 1 term - 4 credits (4 lecture hours per week). Normally offered at least once each year.

Science Elective, 12 Credits

One additional 4-credit course in Biology, Chemistry, or Physics.
  • PHYS-151 University Physics I

    Prerequisites:

    Take MATH-121 or MATH 165. PHYS L151 concurrently

    Credits:

    3.00

    Description:

    Introduction to the fundamental principles of physics using calculus. The course includes the study of vectors, Newtons laws, rotations, rigid body statics and dynamics, simple harmonic motion, heat and temperature.

    Term:

    Offered Both Fall and Spring

    Type:

    NATURAL SCIENCE FOR BA BFA & BSJ,NATURAL SCIENCE FOR BS

  • PHYS-152 University Physics II

    Prerequisites:

    PHYS 151, PHYS L152 concurrently

    Credits:

    3.00

    Description:

    This calculus based course begins with topics in kinetic theory and the laws of thermodynamics. It then covers electric charge and field, Gauss law, electrical potential and capacitance, electric currents and DC circuits. Next magnetism, electromagnetic induction, Faradays law and AC circuits are discussed. This is followed by Maxwells equations, electromagnetic waves, and properties of light.

    Term:

    Offered Both Fall and Spring

    Type:

    NATURAL SCIENCE FOR BA BFA & BSJ,NATURAL SCIENCE FOR BS

  • PHYS-L151 University Physics Lab I

    Prerequisites:

    PHYS 151 concurrently

    Credits:

    1.00

    Description:

    The laboratory consists of experiments to illustrate the basic concepts studied in the course: measurements, propagation of errors, vectors, Newtons laws, work and energy, momentum, rotations, oscillations, simple harmonic motion, fluid. Knowledge of algebra, trigonometry, differentiation and integration required.

    Term:

    Offered Both Fall and Spring

    Type:

    NATURAL SCIENCE FOR BA BFA & BSJ,NATURAL SCIENCE FOR BS

  • PHYS-L152 University Physics Lab II

    Prerequisites:

    PHYS 151 and L151 and PHYS 152 must be taken concurrently

    Credits:

    1.00

    Description:

    The laboratory consists of experiments to illustrate the basic concepts studied in the course: heat, gas laws, electric forces, field, and potential, DC and AC circuits, magnetic field, electromagnetic induction, Faradays law, optics. Calculus, algebra, trigonometry are required. Error propagation, use of Excel, laboratory notebooks, and formal reports required.

    Term:

    Offered Both Fall and Spring

    Type:

    NATURAL SCIENCE FOR BA BFA & BSJ,NATURAL SCIENCE FOR BS

Suggested Course Sequence

Suggested course sequence for the BS

Freshman Year (8 courses, 32 credits)

Seminar for Freshmen (4)

Freshman Writing (8)

Humanities/History (4)

Ethical and Philosophical Inquiry (4)

  • MATH-165 Calculus I

    Prerequisites:

    Math Placement score or MATH 121 with a grade of C or better

    Credits:

    4.00

    Description:

    Functions, limits and continuity; 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; applications(curve sketching, limits at infinity, optimization, differentials); other transcendental functions (inverse trig functions, exponential and log functions, hyperbolic trig functions); anti-derivatives; indefinite integrals; applications (net change). 4 lecture hours plus 1 recitation session each week. Normally offered each semester.

  • CMPSC-F131 Computer Science I

    Credits:

    4.00

    Description:

    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.

    Type:

    Quantitative Reasoning

  • CMPSC-F132 Computer Science II

    Prerequisites:

    CMPSC F131

    Credits:

    4.00

    Description:

    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.

    Type:

    Quantitative Reasoning

Sophomore Year (8 courses, 32 credits)

Literature (4)

Free elective (4)

Social science elective (4)

  • MATH-285 Discrete Mathematics

    Prerequisites:

    MATH-166 with a grade of C or better

    Credits:

    4.00

    Description:

    Topics mostly selected from the following list: Logic and set theory, elementary number theory, relations and functions and their properties (equivalence relations, partial order relations, recurrence relations and their solutions); computational complexity of algorithms (big O notation); graphs and their properties (isomorphisms of graphs, Euler and Hamilton paths, shortest path problem, graph coloring) trees (tree traversal, minimum spanning trees); finite state machines; methods of proof (proof by induction, proof by contradiction). Prerequisite: MATH 220 or permission of instructor. 1 term - 4 credits (4 lecture hours per week). Normally offered at least once each year.

  • CMPSC-F331 Object Oriented Programming

    Prerequisites:

    CMPSC-F265

    Credits:

    4.00

    Description:

    Object-Oriented Programming in C++ is taught using Trolltechs 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.

    Type:

    Quantitative Reasoning

  • CMPSC-F265 Data Structures & Algorithms

    Prerequisites:

    CMPSC F132

    Credits:

    4.00

    Description:

    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.

    Type:

    Quantitative Reasoning

  • PHYS-151 University Physics I

    Prerequisites:

    Take MATH-121 or MATH 165. PHYS L151 concurrently

    Credits:

    3.00

    Description:

    Introduction to the fundamental principles of physics using calculus. The course includes the study of vectors, Newtons laws, rotations, rigid body statics and dynamics, simple harmonic motion, heat and temperature.

    Term:

    Offered Both Fall and Spring

    Type:

    NATURAL SCIENCE FOR BA BFA & BSJ,NATURAL SCIENCE FOR BS

  • PHYS-152 University Physics II

    Prerequisites:

    PHYS 151, PHYS L152 concurrently

    Credits:

    3.00

    Description:

    This calculus based course begins with topics in kinetic theory and the laws of thermodynamics. It then covers electric charge and field, Gauss law, electrical potential and capacitance, electric currents and DC circuits. Next magnetism, electromagnetic induction, Faradays law and AC circuits are discussed. This is followed by Maxwells equations, electromagnetic waves, and properties of light.

    Term:

    Offered Both Fall and Spring

    Type:

    NATURAL SCIENCE FOR BA BFA & BSJ,NATURAL SCIENCE FOR BS

  • PHYS-L151 University Physics Lab I

    Prerequisites:

    PHYS 151 concurrently

    Credits:

    1.00

    Description:

    The laboratory consists of experiments to illustrate the basic concepts studied in the course: measurements, propagation of errors, vectors, Newtons laws, work and energy, momentum, rotations, oscillations, simple harmonic motion, fluid. Knowledge of algebra, trigonometry, differentiation and integration required.

    Term:

    Offered Both Fall and Spring

    Type:

    NATURAL SCIENCE FOR BA BFA & BSJ,NATURAL SCIENCE FOR BS

  • PHYS-L152 University Physics Lab II

    Prerequisites:

    PHYS 151 and L151 and PHYS 152 must be taken concurrently

    Credits:

    1.00

    Description:

    The laboratory consists of experiments to illustrate the basic concepts studied in the course: heat, gas laws, electric forces, field, and potential, DC and AC circuits, magnetic field, electromagnetic induction, Faradays law, optics. Calculus, algebra, trigonometry are required. Error propagation, use of Excel, laboratory notebooks, and formal reports required.

    Term:

    Offered Both Fall and Spring

    Type:

    NATURAL SCIENCE FOR BA BFA & BSJ,NATURAL SCIENCE FOR BS

Junior Year (8 courses, 32 credits)

Humanities/History (4)

Free Electives (16)

  • MATH-255 Probability and Statistics

    Prerequisites:

    MATH-166 with a grade of C or better

    Credits:

    4.00

    Description:

    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.

  • CMPSC-F363 Intro to Database Systems

    Prerequisites:

    CMPSC 265 and MATH 285

    Credits:

    4.00

    Description:

    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.

    Type:

    Quantitative Reasoning

Senior Year (8 courses, 32 credits)

ECR (4)

Computer science elective (4)

Free Electives (16)

  • CMPSC-F353 Architecture of Computer Systems

    Prerequisites:

    CMPSC F253 and CMPSC F265.

    Credits:

    4.00

    Description:

    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.

    Type:

    Quantitative Reasoning

  • CMPSC-F355 Operating Systems

    Prerequisites:

    CMPSC F353 & CMPSC F265 and Working knowledge of C++.

    Credits:

    4.00

    Description:

    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.

    Type:

    Quantitative Reasoning

Minor Requirements

To qualify for a minor in computer science, a student must successfully complete 20 credits of coursework in computer science, distributed as follows:

  • CMPSC-F131 Computer Science I

    Credits:

    4.00

    Description:

    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.

    Type:

    Quantitative Reasoning

  • CMPSC-F132 Computer Science II

    Prerequisites:

    CMPSC F131

    Credits:

    4.00

    Description:

    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.

    Type:

    Quantitative Reasoning

  • CMPSC-F253 Assembly Language and Computer Structure

    Prerequisites:

    CMPSC F132

    Credits:

    4.00

    Description:

    Introduction to computer architecture and machine language programming, internal representation of data and programs, and assembly language programming. Machine and assembly language implementations of constructs from higher-level languages such as C (including recursion and floating-point arithmetic) are studied.

    Type:

    Quantitative Reasoning

  • CMPSC-F265 Data Structures & Algorithms

    Prerequisites:

    CMPSC F132

    Credits:

    4.00

    Description:

    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.

    Type:

    Quantitative Reasoning

  • CMPSC-F331 Object Oriented Programming

    Prerequisites:

    CMPSC-F265

    Credits:

    4.00

    Description:

    Object-Oriented Programming in C++ is taught using Trolltechs 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.

    Type:

    Quantitative Reasoning

Computer Science Courses

  • CMPSC-375 Introduction to Networks

    Prerequisites:

    CMPSC F331 & CMPSC 353

    Credits:

    4.00

    Description:

    This course explores the fundamentals of computer networks, protocols and layering, applications and their implications to everyday networking life.

  • CMPSC-401 Erlang Programming With Applications

    Prerequisites:

    CMPSC-F132 & Permission of the Instructor

    Credits:

    1.00

    Description:

    Erlang is a general-purpose, concurrent, functional programming language. It is designed to support distributed, fault-tolerant, soft-real-time, non-stop applications in the areas of telecommunications, online video games, social networking, high-performance Web development and databases. This course covers the language foundations, as well as intermediate topics such as distributed communications, client-server systems, and working with ETS tables and Mnesia database. Special attention will be paid to recursive and asynchronous programming, which are the two core principles of the language.

  • CMPSC-510 Computer Science Independent Study

    Credits:

    1.00- 4.00

    Description:

    Guided study on a topic at an advanced level.

    Type:

    Quantitative Reasoning

  • CMPSC-F120 Programming for the World Wide Web

    Credits:

    4.00

    Description:

    This is a hands-on course aimed at non-CS students who want to learn how to build interesting and interactive web pages. We do not use any drag- and-drop software for this purpose. Instead we cover the basics of HTML and PHP and, if time permits, we look at some ways of building web pages that interact with databases. Each student will have, for the duration of the course, an account on a server that permits individuals to have web pages that are visible on the World Wide Web.

    Type:

    Quantitative Reasoning

  • CMPSC-F124 Game Programming

    Credits:

    4.00

    Description:

    This course introduces students to computer game development, including, but not limited to, game programming. We use Game Maker, a framework for personal computers that runs equally well on XP, Vista, and Linux. We learn about the foundational concepts of two-dimensional (flat) games: graphics, sound, objects, actions, rooms, scores, levels, multiplayer support, artificial intelligence, and more. Game Maker has an intuitive interface that makes game development approachable for everyone, including those who have never written a single game or a single computer program. All games created by Game Maker can be saved as standalone applications and can be shared freely with classmates, friends, and family. This is not a course in graphics design, audio editing, or scriptwriting. Students are encouraged to use their creativity and imagination to design games and the correctness of game implementation is stressed throughout the course.

    Type:

    Quantitative Reasoning

  • CMPSC-F125 Introduction to Multimedia Programming

    Credits:

    4.00

    Description:

    This course provides an introduction to multimedia programming: developing programs that create and manipulate digital images and sound. Topics include creating negative and gray-scale images, reversing and splicing sounds, creating sound visualizations, and other related topics. The student will learn some of the concepts and techniques underlying software applications like Photoshop or SoundEdit as well as fundamental concepts underlying all of computing, such as algorithms, abstractions, and how computers represent numbers, text, images, and sound. There is no prerequisite for this course. It is recommended for students with little or no computer programming experience or who are not confident in their programming background. However, the student should be aware that hands-on programming is a central component of the course, embodied in frequent programming assignments.

    Type:

    Quantitative Reasoning

  • CMPSC-F128 Programming II for the World Wide Web

    Credits:

    4.00

    Description:

    This course is a continuation of Programming for the World Wide Web. Students are taught how to turn their home PC or laptop into a web server by downloading and installing XAMPP, a free program that bundles the Apache server, the MySQL database, and the programming language PHP. After learning PHP and MySQL, students are taught AJAX, a technology that improves client-server communication, and jQuery, a library that enhances JavaScript. The course finishes with an introduction to Content Management Systems. As in Web I, there will be several lab exercises, homework assignments, and a final project. Upon completion of this course, students will have been exposed to topics needed to work in industry as web developers. Prerequisite: CMPSC F120.

    Type:

    Quantitative Reasoning

  • CMPSC-F130 Game Programming II

    Prerequisites:

    CMPSC-F124;

    Credits:

    4.00

    Description:

    This course will be a continuation of CMPSC 124 and go more in-depth into coding and the designing of different types of games or applications. Using the Game Maker framework, students will challenge their creativity by developing strategy, isometric, and platform scrolling games, among others. In this class, students will go beyond the drag and drop options of Game Maker and explore the possibilities within the Game Maker Language (GML), creating more complex games. We will make GUIs, program audio engines, and experience the rich learning process of taking a game from inspiration through implementation.

    Type:

    Quantitative Reasoning

  • CMPSC-F131 Computer Science I

    Credits:

    4.00

    Description:

    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.

    Type:

    Quantitative Reasoning

  • CMPSC-F132 Computer Science II

    Prerequisites:

    CMPSC F131

    Credits:

    4.00

    Description:

    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.

    Type:

    Quantitative Reasoning

  • CMPSC-F253 Assembly Language and Computer Structure

    Prerequisites:

    CMPSC F132

    Credits:

    4.00

    Description:

    Introduction to computer architecture and machine language programming, internal representation of data and programs, and assembly language programming. Machine and assembly language implementations of constructs from higher-level languages such as C (including recursion and floating-point arithmetic) are studied.

    Type:

    Quantitative Reasoning

  • CMPSC-F265 Data Structures & Algorithms

    Prerequisites:

    CMPSC F132

    Credits:

    4.00

    Description:

    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.

    Type:

    Quantitative Reasoning

  • CMPSC-F331 Object Oriented Programming

    Prerequisites:

    CMPSC-F265

    Credits:

    4.00

    Description:

    Object-Oriented Programming in C++ is taught using Trolltechs 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.

    Type:

    Quantitative Reasoning

  • CMPSC-F333 Organization of Programming Languages

    Prerequisites:

    CMPSC F253, F265

    Credits:

    4.00

    Description:

    An introduction to functional programming and to the meaning and implementation of various programming language features. The course begins with a brief introduction to the Scheme language, which is then used to write interpreters for small languages that contain features typical of larger, more realistic languages. Normally offered each spring semester.

    Type:

    Quantitative Reasoning

  • CMPSC-F345 Software Engineering

    Credits:

    4.00

    Description:

    This course introduces the fundamental principles of software engineering. Requirement specification and life cycles are emphasized. Topics include requirements analysis and specification, analysis and design, architecture, implementation, testing and quality, configuration management. Professional ethics considerations will be explored and emphasized throughout the course. Prerequisite: CMPSC F265. 1 term - 4 credits. Normally offered each year.

    Type:

    Quantitative Reasoning

  • CMPSC-F353 Architecture of Computer Systems

    Prerequisites:

    CMPSC F253 and CMPSC F265.

    Credits:

    4.00

    Description:

    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.

    Type:

    Quantitative Reasoning

  • CMPSC-F355 Operating Systems

    Prerequisites:

    CMPSC F353 & CMPSC F265 and Working knowledge of C++.

    Credits:

    4.00

    Description:

    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.

    Type:

    Quantitative Reasoning

  • CMPSC-F363 Intro to Database Systems

    Prerequisites:

    CMPSC 265 and MATH 285

    Credits:

    4.00

    Description:

    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.

    Type:

    Quantitative Reasoning

  • CMPSC-F541 Advanced Databases

    Credits:

    4.00

    Description:

    This course is an advanced continuation of Intro to Database Systems (CMPSC F363)

    Type:

    Quantitative Reasoning

  • CMPSC-R120 Programming for WWW Recitation

    Credits:

    0.00

    Description:

    Taken simultaneously with CMPSC 120. Students work with lab instructors to do work that enhances the course understanding. Such work can include practice problems, supervised programming time, as well as question-answer time and group project work. The hybrid version of the recitation: Once every two weeks students meet with an instructor to do work that enhances understanding of the course material. On alternate weeks students do individual programming and reading.

  • CMPSC-R131 Recitation for Intro to Computer Programming

    Prerequisites:

    Must be taken concurrently with CMPSC F131

    Credits:

    0.00

    Description:

    Taken simultaneously with CMPSC 131. The recitation is a hybrid course. Once every two weeks students meet with an instructor to do work that enhances understanding of the course material. Such work can include practice problems and programming, homework problems and sometimes quizzes on a laptop as well as question-answer time and group project work. On alternate weeks students do on line work such as lecture demonstration of additional examples or homework projects.

  • CMPSC-R132 Recitation for Computer Science II

    Prerequisites:

    Must be taken concurrently with CMPSC 132

    Credits:

    0.00

    Description:

    Taken simultaneously with CMPSC 132. The recitation is a hybrid course. Once every two weeks students meet with an instructor to do work that enhances understanding of the course material. Such work can include practice problems and programming, homework problems and sometimes quizzes on a laptop as well as question-answer time and group project work. On alternate weeks students do on line work such as lecture demonstration of additional examples or homework projects.

 
↑ Back to top
  • Policies
  • College of Arts & Sciences
    • Degrees
    • Majors and Minors
      • Computer Science
  • Sawyer Business School
  • A-Z Course Listing
  • University Calendar
Suffolk University
73 Tremont St.
Boston, MA 02108
  • Explore Suffolk
  • Admission & Aid
  • Academics
  • Campus Life
  • Alumni
  • Support Suffolk
  • College of Arts & Sciences
  • Sawyer Business School
  • Suffolk University Law School
  • MySuffolk Portal
  • Law School Portal
  • Tours
  • Maps
  • Suffolk A-Z
  • Libraries & Archives
  • Work at Suffolk
  • Directory
  • Connect

    • Facebook
    • Twitter
    • Youtube
    • Instagram
    • Tumblr
  • Suffolk News
  • Suffolk Social
  • Contact
  • Copyright
  • Disclaimer
  • Privacy
Copyright © 2013 Suffolk University. All rights reserved