skip to content | home | umb a-z
UMB logo
Admissions > Undergraduate Catalog > College of Science and Mathematics > Department of Computer Science > Courses

DEPARTMENT OF COMPUTER SCIENCE — COURSES

CS 105
An Introduction to Computer Concepts

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.

Note: No student will receive graduation credits for CS 105 if it is taken after successful completion of CS 110 or a higher level computer course.

Prerequisite: A suitable score on the mathematics diagnostic test.
Distribution I Area: Mathematics and Computer Science.
Distribution II Area: Mathematics.
3 Lect Hrs, 3 Credits

CS 109
Computer Programming for Engineers

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.
Prerequisite: A suitable score on the mathematics diagnostic test or MATH 130 or a higher MATH course.

Distribution I Area: Mathematics and Computer Languages.
3 Lect Hrs, 3 Credits

CS 110
Introduction to Computing

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 credit 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.
Prerequisite: A suitable score on the mathematics diagnostic test. Students who have passed MATH 140 need not take the mathematics diagnostic test.

Distribution I Area: Mathematics and Computer Languages.
Distribution II Area: Mathematics.
3 Lect Hrs, 4 Credits

CS 119
Computer Language Supplement

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.

Prerequisite: Permission of the department.
Distribution I Area: Mathematics and Computer Languages.
Distribution II Area: Mathematics.
3 Lect Hrs, 2 Credits

CS 210
Intermediate Computing with Data Structures

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.

Prerequisite: CS 110 or CS-IT 115 or permission of the department.
Distribution I Area: Mathematics and Computer Languages.
Distribution II Area: Mathematics.
3 Lect Hrs, 4 Credits

CS 240
Programming in C

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.

Prerequisite: CS 110 or CS-IT 115, or permission of instructor.
Corequisite: CS 210 or permission of instructor.
Distribution I Area: Mathematics and Computer Languages.
3 Lect Hrs, 3 Credits

CS L271 (PSYCH L271)
Introduction to Cognitive Science

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.

3 Lect Hrs, 3 Credits

CS 310
Advanced Data Structures and Algorithms

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.

Prerequisites: CS 210, CS 240, and MATH 141.
3 Lect Hrs, 3 Credits

CS L320 (MATH L320)
Applied Discrete Mathematics

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.

Prerequisite: CS 110 and MATH 260; or permission of instructor.
3 Lect Hrs, 3 Credits

CS 341
Computer Architecture and Organization

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.

Prerequisite: CS 240.
Distribution I Area: Mathematics and Computer Languages.
3 Lect Hrs, 1 Lab Hr, 3 Credits

CS 410
An Introduction to Software Engineering

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.

Prerequisites: CS 310 and CS L320, or permission of the instructor.
3 Lect Hrs, 3 Credits

CS 420
An Introduction to the Theory of Computation

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.

Prerequisite: CS L320.
3 Lect Hrs, 3 Credits

CS 430
Database Management

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.

Prerequisites: CS 240 and CS 310, or permission of the instructor.
3 Lect Hrs, 3 Credits

CS 437
Database-Backed Web Sites and Web Services

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.

Prerequisites: CS 310 and 430, or permission of the instructor.
3 Lect Hrs, 3 Credits
Mr Campbell, Mr Morris

CS 444
An Introduction to Operating Systems

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.

Prerequisites: CS 241 and CS 310.
3 Lect Hrs, 3 Credits

CS 445
Real-Time Systems

Covers the entire development process of a real-time system, from requirements, specification, and design to implementation and testing, including real-time programming, low-level software issues, and hardware architectures. Emphasizes timing constraints and scheduling principles. Subtopics include the four layers of real-time system development: real-time design methodologies, real-time design programming language constructs, real-time kernels, and real-time hardware architectures.

Prerequisites: CS 241 and CS 310.
3 Lect Hrs, 3 Credits

CS 446
Introduction to Internetworking

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.

Prerequisites: CS 241 and CS 310.
Corequisite: CS 444.
3 Lect Hrs, 3 Credits

CS 450
The Structure of Higher Level Languages

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.

Prerequisite: CS 310 and CS L320.
3 Lect Hrs, 3 Credits

CS 451
Compilers I

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.

Prerequisites: CS 310 and CS 420 or CS 622.
3 Lect Hrs, 3 Credits

CS 460
Graphics

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.

Prerequisites: MATH 260 and CS 310, or permission of instructor.
3 Lect Hrs, 3 Credits

CS 470
An Introduction to Artificial Intelligence

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.

Prerequisites: CS 320 and CS 450, or permission of instructor.
3 Lect Hrs, 3 Credits

CS 478
Independent Study

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.

Prerequisite: Permission of instructor.
3 Lect Hrs, 3 Credits

CS 480
Special Topics

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

Prerequisites: Permission of the department.
3 Lect Hrs, 3 Credits

CS 485
Research Topics in Computer Issues: Ethics and Societal Impact

This course is a capstone course to be taken near the end of the BS major in computer science. It will teach and apply teamwork, research, and presentation skills. Students will work in teams, each team investigating a broad topic in a selected area of computer application from an ethical and/or societal point of view.

Prerequisites: Two computer science courses at the 400 level.
3 Lect Hrs, 3 Credits

CS 495
Practicum in Computer Science

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.

Prerequisites: CS 310, CS L320, and permission of the instructor.
1 Credit

CS 498
Honors Thesis

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.

Prerequisites: Overall GPA of 3.0 and GPA of 3.5 in the major; CS 310, CS 420, permission of the instructor and department chair. Students are encouraged to take CS 478 (Independent Study) the semester before 498 in order to undertake background research, formulate a successful project proposal, and present the proposal to the department. Forms for enrolling in CS 498 are available in the Department office.

Information Technology Courses

CS-IT 110
Visual Basic

An introductory course in Visual Basic programming, the course will provide the student with hands-on exposure to the object-oriented/event-driven components of Visual Basic. Using laboratory case assignments, students will plan and create their own Windows applications. They will learn how to create a user interface, set control properties, and write Visual Basic code.

CS-IT 114
Introduction to Java

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.

Prerequisite: Math placement exam. Students who have passed MATH 130 at UMass Boston or an equivalent pre-calculus course elsewhere need not take the placement exam.
3 Lect Hrs, 3 Credits

CS-IT 115
Introduction to Java–Part 2

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-IT 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.

Prerequisite: CS-IT 114 or permission of the department.
3 Lect Hrs, 3 Credits

CS-IT 140
Fundamentals of Client/Server Design

An introductory course about client/server terminology and concepts which presents the software development life cycle (SDLC) for client/server projects as a set of phases through which a software development project passes. The course presents an overview of several different software development methodologies, offers guidelines about methodologies, and examines the forces that drive businesses to adopt client/server architecture.

CS-IT 230
Relational Databases

This course is an elementary introduction to relational databases, a topic of great interest to information technology. Topics covered include an introduction to database management systems, the SQL query language, and the application of Java programming techniques for accessing relational databases.

Prerequisite: A Java course (CS-IT 114 or equivalent).

CS-IT 242
LAN/WAN Technologies

The course discusses basic data communication concepts; digital and analog signaling, media and cabling systems; the OSI reference model; Physical and DATA Link layer; LAN standards, Ethernet, Token Ring, FDDI, Switched technologies, emerging LAN standards, Bridges and Routers; and Network operating systems.
Prerequisite: C programming (CS 109 or equivalent).

CS-IT 244
Introduction to Linux/Unix

A course designed to introduce students to Linux, and by reference to Unix as well. Students will install, setup and operate all the standard tools and learn how the operate together. By course end students will be have installed a fully functional internet server while understanding what’s behind it.
Prerequisite: C programming (CS 109 or equivalent).

CS-IT 246
Information Technology–Introduction to Networks

Study of basic data communication and networking concepts for LAN and WAN systems. Study of network protocols with emphasis on Ethernet, PPP, TCP/IP, and WWW protocols. Network applications include telnet, ftp, email, distributed file systems, and client-server applications. Survey network security issues. A laboratory covers design, selection, configuration, monitoring, and managing networks and networking devices.

Prerequisite: CS-IT 114.
Distribution I Area: Mathematics and Computer Languages.

Graduate Courses

Some graduate-level courses in computer science are open to undergraduates. Please contact the department office for further information.

UMass Boston Home | Contact UMass Boston
CEEB Code:3924
Title IV School Code: 002222

100 Morrissey Blvd.
Boston, MA 02125-3393
617-287-5000
Directions

This page of the University of Massachusetts Boston
was last modified: Wednesday, March 22, 2006
Content Provided By: unknown

Valid XHTML 1.0