Photos of university / #umass
The University of Massachusetts Amherst offers a comprehensive Bachelor of Science in Computer Science designed to provide students with a strong foundation in both theoretical and practical aspects of computing. This rigorous program aims to prepare graduates for a diverse range of careers in technology, research, and academia, equipping them with essential skills in programming, software development, algorithms, systems, and data management. Students will engage with core topics such as computer architecture, operating systems, databases, networking, and cybersecurity, ensuring a well-rounded understanding of computing principles. The curriculum emphasizes hands-on experience through laboratory work, projects, and internships, fostering problem-solving abilities, teamwork, and innovative thinking. With opportunities to specialize in areas like artificial intelligence, machine learning, data science, software engineering, and cyber security, students can tailor their education to match their interests and career goals. The program also encourages engagement with research initiatives and industry collaborations, providing exposure to real-world applications and emerging technologies. Dedicated faculty members with expertise in various fields of computer science mentor students, guiding them through their academic journey and supporting their professional development. Graduates of this program are well-prepared for immediate entry into the workforce or for advanced study in graduate programs. The University of Massachusetts Amherst’s strong ties to the tech industry and vibrant academic community create an enriching campus environment where innovation and collaboration thrive. Whether students aim to develop new software solutions, analyze large data sets, or explore cutting-edge technological advancements, the Computer Science program at UMass Amherst offers the knowledge, skills, and experiences necessary to succeed in today’s dynamic digital world.
The college has the following requirements for the master's degree, in addition to those requirements of the Graduate School: A student must pass four core courses with a grade of B or better during the first four semesters. The core courses must include one course from systems, one from theory, and one from Artificial Intelligence (AI). The fourth core course is chosen from a rich set of regular core course offerings. A Concentration in Data Science is also offered. Students who took equivalent courses at other institutions can arrange to substitute other COMPSCI offerings as core courses. Thirty credits must be completed within three calendar years. A Master’s Project (6 credits) is optional.
Courses
All courses carry 3 credits unless otherwise specified.
501 Formal Language Theory
Introduction to formal language theory. Topics include finite state languages, context-free languages, the relationship between language classes and formal machine models, the Turing Machine model of computation, theories of computability, resource-bounded models, and NP-completeness.
503 Embedded Systems
This course introduces tools necessary to design embedded computational applications. Each student will design and build an embedded control application as a member of a team. The course is heavily project-oriented (with a required lab) and discussions will include topics such as; (1) mechanisms, sensors, actuators and feedback systems, (2) analog and digital circuits, power amplifiers, signal processing, operational amplifiers, multiplexing, (3) I/O - A/D, D/A, and latching, serial and parallel interfaces, (4) signal processing/conditioning and (5) an introduction to real-time programming.
513 Logic in Computer Science
Rigorous introduction to mathematical logic from an algorithmic perspective. Topics include: Propositional logic; Horn clause satisfiability and SAT solvers; First Order Logic: soundness and completeness of resolution, compactness theorem. We will use the Coq theorem prover and Datalog.
520 Software Engineering: Synthesis and Development
Introduces students to the principal activities involved in developing high-quality software systems. Topics include: requirements analysis, formal specification methods, process definition, software design, and risk management.
521 Software Engineering: Analysis and Evaluation
The current best testing and analysis practices; promising new approaches, going beyond the testing of programs and modules and extending the scope to include analysis of all software products across the lifecycle and analysis of software processes.
530 Programming Languages
Practical and theoretical aspects of several currently prominent languages representing distinct paradigms, including imperative, functional and logic programming. Focus on object-oriented languages, and C++ in particular.
535 Computer Architecture
The structure of digital computers from the basic logic level, to the component level, to the system level. Topics include: the design of basic components such as arithmetic units and registers from logic gates; the organization of basic sub-systems such as the memory and I/O subsystems; the interplay between hardware and software in a computer system; the von Neumann architecture and its modern competitors.
551 3-D Animation and Digital Editing
Students work alone and in teams to create high-quality publishable animated pieces using three-dimensional graphics technology. Techniques include digital editing, sound, music, design, modeling, rendering, surfaces, textures, and lighting.
552 Interactive Multimedia Production
Students explore interactive authoring tools to develop presentation and training systems by using programming languages within professional packages to present graphics, animation, text, sound, and music based on user request.
575 Combinatorics and Graph Theory
Cross-listed with MATH 513. A basic introduction to combinatorics and graph theory for advanced students in computer science, mathematics, and related fields. Topics include elements of graph theory, Euler and Hamiltonian circuits, graph coloring, matching, basic counting methods; generating functions; recurrences; inclusion-exclusion; Polya’s theory of counting.
585 Natural Language Processing
Natural Language Processing techniques developed in Artificial Intelligence with an emphasis on memory oriented models and corpus-driven research. Focus on semantically oriented sentence analysis, narrative text comprehension.
590 Experimental Courses
New courses being taught on an experimental basis.
591 Seminar on Computer Science
Conferences, reports, and lectures on topics not currently covered in regular courses. Consent of instructor required. Credit, 1-6.
596 Independent Study
Credit, 1-6.
601 Computation Theory
An in-depth introduction to the main models and concepts of the mathematical theory of computation, including computability, complexity, and logic.
603 Robotics
The design and analysis of adaptive, closed-loop physical systems. Focus on sensorimotor machines that interpret and manipulate their environments. Involves study of mechanisms (kinematics and dynamics), actuators, sensors (with a focus on machine vision), signal processing, optimal estimators, associative memory, feedback control theory, supervised and unsupervised learning, and task planning.
610 Compiler Techniques
Basic problems in the translation of programming languages focusing on theory and common implementation techniques for compiling traditional (Pascal-like) programming languages to produce assembly or object code for typical machines. Involves a substantial laboratory project in which the student constructs a working compiler for a considerable subset of a realistic programming language. Lectures augmented by an optional laboratory section covering details of the programming language to be used in the project (C), the operating system (Unix), the source language (a Modula variant) and various tools (Yacc, make, etc.). Use of computer required.
611 Advanced Algorithms
The design and analysis of efficient algorithms for important computational problems. Paradigms for algorithm design including Divide and Conquer, Greedy Algorithms, Dynamic Programming; and, the use of Randomness and Parallelism in algorithms. Algorithms for Sorting and Searching, Graph Algorithms, Approximation Algorithms for NP Complete Problems, and others.
617 Computational Geometry
An introduction to the main theoretical and algorithmic techniques from Computational Geometry. Topics covered include covex hulls, triangulations, Voronoi diagrams, visibility, art gallery problems, collision detection, motion planning and folding.
620 Advanced Software Engineering: Synthesis and Development
Same topics as 520 but at a greater depth.
621 Advanced Software Engineering: Analysis and Evaluation
The best testing and analysis practices for software products and processes across the lifecycle, with emphasis on promising new software engineering research directions including software architectures and the analysis of concurrent, distributed, and real-time systems.
630 Systems
An in-depth introduction to systems, focusing on principles of system design that cross-cut numerous systems artifacts, including operating systems, databases, runtime systems, and architecture. We will cover all levels of the "system stack", from chips to distributed systems.
631 Programming Languages
Programming languages are fundamental to computer science and everyday programming. This course is an in-depth introduction to the formal, logical foundations of programming languages.
635 Modern Computer Architecture
Examines elements of modern computer architectures from the perspectives of performance, economics, and design considerations together with their implications for software support at the compiler and operating system levels.
645 Database Design and Implementation
Covers topics such as object oriented, real-time, active, and temporal dbs; object management and file systems; concurrency control, recovery, transaction processing; distributed dbs; query processing; db programming languages; advanced db architectures.
646 Information Retrieval
Basic and advanced techniques for text-based information systems, including retrieval models, indexing and text representation, browsing and query formulation, routing, distributed information retrieval, and integration with database systems. Implementation of major elements of an information retrieval system.
650 Applied Information Theory
This course will introduce the basic concepts of Information Theory: entropy, relative entropy, mutual information, channel capacity, and rate distortion. Applications, rather than proofs, will be emphasized. In addition, the statistical problem of computing information theoretic quantities from data will be emphasized. Non-parametric and semi-parametric statistical models will also be covered.
653 Computer Networking
An introduction to fundamental concepts in the design and implementation of computer communication networks, their protocols, and applications. Topics include: layered network architectures, applications, network programming interfaces (e.g., sockets), transport, congestion, routing and data link protocols, local area networks, emerging high-speed networks, network management, and network security. Examples drawn primarily from the Internet (e.g., TCP, UDP, and IP) protocol suite. A rudimentary understanding of computer architecture and operating systems helpful.
670 Computer Vision
A study of what is involved in building artificial systems which try to infer such characteristics from an image. Topics include: Basics of image formation - the effect of geometry, viewpoint, lighting and albedo on image formation. Basic image operations such as filtering, convolution and correlation. Frequency representations of images. The importance of scale in images. Measurements of image properties such as color, texture, appearance and shape. Inference of motion and structure from moving objects and images. Detecting and recognizing objects in images. Statistical methods in computer vision.
677 Operating Systems
An in-depth examination of principles of distributed operating systems. Topics include processes and threads, concurrent programming, distributed interprocess communication, distributed process scheduling, shared virtual memory, distributed file systems.
683 Artificial Intelligence
In-depth introduction to Artificial Intelligence concentrating on aspects of intelligent agent construction. Topics include: situated agents, advanced search and problem-solving techniques, resource-bounded reasoning, reasoning under uncertainty, perception and action, advanced planning and control, and learning.
688 Graphical Models
This course will cover Bayesian and Markov networks and their dynamic and relational extensions; exact and approximate inference methods; estimation of both the parameters and structure of graphical models.
689 Machine Learning
Introduces and explores methods that permit programs to learn. Topics include: knowledge acquisition, learning from examples, generalization and specialization, discovery systems, theory formation, connectionist learning, genetic algorithms, macro learning, language learning, explanation-based learning, and computational learning theory.
690 Experimental Courses
New courses being taught on an experimental basis.
691 Seminar on Computer Science
Conferences, reports, and lectures on topics not currently covered in regular courses. Consent of instructor required. Credit, 1-6.
701 Advanced Topics in Computer Science
Advanced Topics in Computer Science Master’s Project: Advanced research project in Computer Science. Consent of instructor required. Credit, 6.
711 Parallel Algorithms and Architectures
An introduction to parallel algorithmics, emphasizing theoretical formulations and developments. The design of application-oriented algorithms in varied environments: idealized shared-memory algorithmic paradigms that ignore communication costs, distributed-memory emulations of shared memory, distributed-memory algorithmic paradigms. Concepts illustrated via important applications. The design of systems-oriented algorithms for: task scheduling, load balancing, message routing, and latency hiding. Prerequisite: CMPSCI 611 or equivalent.
745 Advanced Topics in Database Systems
Current topics in database systems. May include semantics-based concurrency control, new correctness criteria, transaction processing on parallel database platforms, real-time, active, temporal, and multimedia databases. Prerequisite: CMPSCI 445 or equivalent.
791 Seminar on Computer Science
Conferences, reports, and lectures on topics not currently covered in regular courses. Consent of instructor required. Credit, 1-6.
Related Courses
- Electrical and Computer Engineering
- 603 Probability and Random Processes
- 606 Electromagnetic Field Theory
- 608 Signal Theory
- 735 Stochastic Control Dynamic Systems
- 745 Advanced Communication Theory
Linguistics
- 610 Semantics and Generative Grammar
Mathematics
- 532 Ordinary Differential Equations
- 545 Linear Algebra for Applied Mathematics
- 611, 612 Algebra I & II
- 623, 624 Real Analysis I & II
- 651, 652 Numerical Analysis I, II
Statistics
- 511 Multivariate Statistical Models
- 525 Regression Analysis
- 526 Design of Experiments
- 607, 608 Mathematical Statistics I, II
- 708 Applied Stochastic Models and Methods
- A completed Application Form.
- A $75 application fee. This fee cannot be waived or deferred.
- International Student Sponsor Statement is required of all international students.
- One official transcript from all colleges/universities attended, undergraduate and graduate, where (nine) 9 or more credits were taken are required. If they are not mailed directly from the college/university, they should be enclosed in sealed envelopes signed by the college/university. If the official transcripts and/or degree certificate(s) are not in English, notarized English language translations in duplicate must accompany them. Do not list colleges/universities where (eight) 8 or fewer credits were taken.
- Letters of recommendation (academic references) from two (2) professors or instructors who have taught you in courses in the field you are applying to here. After submission of the electronic application, we will send an email to each referee giving them instructions on how to electronically deliver the recommendation to the Graduate School. All recommendations will be considered confidential unless the applicant doesn't waive his/her right of access.
- Scores from the following standard examinations:
- GRE (Graduate Record Examination)-General Test required by nearly all graduate programs - (refer to Degrees and Programs Offered)
- GRE SUBJECT TEST (not a universal requirement-refer to the Programspage for those programs requiring a Subject Test)
- GMAT (Graduate Management Admissions Test)-for graduate applicants to Management, Hospitality & Tourism Management, and Sport Management
- English Language Test: Either TOEFL (Test of English as a Foreign Language), or IELTS (International English Language Testing System)-only the academic version of test is accepted, or PTE Academic (Pearson Test of English)
Scholarships
The University does not award student funding of any kind unless this is explicitly stated in writing by the graduate department to which the applicant has applied. Assistance in the form of a teaching or research assistantship is becoming increasingly limited. Tuition scholarships and fellowships are few and are not usually awarded during the first year of attendance, before the student has an academic performance record at the University itself. All applicants should plan on being self-financed, without recourse to part-time employment at the University, at least through the first academic year, unless they have specifically been offered some form of assistance by the department. Recommendations from the student's academic program play an important part in determining who will be awarded these waivers of tuition, and competition for the tuition scholarships is great. Those incoming graduate students who have not received any other type of financial assistance and who are interested in applying for a tuition waiver should contact their department directly. Applicants should be aware that the competition for new student tuition waivers is intense. Very few waivers are granted to new students and the few that are granted, are based only on departmental recommendations.
Graduate Assistantships
The University offers a number of teaching and research assistantships in the instructional and research programs of various departments. Stipends vary greatly from as little as $5,000 for a half assistantship to $16,000 for a full assistantship for the calendar year. International applicants who are awarded assistantships, and who have no supplemental means of support, must make sure that the assistantship is adequate to meet their minimum financial needs, refer to Estimate of Expenses. Graduate assistants are not required to pay tuition charges provided their stipend is $5,000 or higher ($ 2,500 is the minimum for a one semester waiver of tuition and most fees). Assistantships are awarded for a maximum of one academic year at a time. A graduate assistantship is not a scholarship, and a full assistantship requires a work contribution by the student averaging 20 hours per week, and Federal and State income taxes will be withheld from earnings.
Research Assistantships
A number of research assistantships, with no teaching duties, are available to qualified graduate students in various departments. Funds are provided by either private industry, the U.S. Government (especially in agriculture, engineering, and the sciences), or by the University itself.
Teaching Assistantships
Many departments offer teaching assistantships to qualified, enrolled graduate students. International applicants are eligible for these assistantships. Since teaching assistantships involve instruction, all incoming students who have been awarded a teaching assistantship and whose native language is not English must demonstrate oral English proficiency, either by passing the Test of Spoken English administered by the Educational Testing Service (ETS) before their arrival on campus at their own expense or by passing the SPEAK test upon arrival at no cost to the student. In order to pass the TSE or SPEAK test, students must score 50 or above.
University Fellowships
These Fellowships are awarded to graduate students on a very competitive basis and are intended to help superior students pursue graduate study without a work requirement and obtain a degree in the minimum possible time. They are normally awarded only after a graduate student has completed two semesters at the University of Massachusetts Amherst. A University Fellowship is for only one year. A tuition waiver accompanies a University Fellowship, and no service is required.
The University of Massachusetts Amherst offers a comprehensive Bachelor of Science degree in Computer Science through its College of Information and Computer Sciences. This program is designed to provide students with a strong foundation in the theoretical and practical aspects of computing, preparing them for diverse careers in technology, research, and academia. The curriculum covers core topics such as programming languages, data structures, algorithms, computer architecture, and operating systems, ensuring students develop a solid understanding of how computers function and how to solve complex problems efficiently.
In addition to foundational courses, students have the opportunity to specialize in areas such as artificial intelligence, cybersecurity, data science, software engineering, and systems programming. The program emphasizes hands-on learning through laboratory work, projects, and internships, allowing students to apply their knowledge in real-world scenarios and gain valuable industry experience. Collaboration and teamwork are integral to the program, reflecting the collaborative nature of the modern tech industry.
The university's location in Amherst provides students with access to a vibrant academic community and numerous research opportunities. The faculty comprises distinguished professors who are actively involved in cutting-edge research, often involving students in their projects. The program encourages undergraduate research, supporting students in presenting at conferences and publishing scholarly articles.
Students are also encouraged to participate in co-op programs, internships, and industry partnerships to gain practical experience and build professional networks. The Computer Science program at UMass Amherst is accredited by ABET, ensuring that it meets high standards of quality and curriculum relevance.
Graduates of the program are well-prepared for careers in software development, systems analysis, network administration, artificial intelligence, or pursuing graduate studies. The university’s Career Services provide extensive support with job placement, resume writing, interview preparation, and connecting students with potential employers. Overall, the Computer Science program at UMass Amherst offers an excellent combination of rigorous academics, hands-on experience, and industry engagement, equipping students to succeed in the rapidly evolving world of technology.