Academics

Course Catalog

UGRD > CS

Computer Science

  • CS 105  An Introduction to Computer Concepts

    Description:
    This course presents an overview of the role of computers in society: their application and misapplication, their capabilities and limitations. Applications may include artificial intelligence, medical, aerospace and business use of computers. Computer hardware and associated technologies are discussed. Computer programming is taught from a non-mathematical, problem-solving point of view; the course objective is to help students acquire an understanding of the programming process, rather than to develop complex or extended computer programs. This survey course is not part of the computer science major sequence. Students planning to major in computer science should start with CS 110.   More Info

    Offered in:
  • CS 108  An Introduction to Computation with Python

    Description:
    An introduction to some of the basic issues in computation through exercises in Python programming. Students will write relatively simple programs in several application areas, e.g. mathematics, graphics and biology. This is a good course for those who have no programing experience and who want preparation for taking CS 110; students learn about using an editor, program design, implementation, and testing. This is also a good course for scientists who wish to learn a popular scientific scripting language.   More Info

    Offered in:
  • CS 109  Computer Programming for Engineers

    Description:
    An introduction to computer programming for engineering students. This course is not intended for computer science majors. Credit will not be given for both CS 109 and CS 110.   More Info

    Offered in:
  • CS 110  Introduction to Computing

    Description:
    An introduction to computer programming: the concepts involved in use of a higher level language and the program development process. The goal of this course is proficiency in the design and implementation of programs of significant size and complexity. This course is quite demanding because of the length of the programming exercises assigned. This is the first course in the computer science sequence. CS 110 is taught using the programming language Java. Note: Credit toward a UMass Boston degree may be awarded for only one elementary programming course. No credit will be given for CS 110 to a student who has already completed a similar course. For instance, a student who has received the equivalent of CS 110 as transfer credit cannot take CS 110 for credit here. Students who are barred from receiving credit for CS 110, but who are not fully prepared for CS 210, should request permission to take CS 119 (below) as a means of remedying the deficiency.   More Info

    Offered in:
  • CS 114L  Introduction To Java

    Description:
    An introductory course in Java programming that exposes students to the concepts involved in using a higher-level, object-oriented programming language. The course will explain the program development process and give students lots of hands-on experience writing small Java programs. The course serves as a prerequisite to other IT courses. CS 114L and IT 114L are the same course.   More Info

    Offered in:
  • CS 115L  Introduction to Java Part 2

    Description:
    A second course in Java programming that exposes students to the concepts involved in using a higher-level, object-oriented programming language. This course, a continuation of CS 114, covers more advanced Java topics and gives students hands-on experience writing small and medium-size Java programs. This course and CS 110 may not both be taken for credit. CS 115L and IT 115L are the same course.   More Info

    Offered in:
  • CS 119  Computer Language Supplement

    Description:
    This course addresses the dilemma of students who studied the equivalent of CS 110 in a language other than Java, but now need knowledge of Java in order to take CS 210. Such students can, with the permission of the department, register for CS 119 for two credits. They then make arrangements to attend a section of CS 110. They are required to do all the work of regular CS 110 students. However, CS 119 meets no core curriculum requirement and does not count towards any computer science major requirement.   More Info

    Offered in:
  • CS 187SL  Science Gateway Seminar I

    Description:
    This is a two-semester course on technology, in particular information technology (IT) and how it relates to our lives. Students will read both fiction and non-fiction where technology is an issue, and discuss it in written work and orally, both individually and in small groups. The overall goal is to learn about and discuss various facets of information technology and its social implications.   More Info

    Offered in:
    • TBA
  • CS 188SL  Science Gateway Seminar II

    Description:
    This is a two-semester course on technology, in particular information technology (IT) and how it relates to our lives. Students will read both fiction and non-fiction where technology is an issue, and discuss it in written work and orally, both individually and in small groups. The overall goal is to learn about and discuss various facets of information technology and its social implications. CS 188SL and IT 188SL are the same course.   More Info

    Offered in:
    • TBA
  • CS 210L  Intermediate Computing with Data Structures

    Description:
    The design and implementation of computer programs in a high-level language, with emphasis on proper design principles and advanced programming concepts, including dynamic data structures and recursion. The assignments are designed to introduce the student to a variety of topics in computing: data structures and ADTs, Lists, Stacks, Queues, Ordered Lists, Binary Trees, and searching and sorting techniques. The language of instruction is Java. CS 210L and IT 210L are the same course.   More Info

    Offered in:
  • CS 240  Programming in C

    Description:
    C programming for programmers with prior knowledge of some high-level language (e.g., one semester of programming in Java). The course treats C as a machine-level language and as a general-purpose language; it covers number representation, masking, bitwise operations, and memory allocation, as well as more general topics such as dynamic data structures, file I/O, separate compilation, program development tools, and debugging.   More Info

    Offered in:
  • CS 271L  Introduction to Cognitive Science

    Description:
    Cognitive science is an interdisciplinary field fundamentally concerned with furthering our understanding of the development, underlying processes, and implementation of language, perception, problem-solving, learning, memory, and other intelligent capacities. This course offers an introduction to this science for all levels of undergraduate majors in psychology, computer science, biology, and other related fields. CS 271L and PSYCH 271L are the same course.   More Info

    Offered in:
  • CS 285L  Social Issues and Ethics in Computing

    Description:
    This course explores some of the ethical and societal issues that are raised by computing. Topics include privacy, freedom of expression, intellectual property, liability, the effect of computing on social interaction, and human-computer interface issues. Students write an analytical paper on an appropriate topic and also present their findings to the class. CS 285L and IT 285L are the same course.   More Info

    Offered in:
  • CS 310  Advanced Data Structures and Algorithms

    Description:
    A systematic study of the methods of structuring and manipulating data in computing. Abstract data types. The design and analysis of algorithms. Advanced techniques for program development and organization.   More Info

    Offered in:
  • CS 320L  Applied Discrete Mathematics

    Description:
    An introduction to the mathematical structures and concepts used in computing: sets, mathematical induction, ordered sets, Boolean algebras, predicate calculus, trees, relations and lattice theory. Formal and informal theories and corresponding mathematical proofs are taught. CS 320L and MATH 320L are the same course.   More Info

    Offered in:
  • CS 341  Computer Architecture and Organization

    Description:
    Computer hardware concepts and hardware-level programming for C programmers. Topics include digital logic circuits, computer organization of a microprocessor system (i.e., how CPU, memory, and i/o interface chips are interconnected), serial and parallel port interfacing, hardware programming in C and C/assembler, interrupt programming, device drivers. The necessary assembly language is also covered. The course includes a hands-on lab meeting one hour per week.   More Info

    Offered in:
  • CS 410  An Introduction to Software Engineering

    Description:
    This course covers all aspects of the software development process from initial specification to final validation of completed software design. Implementation methodologies are discussed in the context of a major team project, to be chosen according to student and instructor interest. Oral presentations by students are an important part of the course.   More Info

    Offered in:
  • CS 411  Competitive Programming

    Description:
    This is an undergraduate course on time-constrained problem solving in computing. Intended for students who want to excel in programming, this course covers a core set of algorithms, programming techniques, and computing background information that are useful for recognizing, understanding, and solving programming challenges in a time-constrained environment.   More Info

    Offered in:
    • TBA
  • CS 420  An Introduction to the Theory of Computation

    Description:
    This course introduces such theoretical aspects of computing as models of computation, inherent limits on computation, and feasible computation. Topics include definition of computable functions (recursive functions, functions computable by Turing machines, functions computable in a programming language), unsolvability of the halting problem and related problems, the classes P and NP, finite automata, and context-free grammars.   More Info

    Offered in:
  • CS 430  Database Management

    Description:
    Introduction to database systems, including database programming. The course covers relational algebra, SQL, object-relational systems, embedded programming, and basic transaction concepts. It covers database design, both entity-relationship modeling and normalization.   More Info

    Offered in:
  • CS 436  Database Application Development

    Description:
    A study of database applications, that is, software systems that solve a particular real-world problem and hold their data in a relational database. The systems under study will also have a realistic user interface. Students will work in small groups on a real-world project specified and implemented during the term. Topics include system specification from user needs, analysis of dataflow and workflow, object design, database design, and client-server techniques.   More Info

    Offered in:
  • CS 437  Database-Backed Web Sites & Web Services

    Description:
    Today, much programming is web-based. Web based programs serve up information from a Web site in a form that can be either read by a browser or processed by another program. This course introduces the student to the design and implementation of such web-based programs.   More Info

    Offered in:
  • CS 438  Applied Machine Learning

    Description:
    This course presents the practical side of machine learning for applications, such as pattern recognition from images or building predictive classifiers. Topics will include linear models for regression, decision trees, rule based classification, support vector machines, Bayesian networks, and clustering. The emphasis of the course will be on the hands-on application of machine learning to a variety of problems. This course does not assume any prior exposure to machine learning theory or practice.   More Info

    Offered in:
  • CS 443  Mobile Applications

    Description:
    Mobile devices are becoming ubiquitous along with the high demand for mobile applications serving corporations and millions of end-users. In this course, students will learn programming skills for developing mobile applications on the Android platform, which is the fastest growing mobile operating system. Android is open source and includes many libraries that can help developers easily implement rich and complex applications. Students in this course will learn how to create, test,and deploy Android applications. Solid skills of Java programming and application development are necessary for successful completion of this course.   More Info

    Offered in:
  • CS 444  An Introduction to Operating Systems

    Description:
    Description of current operating systems, with focus on one or two in particular. Topics include defining the operating system as distinct from the hardware on one side and software systems on the other; process concepts; memory management; CPU scheduling; device management; file systems; network support.   More Info

    Offered in:
  • CS 446  Introduction to Internetworking

    Description:
    The objective of this course is to provide a practical understanding of computer networks, with emphasis on the Internet. The course starts with an overview of the Internet, its protocol layers, edge and core networks, access networks and physical media. The course then focuses on fundamental design and implementation concepts of the application, transport, and network layers of the Internet.   More Info

    Offered in:
  • CS 447  Introduction to Multimedia Systems

    Description:
    Multimedia applications are ubiquitous, evidenced by their vast presence on the Internet. This course covers the basic fundamentals in the design and development of multimedia systems and applications. Three key elements are discussed at the introductory level: multimedia computing, multimedia databases, and multimedia networking. The topics include, but are not limited to, multimedia processing/compression/representations, multimedia content management and retrieval, and multimedia content streaming and distribution. Students are expected to work in groups to complete a semester-long project developing a system prototype.   More Info

    Offered in:
    • TBA
  • CS 449  Introduction to Computer Security

    Description:
    The course will provide an introduction to the fundamentals of computer security, and will cover both general theoretical aspects as well as applied methods of computer security. The course will address the general concepts of confidentiality, integrity and availability of digital information, and will focus on aspects such as: risks and vulnerabilities; models and policies for access control; program security - buffer overflow attacks, malware, viruses; browser security; authentication and authorization; encryption; and an overview of applied data, operating system and network security (with emphasis on Internet security). The course will also address the aspect of privacy, which is tightly related to security and is becoming increasingly important in today's digital society.   More Info

    Offered in:
  • CS 450  The Structure of Higher Level Languages

    Description:
    The syntax and semantics of higher level languages. Mechanisms for parsing, parameter passing, scoping, dynamic storage allocation, and message passing are modeled by programs written in a suitably high-level language.   More Info

    Offered in:
  • CS 451  Compilers I

    Description:
    This course is an introduction to compiler organization and implementation, including formal specifications and algorithms for lexical and syntactic analysis, internal representation of the source program, semantic analysis, run-time environment issues, and code generation. Participants write a compiler for a reasonably large subset of a contemporary language, targeted to a virtual machine.   More Info

    Offered in:
  • CS 460  Graphics

    Description:
    Topics include segmentation, windows and viewports, clipping, hidden lines, geometric transforms and data structures for memory management and device-independent graphics specifications. The course also considers Raster graphics and the GKS and ACM Core. It covers both the practice of, and the underlying mathematical foundation for, interactive graphics programming. Students need good programming skills and a mastery of linear algebra.   More Info

    Offered in:
  • CS 470  An Introduction to Artificial Intelligence

    Description:
    An introduction to the main techniques of Artificial Intelligence: state-space search methods, semantic networks, theorem-proving and production rule systems. Important applications of these techniques are presented. Students are expected to write programs exemplifying some of techniques taught, using the LISP language.   More Info

    Offered in:
    • TBA
  • CS 478  Independent Study

    Description:
    Work done by a student or group of students under faculty supervision on material not currently offered in a regularly scheduled course. Students wishing to undertake such work must first find a faculty member willing to supervise it; the work to be completed must be approved by the department chairperson.   More Info

    Offered in:
  • CS 480  Special Topics

    Description:
    An advanced course offering intensive study of selected topics in computer science. Course content varies and will be announced prior to registration.   More Info

    Offered in:
    • TBA
  • CS 495  Practicum in Computer Science

    Description:
    This course is intended to enhance academic studies by providing an industrial context for learning new concepts and skills. It will help to prepare the student for the transition from an academic program to eventual employment in the computer industry. This course is not open to graduate students.   More Info

    Offered in:
  • CS 498  Honors Thesis

    Description:
    The design and execution of a significant research project under the guidance of a faculty advisor. Successful completion and oral defense of the thesis is necessary to qualify for Honors in Computer Science. Both the instructor and the project must be chosen and approved prior to the start of the course. Offered every semester.   More Info

    Offered in: