'ZDNET Recommends': What exactly does it mean?

ZDNET's recommendations are based on many hours of testing, research, and comparison shopping. We gather data from the best available sources, including vendor and retailer listings as well as other relevant and independent reviews sites. And we pore over customer reviews to find out what matters to real people who already own and use the products and services we’re assessing.

When you click through from our site to a retailer and buy a product or service, we may earn affiliate commissions. This helps support our work, but does not affect what we cover or how, and it does not affect the price you pay. Neither ZDNET nor the author are compensated for these independent reviews. Indeed, we follow strict guidelines that ensure our editorial content is never influenced by advertisers.

ZDNET's editorial team writes on behalf of you, our reader. Our goal is to deliver the most accurate information and the most knowledgeable advice possible in order to help you make smarter buying decisions on tech gear and a wide array of products and services. Our editors thoroughly review and fact-check every article to ensure that our content meets the highest standards. If we have made an error or published misleading information, we will correct or clarify the article. If you see inaccuracies in our content, please report the mistake via this form .

What to expect in a computer science degree program

tamika-johnson-headshot-2.jpg

When exploring a computer science (CS) career, consider time, investment, and course complexity. Expectations in a computer science degree program include analytical thinking, evaluating complex problems, and studying algorithm design.

If you are ready to learn what you can expect in a computer science degree, this CS degree program guide can help. It offers information on degrees, specializations, course length, required projects, internships, and tuition and fees.

What is a computer science degree?

Students in a computer science — sometimes called CS — program learn computational theory, development, application, and design. Courses cover theoretical foundations of computer and web application development. 

CS students can earn an associate, bachelor's, master's, or Ph.D. They often earn specializations, too. With a CS specialization, students can gain pursue niche roles, like IT security or software engineer. 

After earning a traditional or online computer science degree , students can pursue work in roles like web developer, software engineer, or database administrator.

What to expect from computer science courses

For a two-year associate degree, students generally complete a 64-credit program that covers the basics. In a four-year bachelor's program, students take both general education and foundational computer science courses . 

Students who go on to pursue a master's degree typically earn about 33 credits in 2-3 years. Those who go on to become Ph.D. students spend about 4-5 years and earn 90 credits as well as completing a dissertation.

You will take core classes plus electives that interest you.

Intro-level CS students take classes in calculus I, introduction to linear algebra, probability and statistics, introduction to programming, and ethics and technology. 

These courses focus on application, differential equations, and vector spaces as well as problem solving, algorithm development, and debugging and testing. 

As the program progresses, students select electives in topics like graphical user interface, systems programming, ethical hacking, artificial intelligence, and compiler theory. 

Courses are a mix of theoretical and hands-on.

CS programs integrate both theory and practical application. First, students learn the history and evolution of state machines, computational complexity, program correctness, and cryptography. 

Theoretical CS classes provide greater insights into the construction of computers, efficiency of information systems, and commonly used encryption tools. In theory courses, CS students might work directly with implementation, verification, and programming challenges.

Expect to take math courses.

While earning a CS degree, you are required to take several math and statistics courses. Math is vital for understanding many programming languages. 

You also need a solid understanding of abstract language, differential equations, algorithms, and data structures. 

Entry-level students should expect to take calculus I and II, introduction to linear algebra, and probability and statistics.

Expect to spend time on computer science projects.

CS students tend to have heavy course loads, so they should expect to need more study time for course completion than most degrees. Organizational skills, time management, and scheduling are especially important. 

CS students often learn through projects that introduce them to topics like computer security, scientific computing, and computational efficiency. 

Along with group discussion, students complete open-ended software projects, presentations, independent studies, and group assignments. 

Students may focus on areas like computer architecture and organization, database management systems, and computer networks.

You may want to consider a computer science concentration as you progress through your degree.

After completing core CS courses, students select electives to personalize their CS degrees. Specializations prepare students for job opportunities in specialized areas of the industry. 

Students usually choose specializations that fit their career interests and help them gain required workforce skills. Here are some of the most common CS specializations.

Artificial intelligence

Computer and network security

Game design

Human-computer interaction

Information management and analytics

Programming languages

Real-world computing

Software theory

You may want to learn and practice skills outside of your degree courses.

While not a requirement, CS students can benefit from practical experience outside of their degree programs. 

By learning how to code , students increase logical and math reasoning skills. With the additional knowledge, students increase their analytical and problem-solving skills. 

Practical experience can also help students practice the easier programming languages , such as Python, Java, and Ruby. 

Internships will allow you to practice what you have learned and gain hands-on experience.

CS internships offer real-world experience. They may come through public or private organizations, such as commercial banks or credit unions, tech companies, or small businesses in need of IT support. 

Interns learn a company's culture and work environment, engage in team events and projects, and advance their career development. 

These opportunities can help enhance students' technical skills, professional networks, and employment opportunities. 

How hard is a computer science degree?

While CS programs are challenging, dedicated and passionate students can succeed. 

To find success with a computer science degree , students should be able to problem-solve and think critically as well as exhibit a joy for learning and taking on challenging design tasks. Successful students spend hours practicing coding, applying theory, and learning the basics of computer networking. It also helps to have prior experience with basic computer skills.

CS programs have rigorous curricula and challenging courses. As you progress, math becomes more intense. 

However, with faculty support, good organization and time management, and resilience, you can be successful. 

How much will I be spending as a computer science student?

While researching CS programs, consider both online and traditional programs. For CS degrees, tuition and fees range from $15,000 to $85,000. In-state students often pay much less than out-of-state students, and online students sometimes pay in-state rates regardless of location.

CS students should also consider bootcamps. The average cost of a coding bootcamp program is $13,500, which is equivalent to three semesters at some four-year colleges. 

When researching programs, be sure to look into perks as well as costs. There are several online schools that provide computers free of charge or at a discounted rate. Others rent iPads and laptops. 

Common questions about computer science degrees

What's the difference between it and computer science.

Information technology (IT) specializes in network security, database management, and desktop support. CS concentrates on coding, programming, and algorithms. If you're interested in IT, check out the information technology guide . 

What's the difference between computer engineering and computer science?

Computer engineers are skilled in building and repairing computers. Computer scientists have a deeper knowledge of programming languages and how to manage operating systems and networks.

Does a BA or BS in computer science matter?

Most CS programs focus on science and math, so they offer a BS. If you are interested in a broader education, especially if you might want to take business courses, then consider earning a BA.

Is it possible to get a computer science degree online?

Yes. An accredited online program can provide the same technical and critical thinking skills as a traditional program. The curriculum is typically just as rigorous.

This article was reviewed by Brian Nichols

Born and raised in upstate New York, Brian Nichols attended a vocational high school where he focused on computer science, IT fundamentals, and networking. He received his AS in computer information science from the local community college, then earned a BS in applied networking and system administration from a private college. He now lives in Kansas City, where he works full-time as a DevOps engineer and is a part-time instructor in cybersecurity. He's passionate about cybersecurity and helping students succeed. 

Brian Nichols is a paid member of the Red Ventures Education freelance review network. 

ZDNET Recommends

CS50: Introduction to Computer Science

An introduction to the intellectual enterprises of computer science and the art of programming.

CS50x

Associated Schools

Harvard School of Engineering and Applied Sciences

Harvard School of Engineering and Applied Sciences

What you'll learn.

A broad and robust understanding of computer science and programming

How to think algorithmically and solve programming problems efficiently

Concepts like abstraction, algorithms, data structures, encapsulation, resource management, security, software engineering, and web development

Familiarity with a number of languages, including C, Python, SQL, and JavaScript plus CSS and HTML

How to engage with a vibrant community of like-minded learners from all levels of experience

How to develop and present a final programming project to your peers

Course description

This is CS50x , Harvard University's introduction to the intellectual enterprises of computer science and the art of programming for majors and non-majors alike, with or without prior programming experience. An entry-level course taught by David J. Malan, CS50x teaches students how to think algorithmically and solve problems efficiently. Topics include abstraction, algorithms, data structures, encapsulation, resource management, security, software engineering, and web development. Languages include C, Python, SQL, and JavaScript plus CSS and HTML. Problem sets inspired by real-world domains of biology, cryptography, finance, forensics, and gaming. The on-campus version of CS50x , CS50, is Harvard's largest course. 

Students who earn a satisfactory score on 9 problem sets (i.e., programming assignments) and a final project are eligible for a certificate. This is a self-paced course–you may take CS50x on your own schedule.

Instructors

David J. Malan

David J. Malan

Doug Lloyd

You may also like

CS50T

CS50's Understanding Technology

This is CS50’s introduction to technology for students who don’t (yet!) consider themselves computer persons.

CS50W

CS50's Web Programming with Python and JavaScript

This course picks up where CS50 leaves off, diving more deeply into the design and implementation of web apps with Python, JavaScript, and SQL using frameworks like Django, React, and Bootstrap.

CS50L

CS50 for Lawyers

This course is a variant of Harvard University's introduction to computer science, CS50, designed especially for lawyers (and law students).

Join our list to learn more

What You Need to Know About Becoming a Computer Science Major

Computer science majors are strong logical thinkers and problem solvers who use computers and computational processes to build websites, mine data and more.

Becoming a Computer Science Major

Cropped shot of a IT technician working on his laptop while standing inside of a server room

Getty Images

Students in a computer science major enter the dynamic world of technology, studying topics like artificial intelligence, software design and computer graphics. By the time majors complete their degrees, they will have the skills to examine complex problems with computer tools.

What Is a Computer Science Major?

Computer science is a major for problem-solving students who want to learn how to use computers and computational processes to build websites, program robots, mine data and more. Computer science majors may go on to master’s or doctorate programs in the field, and they can work in research and industry. Students will gain experience with the theory and practice of computer science as they explore algorithms, programming languages and operating systems, for example.

In classes, majors may apply their learning to topics like computational finance, robotics and network security. Undergraduates may be able to access internships and research opportunities through their programs.

Computer science major vs. computer engineering major: What’s the difference?

Computer science and computer engineering are separate computing majors that both study the hardware and software of computer systems. Computer science, with its deep foundation in mathematics, focuses on the theory behind programming, computation and operating systems.

Computer engineering is the study of engineering applied to computers and computer systems. While a computer engineering major is rooted in the practical use and development of computers, a computer science major teaches students how to design operating systems, for example, that run on the machines computer engineers create.

Common Coursework Computer Science Majors Can Expect

Computer science majors must study calculus to earn their degrees. Other relevant math courses include statistics and linear algebra. Introductory computer science classes cover topics like algorithm design, computer organization and abstract data types. After students develop a strong foundation in the major, they can move on to more complicated courses related to data visualization, neural networks and cryptography, among other subjects.

At some schools, students may choose to pursue either a Bachelor of Arts or a Bachelor of Science in computer science. The B.A. contains fewer required classes and may be more relevant for students who plan to work in another field after college. Many degree programs make it possible for students to combine computer science with another discipline, like architecture, electrical engineering or molecular biology. Students interested in research can seek out opportunities with faculty members, develop independent projects and look into relevant coursework.

How to Know if This Major Is the Right Fit for You

Strong logical thinkers excited by the idea of entering a challenging field might think about majoring in computer science. If you’d be eager to contribute to innovative research that boosts cybersecurity, creates virtual reality or trains machines, computer science may be the right fit for you.

Even if you don’t see yourself becoming a researcher, a computer science degree could still be a good choice. Career paths in the field span industries from fashion to information technology, with jobs for computer scientists available in data science, software engineering, application development and more. If you’re an adaptable problem solver or hope to become one, you may want to consider courses in computer science.

Pick the Perfect Major

Discover the perfect major for you based on your innate wiring. The Innate Assessment sets you up for success by pairing you with majors, colleges and careers that fit your unique skills and abilities.

does computer science have coursework

What Can I Do With a Computer Science Major?

Computer science has applications in all kinds of industries, including transportation, entertainment and medicine. With so many possible landing places, you can likely find your niche.

A major in computer science can open positions in data analytics, web development and consulting, for example, and jobs are available at companies ranging in size from small startups to large corporations. The major’s focus on programming skills prepares students to work as a computer system analyst, for example, who helps organizations use IT systems more efficiently. For a career path like this that works with more advanced systems, a student may benefit from earning a master's in computer science or a master's in computer information systems . Those interested in the systems used to store, organize and secure data can use their knowledge of programming languages to become a database administrator.

A computer science program can also prepare students to become information security analysts, who use software to protect organizations’ network security. A certification, like the CompTIA Security+ certification, can give prospective IT professionals’ resumes a boost, as it certifies you have the necessary skills to work in a cybersecurity career.

Those interested in becoming computer programmers can gain certifications in specific products and programming languages, and some companies require that computer programmers are certified in the areas in which they work, according to the Bureau of Labor Statistics. Those just entering the field may want to consider a program that doesn't have any prerequisites, such as the Certified Entry-Level Python Programmer or the C Programming Language Certified Associate Certification .

Students can also consider graduate study in the field. There are master’s options for those interested in industry positions as well as doctorate paths for those more likely to pursue research. When hiring a software developer – a role involving the planning and designing of software based on user needs – employers may prefer candidates who have a master’s degree.

Job opportunities in computer science are on the rise, so majors should have plenty of options. See the table below for jobs computer science majors can consider after earning a bachelor's or master's degree.

Data is sourced from the U.S. Bureau of Labor Statistics .

What Computer Science Majors Say

“I would say don't hesitate to take your first comp sci class. I began in my sophomore year, and even though many peers were ahead, the introductory course was interesting and manageable, and it is fun to tackle those projects. Give it a shot.”

– Cathy Chen , a junior at Colgate University, class of ‘25, a computer science and economics major, and a member of the Colgate Coder club.

“Being a computer science student can definitely be challenging at times, but it’s a worthwhile challenge. It’s a journey of exploring and problem solving. There’s a level of satisfaction that comes from exploring complex algorithms, developing innovative software, and understanding the intricate world of technology. Some advice I would give to new students is to not be afraid to explore new fields they’re interested in and to not be scared of making mistakes. I would also say to stay curious and keep exploring as technology is advancing every day. In my experience with student organizations like Women In Cybersecurity and Girls Who Code, these organizations are very helpful in encouraging minorities such as women to continue their studies in the field.”

– Daniyah Taimur , a junior at the University of Maryland, class of ‘25, a computer science and economics major, and a mentor of Girls Who Code UMD.

Schools Offering a Computer Science Major

Check out some schools below that offer computer science majors and find the full list of schools here that you can filter and sort.

2024 Best Colleges

does computer science have coursework

Search for your perfect fit with the U.S. News rankings of colleges and universities.

College Admissions: Get a Step Ahead!

Sign up to receive the latest updates from U.S. News & World Report and our trusted partners and sponsors. By clicking submit, you are agreeing to our Terms and Conditions & Privacy Policy .

Ask an Alum: Making the Most Out of College

You May Also Like

The degree for investment bankers.

Andrew Bauld May 31, 2024

does computer science have coursework

States' Responses to FAFSA Delays

Sarah Wood May 30, 2024

does computer science have coursework

Nonacademic Factors in College Searches

Sarah Wood May 28, 2024

does computer science have coursework

Takeaways From the NCAA’s Settlement

Laura Mannweiler May 24, 2024

does computer science have coursework

New Best Engineering Rankings June 18

Robert Morse and Eric Brooks May 24, 2024

does computer science have coursework

Premedical Programs: What to Know

Sarah Wood May 21, 2024

does computer science have coursework

How Geography Affects College Admissions

Cole Claybourn May 21, 2024

does computer science have coursework

Q&A: College Alumni Engagement

LaMont Jones, Jr. May 20, 2024

does computer science have coursework

10 Destination West Coast College Towns

Cole Claybourn May 16, 2024

does computer science have coursework

Scholarships for Lesser-Known Sports

Sarah Wood May 15, 2024

does computer science have coursework

Computer Science

Program finder image

Undergraduate

The concentration in Computer Science is designed to teach students skills and ideas they will use immediately and in the future. Because information technology affects every aspect of society, graduates with computer science degrees have open to them an enormous variety of careers—engineering, teaching, medicine, law, basic science, entertainment, management, and countless others. Students are also eligible to apply for an A.B./S.M. degree program.

The Bachelor of Liberal Arts degree is designed for industry professionals with years of work experience who wish to complete their degrees part time, both on campus and online, without disruption to their employment. Our typical student is over 30, has previously completed one or two years of college, and works full time.

A graduate degree in computer science equips you to stay ahead of the curve and meet the computing challenges of today and tomorrow. In our rigorous master’s degree program, you’ll focus on advanced computer science theories and applications. Learning from expert faculty from Harvard and industry, you’ll acquire the skills to design, develop, and maintain complex computer and software systems.

Harvard School of Engineering offers a Doctor of Philosophy (Ph.D) degree in Computer Science, conferred through the Graduate School of Arts and Sciences. In addition to the Ph.D. in Computer Science, the Harvard School of Engineering also offers master’s degrees in Computational Science and Engineering as well as in Data Science. Computer scientists at Harvard pursue work in a wide range of areas including theoretical computer science, artificial intelligence, economics and computer science, privacy and security, data-management systems, intelligent interfaces, operating systems, computer graphics, computational linguistics, robotics, networks, architectures, program languages, machine learning, and visualization.

Computer Science Degree: What Is It and What Can You Do With It?

portrait of Doug Wintemute, MA

Doug Wintemute

Contributing Writer

Learn about our editorial process .

Updated April 12, 2024

Hannah Muniz

Contributing Editor

Reviewed by

Monali Mirel Chuatico

Contributing Reviewer

Our Integrity Network

TheBestSchools.org is committed to delivering content that is objective and actionable. To that end, we have built a network of industry professionals across higher education to review our content and ensure we are providing the most helpful information to our readers.

Drawing on their firsthand industry expertise, our Integrity Network members serve as an additional step in our editing process, helping us confirm our content is accurate and up to date. These contributors:

  • Suggest changes to inaccurate or misleading information.
  • Provide specific, corrective feedback.
  • Identify critical information that writers may have missed.

Integrity Network members typically work full time in their industry profession and review content for TheBestSchools.org as a side project. All Integrity Network members are paid members of the Red Ventures Education Integrity Network.

Explore our full list of Integrity Network members.

TheBestSchools.org is an advertising-supported site. Featured or trusted partner programs and all school search, finder, or match results are for schools that compensate us. This compensation does not influence our school rankings, resource guides, or other editorially-independent information published on this site.

Are you ready to discover your college program?

A computer science degree equips you with valuable technical skills many employers and industries seek. In this program, you'll learn how to code, design and analyze algorithms, and develop software. You'll also learn to think critically, problem-solve, and create new technologies.

Depending on your skills and interests, you could even use your computer science major to launch a career in non-tech fields like business, finance, and healthcare. As the role of technology expands, the demand for computer science professionals will continue to grow.

What Is a Computer Science Degree?

A computer science degree involves computers and computer systems. These programs teach you how to design, test, and analyze different systems and software.

You'll also study the theory and mathematics of computation so you can find solutions to problems.

Common computer science courses include:

  • Artificial intelligence
  • Data structures
  • Discrete algebra
  • Web development
  • Human-computer interaction
  • Operating systems

Cybersecurity

A degree in computer science can help you develop in-demand hard skills like coding, networking, technical writing, and design and development. Some of the soft skills you'll learn include critical thinking, problem-solving, communication, collaboration, and organization.

Featured Computer Science Programs

Learn about start dates, transferring credits, availability of financial aid, and more by contacting the universities below.

Types of Computer Science Degrees You Can Get

Your career opportunities will depend on your training and education. Here are the major types of computer science degrees and credentials you can earn and what you'll learn in these programs.

Certificate in Computer Science

  • Program Length: <1 year
  • Potential Jobs: Computer support specialist, web developer

Though not technically a degree, a certificate in computer science generally costs less than a degree and can qualify you for several entry-level computer science jobs.

You'll learn skills like coding, programming, and computer networking. An undergraduate certificate provides a basic foundation in computer science, whereas a graduate certificate can help advance your career.

Many colleges offer certificates in areas like web development and software development.

Associate Degree in Computer Science

  • Program Length: 2 years
  • Potential Jobs: Computer network support specialist, computer technician

An associate degree in computer science usually includes coursework in computer systems, information technology (IT), and programming. You'll strengthen your programming skills while learning about operating systems, web development, and database administration.

If you later decide to pursue a bachelor's in computer science, you should be able to transfer some or all of your credits toward a four-year school.

Bachelor's Degree in Computer Science

  • Program Length: 4 years
  • Potential Jobs: Computer network architect, computer programmer, software developer

In a bachelor's in computer science program, you'll master foundational computing skills while taking upper-division coursework in your concentration. You may take classes in areas like network administration, database management, and software development.

A bachelor's degree meets the entry-level requirements for most IT and computer science jobs.

Master's Degree in Computer Science

  • Potential Jobs: Computer scientist, lead software developer, senior software engineer

A master's in computer science provides advanced training in areas like computing theory, systems architecture, and software development. Most master's programs offer concentrations that include managerial coursework.

A master's degree can help you qualify for leadership roles, which often boast high salaries. For example, many employers prefer candidates with master's degrees for positions like lead software developer and senior software engineer.

Doctorate in Computer Science

  • Program Length: 4-5 years
  • Potential Jobs: Computer science professor, senior computer scientist

A doctorate is the highest degree you can get in computer science. In this program, you'll take advanced classes and write a dissertation. After meeting coursework and doctoral examination requirements, you must defend your dissertation.

Many computer science Ph.D. graduates work in research or academia as computer scientists and professors.

Students Speak

“If you are looking to get a job as a developer at most tech companies, a bachelor's [in computer science] is all you need. … If you are looking for a job with more of a data focus, getting a master's degree and taking coursework related to data science and statistics can help.”

image of Alejandro Cantare

 — Alejandro Cantarero , Ph.D., Data and Product Leader

5 Popular Computer Science Major Concentrations

Your concentration in college can greatly impact your studies and future career. Here are some of the most common computer science major concentrations you can pursue.

Artificial Intelligence

Game design, software engineering, can you get an online computer science degree.

Many schools offer online computer science degrees . These programs feature more flexible schedules, often offering asynchronous options.

There are usually no major differences between online coursework and on-campus coursework. Many online schools even have virtual labs that allow you to complete the same practical assignments as in-person students.

Online students may have fewer peer-to-peer engagement opportunities than their on-campus counterparts, but online programs can simulate this using forums and virtual classrooms.

Accreditation for Computer Science Programs

Before you apply to any computer science degree programs, make sure the schools are accredited.

Accreditation recognizes schools and programs that meet high standards. Independent, nonprofit accrediting agencies evaluate schools on their student learning outcomes, academic missions, and faculty qualifications.

Institutional accreditation ensures your degree will be recognized by employers and other schools. Attending an accredited school also means you can apply for federal financial aid .

Individual computer science programs can pursue programmatic accreditation. Look for programs accredited by ABET . Students who choose an ABET-accredited program can feel confident their computer science degree will provide a rigorous and relevant curriculum.

You can check prospective schools' accreditation statuses by using the U.S. Department of Education's accreditation database or the Council for Higher Education Accreditation's school directory .

What Can You Do With a Computer Science Degree?

The types of computer science degree jobs you can qualify for will depend on your degree and concentration. As a whole, computer science graduates have tons of career options.

The Bureau of Labor Statistics (BLS) projects the addition of nearly 377,500 computer and information technology jobs every year until 2032. The median annual salary for workers in this sector was $100,530; more than double the median salary for all jobs.

Source: BLS

“Study what you love. Many courses in school do not translate directly to on-the-job skills, and that's OK. … If you have an interest in math or statistics, adding this coursework to your computer science studies can open a lot of doors.”

Is a Computer Science Degree Worth It?

While a computer science degree appeals to many students, it's not for everyone. Working in computer science requires a significant commitment to and interest in computers and technology. You also need to be willing to adapt to industry changes.

Weigh the pros and cons of a computer science degree to determine whether this path is right for you.

Pros of a Computer Science Degree

  • A degree can lead to high-earning careers that exceed the national median salary.
  • Computer and IT jobs are experiencing high demand.
  • Computer science's broad scope provides you with educational and professional flexibility.
  • You can innovate and make improvements for people, businesses, and society.

Cons of a Computer Science Degree

  • As a computer science professional, you'll need to pursue continued education and upskilling.
  • Many computer science jobs experience fierce competition.
  • The computer science field is highly technical, which may not appeal to all types of students.
  • You may need to specialize to be competitive — and specializing can mean more education and upskilling.

Frequently Asked Questions About Computer Science Degrees

Is computer science a good major.

Computer science can be a good major for certain people, especially if you love computers and keeping up with technological changes and trends. A computer science degree can lead to various well-paying computer and IT careers.

The field also provides a strong foundation for you to build upon. For example, you can specialize within your degree, grow via professional experience, or pursue an advanced degree.

Is computer science a hard major?

A computer science major can be challenging because it touches on so many different aspects of computers and computer systems. You'll need to take math and statistics classes and pick up many technical skills, including programming and networking.

If you commit yourself to your studies and get support as needed, you should be able to successfully complete this program.

How long does an online computer science degree take?

The length of an online computer science degree will depend on the credential. Typically, associate degrees take about two years, bachelor's degrees about four years, master's degrees about two years, and doctorates about five years.

Accelerated online programs may offer shorter timeframes. These programs allow you to take heavier course loads to reduce the overall time spent in school. For example, you may be able to earn a bachelor's in computer science in three years instead of four.

What is the dropout rate for computer science majors?

Computer science majors typically have one of the highest dropout rates among all college programs. Computer science is a popular program that can prove too challenging and technical for some students.

It's important that you have appropriate expectations of a computer science degree before starting a program and are willing to ask for support and resources when needed.

Do computer science majors make good money?

Generally, yes. Many computer science majors earn good money in their careers. According to the BLS, computer and IT jobs boast the second-highest median annual salary among all major occupational groups after management occupations.

Explore More Computer Science Resources

Popular with our students..

Highly informative resources to keep your education journey on track.

Take the next step toward your future with online learning.

Discover schools with the programs and courses you’re interested in, and start learning today.

Find Info For

  • Become a Student
  • Current Students
  • Research and Partnerships

Quick Links

  • Undergraduate
  • Computer Science Degree Requirements 2023
  • Undergraduate Program
  • Academic Advisors
  • Student Life
  • Frequently Asked Questions
  • Student Concerns
  • Undergraduate Research
  • CS Course Proficiency Exams
  • Artificial Intelligence Degree Requirements

Computer Science Degree Requirements

  • Data Science Degree Requirements
  • Minor in Computer Science
  • BS/MS Degree Program in CS
  • Honors in Computer Science
  • Cooperative Education Program

Curriculum Resources

  • Scholarships
  • Bridge Program

The first six (core) courses, which are taken in the freshman and sophomore years, lay a strong foundation for computer science majors. Each student then selects a Track in which to complete 6 advanced courses. Each Track has 2-4 Required Courses and a list of potential electives. A student may complete more than one Track if desired.

The flexibility of the Computer Science curriculum comes from requiring only six foundational (core) courses followed by one or more Tracks, which allow students to deepen their understanding in a specific area of computer science. Some intersection between tracks allows specialization in multiple areas, for example, Systems Programming and Software Engineering.

All beginning computer science majors are required to take  CS 19300 , Tools. This is a 1 credit course that Computer Science students take in their first semester. Students are equally encouraged to take  CS 29100 , Sophomore Development Seminar, and  CS 39100 , Junior Resource Seminar.

All major required courses, all track requirements and track selectives, and their pre-requisites, regardless of department, must be completed with a grade of C or better .

Transfer credit (including credit from regional campuses) for 100 and 200 level core courses is possible only if those courses are taken before the student enters the Purdue West Lafayette Computer Science program.

To view course details for all tracks at the same time, click  Computer Science Track Details Prior to Fall 2019 (PDF),   Computer Science Track Details as of Fall 2019 (PDF), or  Computer Science Track Details as of Fall 2023  (PDF).

The Department of Computer Science does not accept transfer credit for 300 or 400 level CS coursework (with the exception of pre-approved Study Abroad coursework). 

No course can be counted both for required and elective credit. (This holds for all tracks).

Detailed BS in Computer Science Description and Plan of Study from the University Catalog

College of Science Requirement Restrictions

Teambuilding and Collaboration  (Cannot be met through credit-by-exam)

Approved course & approved experience: No departmental restrictions

Unacceptable courses for credit for CS students in College of Science

Computer Science prerequisite flowchart (PDF)

Visit the College of Science Curriculum Resources page  to find Degree Progression Guides.

Department of Computer Science, 305 N. University Street, West Lafayette, IN 47907

Phone: (765) 494-6010 • Fax: (765) 494-0739

Copyright © 2024 Purdue University | An equal access/equal opportunity university | Copyright Complaints

Trouble with this page? Disability-related accessibility issue ? Please contact the College of Science .

You are using an outdated browser. Please upgrade your browser to improve your experience.

does computer science have coursework

Health & Nursing

Courses and certificates.

  • Bachelor's Degrees
  • View all Business Bachelor's Degrees
  • Business Management – B.S. Business Administration
  • Healthcare Administration – B.S.
  • Human Resource Management – B.S. Business Administration
  • Information Technology Management – B.S. Business Administration
  • Marketing – B.S. Business Administration
  • Accounting – B.S. Business Administration
  • Finance – B.S.
  • Supply Chain and Operations Management – B.S.
  • Accelerated Information Technology Bachelor's and Master's Degree (from the School of Technology)
  • Health Information Management – B.S. (from the Leavitt School of Health)

Master's Degrees

  • View all Business Master's Degrees
  • Master of Business Administration (MBA)
  • MBA Information Technology Management
  • MBA Healthcare Management
  • Management and Leadership – M.S.
  • Accounting – M.S.
  • Marketing – M.S.
  • Human Resource Management – M.S.
  • Master of Healthcare Administration (from the Leavitt School of Health)
  • Data Analytics – M.S. (from the School of Technology)
  • Information Technology Management – M.S. (from the School of Technology)
  • Education Technology and Instructional Design – M.Ed. (from the School of Education)

Certificates

  • Supply Chain
  • Accounting Fundamentals
  • View all Business Degrees

Bachelor's Preparing For Licensure

  • View all Education Bachelor's Degrees
  • Elementary Education – B.A.
  • Special Education and Elementary Education (Dual Licensure) – B.A.
  • Special Education (Mild-to-Moderate) – B.A.
  • Mathematics Education (Middle Grades) – B.S.
  • Mathematics Education (Secondary)– B.S.
  • Science Education (Middle Grades) – B.S.
  • Science Education (Secondary Chemistry) – B.S.
  • Science Education (Secondary Physics) – B.S.
  • Science Education (Secondary Biological Sciences) – B.S.
  • Science Education (Secondary Earth Science)– B.S.
  • View all Education Degrees

Bachelor of Arts in Education Degrees

  • Educational Studies – B.A.

Master of Science in Education Degrees

  • View all Education Master's Degrees
  • Curriculum and Instruction – M.S.
  • Educational Leadership – M.S.
  • Education Technology and Instructional Design – M.Ed.

Master's Preparing for Licensure

  • Teaching, Elementary Education – M.A.
  • Teaching, English Education (Secondary) – M.A.
  • Teaching, Mathematics Education (Middle Grades) – M.A.
  • Teaching, Mathematics Education (Secondary) – M.A.
  • Teaching, Science Education (Secondary) – M.A.
  • Teaching, Special Education (K-12) – M.A.

Licensure Information

  • State Teaching Licensure Information

Master's Degrees for Teachers

  • Mathematics Education (K-6) – M.A.
  • Mathematics Education (Middle Grade) – M.A.
  • Mathematics Education (Secondary) – M.A.
  • English Language Learning (PreK-12) – M.A.
  • Endorsement Preparation Program, English Language Learning (PreK-12)
  • Science Education (Middle Grades) – M.A.
  • Science Education (Secondary Chemistry) – M.A.
  • Science Education (Secondary Physics) – M.A.
  • Science Education (Secondary Biological Sciences) – M.A.
  • Science Education (Secondary Earth Science)– M.A.
  • View all Technology Bachelor's Degrees
  • Cloud Computing – B.S.
  • Computer Science – B.S.
  • Cybersecurity and Information Assurance – B.S.
  • Data Analytics – B.S.
  • Information Technology – B.S.
  • Network Engineering and Security – B.S.
  • Software Engineering – B.S.
  • Accelerated Information Technology Bachelor's and Master's Degree
  • Information Technology Management – B.S. Business Administration (from the School of Business)
  • View all Technology Master's Degrees
  • Cybersecurity and Information Assurance – M.S.
  • Data Analytics – M.S.
  • Information Technology Management – M.S.
  • MBA Information Technology Management (from the School of Business)
  • Full Stack Engineering
  • Web Application Deployment and Support
  • Front End Web Development
  • Back End Web Development

3rd Party Certifications

  • IT Certifications Included in WGU Degrees
  • View all Technology Degrees
  • View all Health & Nursing Bachelor's Degrees
  • Nursing (RN-to-BSN online) – B.S.
  • Nursing (Prelicensure) – B.S. (Available in select states)
  • Health Information Management – B.S.
  • Health and Human Services – B.S.
  • Psychology – B.S.
  • Health Science – B.S.
  • Healthcare Administration – B.S. (from the School of Business)
  • View all Nursing Post-Master's Certificates
  • Nursing Education—Post-Master's Certificate
  • Nursing Leadership and Management—Post-Master's Certificate
  • Family Nurse Practitioner—Post-Master's Certificate
  • Psychiatric Mental Health Nurse Practitioner —Post-Master's Certificate
  • View all Health & Nursing Degrees
  • View all Nursing & Health Master's Degrees
  • Nursing – Education (BSN-to-MSN Program) – M.S.
  • Nursing – Leadership and Management (BSN-to-MSN Program) – M.S.
  • Nursing – Nursing Informatics (BSN-to-MSN Program) – M.S.
  • Nursing – Family Nurse Practitioner (BSN-to-MSN Program) – M.S. (Available in select states)
  • Nursing – Psychiatric Mental Health Nurse Practitioner (BSN-to-MSN Program) – M.S. (Available in select states)
  • Nursing – Education (RN-to-MSN Program) – M.S.
  • Nursing – Leadership and Management (RN-to-MSN Program) – M.S.
  • Nursing – Nursing Informatics (RN-to-MSN Program) – M.S.
  • Master of Healthcare Administration
  • MBA Healthcare Management (from the School of Business)
  • Business Leadership (with the School of Business)
  • Supply Chain (with the School of Business)
  • Accounting Fundamentals (with the School of Business)
  • Back End Web Development (with the School of Technology)
  • Front End Web Development (with the School of Technology)
  • Web Application Deployment and Support (with the School of Technology)
  • Full Stack Engineering (with the School of Technology)
  • Single Courses
  • Course Bundles

Apply for Admission

Admission requirements.

  • New Students
  • WGU Returning Graduates
  • WGU Readmission
  • Enrollment Checklist
  • Accessibility
  • Accommodation Request
  • School of Education Admission Requirements
  • School of Business Admission Requirements
  • School of Technology Admission Requirements
  • Leavitt School of Health Admission Requirements

Additional Requirements

  • Computer Requirements
  • No Standardized Testing
  • Clinical and Student Teaching Information

Transferring

  • FAQs about Transferring
  • Transfer to WGU
  • Transferrable Certifications
  • Request WGU Transcripts
  • International Transfer Credit
  • Tuition and Fees
  • Financial Aid
  • Scholarships

Other Ways to Pay for School

  • Tuition—School of Business
  • Tuition—School of Education
  • Tuition—School of Technology
  • Tuition—Leavitt School of Health
  • Your Financial Obligations
  • Tuition Comparison
  • Applying for Financial Aid
  • State Grants
  • Consumer Information Guide
  • Responsible Borrowing Initiative
  • Higher Education Relief Fund

FAFSA Support

  • Net Price Calculator
  • FAFSA Simplification
  • See All Scholarships
  • Military Scholarships
  • State Scholarships
  • Scholarship FAQs

Payment Options

  • Payment Plans
  • Corporate Reimbursement
  • Current Student Hardship Assistance
  • Military Tuition Assistance

WGU Experience

  • How You'll Learn
  • Scheduling/Assessments
  • Accreditation
  • Student Support/Faculty
  • Military Students
  • Part-Time Options
  • Virtual Military Education Resource Center
  • Student Outcomes
  • Return on Investment
  • Students and Gradutes
  • Career Growth
  • Student Resources
  • Communities
  • Testimonials
  • Career Guides
  • Skills Guides
  • Online Degrees
  • All Degrees
  • Explore Your Options

Admissions & Transfers

  • Admissions Overview

Tuition & Financial Aid

Student Success

  • Prospective Students
  • Current Students
  • Military and Veterans
  • Commencement
  • Careers at WGU
  • Advancement & Giving
  • Partnering with WGU

Bachelor of Science

Online Computer Science Degree

3rd Party Certifications and Program Accreditation

Linux Professional Institute logo

An ABET-Accredited Online Computer Science Degree That Prepares You for a Dynamic Career

Earn your bachelor’s degree in computer science from WGU and  increase your earning potential , job security, and opportunities for advancement. This degree prepares you to design, develop, and optimize systems that will meet industry needs, and gives you the opportunity to earn multiple  industry-recognized certifications .

Designed with input from industry experts, the ABET-accredited B.S. Computer Science degree program at WGU provides a solid foundation for the most  in-demand skills :

  • Architecture and systems
  • Data structures
  • Computer theory
  • Version Control

does computer science have coursework

You can earn while you learn with this information technology degree.  Top technology certifications , such as Linux and Axelos, are  built into the CS degree program  and do not add time or additional costs—but they do add to your résumé as soon as you've earned them, even before you complete your degree!

60% of graduates finish within 

WGU lets you move more quickly through material you already know and advance as soon as you're ready. The result: You may finish faster.

*WGU Internal Data

Tuition per six-month term is

Tuition charged per term—rather than per credit—helps students control the ultimate cost of their degree. Finish faster, pay less!

Average salary increase

WGU Computer Science graduates report an average salary increase of $17,691 after completing this degree program.

Ready to Start Your WGU Journey?

Next Start Date: {{startdate}}

Start Dates the 1st of Every Month

Computer Science Courses

Program consists of 38 courses

At WGU, we design our curriculum to be timely, relevant, and practical—all to help you show that you know your stuff.

Earning an online ABET-accredited bachelor’s degree in Computer Science, designed by industry experts, combines theoretical depth and technical know-how. This program enhances the practical knowledge you have gained through experience and certifications. The experts who make up our IT Program Council know exactly what it takes for an online degree program to help you be successful in the field of computer science.

This program focuses on the skills you need to become a linchpin in your organization. In addition to core IT skills, the program focuses on algorithms and data structures, artificial intelligence and robotics, database and information retrieval, human-computer communication, numerical and symbolic computation, and more. Start earning your degree online today.

The B.S. Computer Science degree program is an all-online program that you will complete by studying and working independently with instruction and support from WGU faculty. You will be expected to complete at least 12 competency units each 6-month term. (One course is typically 3 or 4 units.)

An unofficial estimated 14 courses are fulfilled by your associate degree leaving 27 courses.

This is an unofficial estimate of your transfer credits. You may receive more or less credits depending upon the specific courses taken to complete your degree and other credits you may have. Below are the anticipated courses that will be fulfilled based on your indication that you have earned an associate’s degree. During the enrollment process this information will be verified.

This is Introduction to Physical and Human Geography, a three-module course that addresses the question of what geography really is in today's complex world; how migration affects—and has been affected by—geography; and one of the biggest present problems related to geography: climate change. Because the course is self-paced, you may move through the material as quickly or as slowly as you need to, with the goal of demonstrating proficiency in the five competencies covered in the final assessment. If you have no prior knowledge of this material, you can expect to spend 30–40 hours on the course content.

Welcome to Composition: Successful Self-Expression! In this course, you will focus on four main topics: professional writing for a cross-cultural audience, narrowing research topics and questions, researching for content to support a topic, and referencing research sources. Each section includes learning opportunities through readings, videos, audio, and other relevant resources. Assessment activities with feedback also provide opportunities to check your learning, practice, and show how well you understand course content. Because the course is self-paced, you may move through the material as quickly or as slowly as you need to gain proficiency in the seven competencies that will be covered in the final assessment. If you have no prior knowledge or experience, you can expect to spend 30-40 hours on the course content. You will demonstrate competency through a performance assessment. There is no prerequisite for this course and there is no specific technical knowledge needed.

Health, Fitness, and Wellness focuses on the importance and foundations of good health and physical fitness—particularly for children and adolescents—addressing health, nutrition, fitness, and substance use and abuse.

Ethics in Technology examines the ethical considerations of technology use in the 21st century and introduces students to a decision-making process informed by ethical frameworks. Students will study specific cases related to important topics such as surveillance, social media, hacking, data manipulation, plagiarism and piracy, artificial intelligence, responsible innovation, and the digital divide. This course has no prerequisites.

American Politics and the U.S. Constitution examines the evolution of representative government in the United States and the changing interpretations of the civil rights and civil liberties protected by the Constitution. This course will give candidates an understanding of the powers of the branches of the federal government, the continual tensions inherent in a federal system, the shifting relationship between state and federal governments, and the interactions between elected officials and the ever-changing electorate. This course will focus on such topics as the role of a free press in a democracy, the impact of changing demographics on American politics, and the debates over and expansion of civil rights. Upon completion of the course, candidates should be able to explain the basic functions of the federal government, describe the forces that shape American policy and politics, and be better prepared to participate in America’s civic institutions. This course has no prerequisite.

Welcome to Introduction to Communication: Connecting with Others! It may seem like common knowledge that communication skills are important, and that communicating with others is inescapable in our everyday lives. While this may appear simplistic, the study of communication is actually complex, dynamic, and multifaceted. Strong communication skills are invaluable to strengthening a multitude of aspects of life. Specifically, this course will focus on communication in the professional setting, and present material from multiple vantage points, including communicating with others in a variety of contexts, across situations, and with diverse populations. Upon completion, you will have a deeper understanding of both your own and others’ communication behaviors, and a toolbox of effective behaviors to enhance your experience in the workplace.

This is a Global Arts and Humanities course that contains three modules with corresponding lessons. This course is an invitation to see the world through the humanities, examine the humanities during the Information Age, and explore the global origins of music—essentially questioning what makes us human, and how people are connected across culture and time. Each module includes learning opportunities through readings, videos, audio, and other relevant resources. Assessment activities with feedback also provide opportunities to practice and check learning. With no prior knowledge or experience, a learner can expect to spend 30-40 hours on the course content.

Technical Communication introduces skills in editing professional communications, evaluating the impact of professional etiquette in digital environments, and in creating artifacts that are persuasive, informational, and research-based. The course also introduces skills in delivering multimedia presentations using professional verbal communication skills.

Applied Probability and Statistics is designed to help students develop competence in the fundamental concepts of basic statistics including: introductory algebra and graphing; descriptive statistics; regression and correlation; and probability. Statistical data and probability are often used in everyday life, science, business, information technology, and educational settings to make informed decisions about the validity of studies and the effect of data on decisions. This course discusses what constitutes sound research design and how to appropriately model phenomena using statistical data. Additionally, the content covers simple probability calculations, based on events that occur in the business and IT industries. No prerequisites are required for this course.

This course guides candidates to apply theoretical concepts of calculus to real-world situations, demonstrating a developing mathematical mindset. This course focuses on limits, derivatives, integrals, and differential equations; it also prepares students for Discrete Mathematics. Prerequisites may include an entrance exam that assesses pre-calculus skills, or readiness; alternatively, completion of pre-calculus within the past 3 – 5 years.

Discrete Mathematics I helps candidates develop competence in the use of abstract, discrete structures fundamental to computer science. In particular, this course will introduce candidates to logic and proofs; Boolean algebra and functions; set theory; finite and infinite sequences and series; and relations, graphs, and trees. The course emphasizes applications in computer science. Calculus I is a prerequisite for this course.

Discrete Mathematics II addresses abstract, discrete, computational methods used in computer science. In particular, this class introduces searching and sorting algorithms; big-O estimates; number theory and cryptography; recursion and induction; counting and advanced counting techniques; discrete probability; and modeling computation. This course emphasizes applications in computer science. Discrete Mathematics I is a prerequisite for this course.

This course provides students an introduction to using the scientific method and engaging in scientific research to reach conclusions about the natural world. Students will design and carry out an experiment to investigate a hypothesis by gathering quantitative data. They will also research a specific ecosystem using academic sources and draw conclusions from their findings.

Introduction to IT examines information technology as a discipline and the various roles and functions of the IT department as business support. Students are presented with various IT disciplines including systems and services, network and security, scripting and programming, data management, and business of IT, with a survey of technologies in every area and how they relate to each other and to the business.

Linux Foundations prepares learners for the LPI Linux Essentials certification, and is an introduction to Linux as an operating system as well as an introduction to open-source concepts and the basics of the Linux command line. Learners will gain skills in identifying the fundamentals of open-source software and to develop resources for data access and security.

This course covers operating systems from the perspective of a programmer, including the placement of the operating system in the layered application development model. Primarily, OSs provide memory management, task scheduling, and CPU allocation. Secondarily, OSs provide tools for file storage/access, permission control, event handling, network access, and cross-process interaction. OSs also provide tools for debugging problems within a single process or within groups of programs. There are no prerequisites for this course.

Web Development Foundations introduces students to web design and development using HTML, XML, and Cascading Style Sheets (CSS), the foundational languages of the web. This course also covers how to troubleshoot problems using developer tools and integrated development environments commonly employed in web development. There are no prerequisites for this course. 

Data Management Foundations offers an introduction in creating conceptual, logical and physical data models.  Students gain skills in creating databases and tables in SQL-enabled database management systems, as well as skills in normalizing databases. No prerequisites are required for this course

Data Management - Applications covers conceptual data modeling and introduces MySQL. Students will learn how to create simple to complex SELECT queries, including subqueries and joins, and how to use SQL to update and delete data. Topics covered in this course include exposure to MySQL; creating and modifying databases, tables, views, foreign keys and primary keys (FKs and PKs), and indexes; populating tables; and developing simple Select-From-Where (SFW) queries to complex 3+ table join queries. The following course is a prerequisite: Data Management - Foundations.

Advanced Data Management enables learners to extract and analyze raw data. Skillful data management allows organizations to discover and explore data in ways that uncover trends, issues, and their root causes. In turn, businesses are better equipped to capitalize on opportunities and more accurately plan for the future. As organizations continue to extract larger and more detailed volumes of data, the need is rapidly growing for IT professionals who possess data management skills. The skills gained in this course include performing advanced relational data modeling as well as designing data marts, lakes, and warehouses. This course will empower learners with the skills to build business logic at the database layer to employ more stability and higher data-processing speeds. Learners will gain the ability to automate common tasks to summarize and integrate data as they prepare it for analysis. Data Management - Foundations is a prerequisite for this course.

Software Engineering introduces the concepts of software engineering to students who have completed the core courses in programming and project management. The principles build on previously acquired concepts, switching the emphasis from programming simple routines to engineering robust and scalable software solutions. This course does not cover programming, but it provides an overview of software engineering processes and their challenging nature, focusing on the need for a disciplined approach to software engineering. A generic process framework provides the groundwork for formal process models. Prescriptive process models such as the Waterfall Model and Agile Development are included. This course also introduces the elements and phases of software engineering, including requirements engineering, design concepts, and software quality. There are no prerequisites for this course.

Computer Architecture introduces students to concepts and characteristics of organization and architecture applied to modern computer systems including performance, processor, memory, input/output, and multiprocessors to optimize system design, performance, and efficiency.

Data Structures and Algorithms I covers the fundamentals of dynamic data structures, such as bags, lists, stacks, queues, trees, and hash tables with their associated algorithms. This course discusses object-oriented design and abstract data types as design paradigms. The course emphasizes problem-solving and techniques for designing efficient, maintainable software applications. Students will implement simple applications using the techniques learned.

Data Structures and Algorithms II explores the analysis and implementation of high-performance data structures and supporting algorithms, including graphs, hashing, self-adjusting data structures, set representations, and dynamic programming. The course also introduces students to NP-complete problems. The course discusses how to use Python techniques to implement software solutions for problems of memory management and data compression. This course has two prerequisites: Data Structures and Algorithms I and Discrete Math II.

Introduction to Artificial Intelligence explores the foundational principles and practices of artificial intelligence (AI), machine learning, and robotics. The course prepares students to analyze relationships, build agents, and create models relevant to AI problems. The prerequisites for this course are Introduction to Probability and Statistics as well as Data Structures and Algorithms II.

The Computer Science Capstone course allows the student to demonstrate their application of the academic and professional abilities developed during the BSCS program. The capstone challenges students to integrate skills and knowledge from all program domains into one project.

This course lays the foundation for understanding terminology, principles, processes, and best practices of information security at local and global levels. It further provides an overview of basic security vulnerabilities and countermeasures for protecting information assets through planning and administrative controls within an organization. This course has no prerequisites.

Back-End Programming introduces students to creating back-end components of a web application with the support of framework packages. This course also teaches students how to implement database functionality in a web application and how to create web services. This course requires intermediate expertise in object-oriented programming and the Java language.

Java Fundamentals introduces you to object-oriented programming in the Java language. You will create and call methods, design Java classes, and other object-oriented principles and constructs to develop software that meets business requirements. This course requires foundational knowledge of programming including variables, type, program flow and debugging.

Java Frameworks builds object-oriented programming expertise and introduces powerful new tools for Java application development. Students will execute exception handling, Java frameworks, and other object-oriented principles and constructs to develop a complete application including a user interface. This course requires foundational knowledge of object-oriented programming and the Java language.

Advanced Java refines object-oriented programming expertise and skills. You will implement multithreaded, object-oriented code with the features of Java necessary to develop software that meets business requirements. Additionally, you will determine how to deploy software applications using cloud services. This course requires intermediate expertise in object-oriented programming and the Java language.

Software Design and Quality Assurance applies a QA focus to every phase of the software development life cycle. This course investigates best practices for quality analysis, quality planning, and testing strategies as they pertain to the everyday practice of software development. Students will come to understand how their work fits into the bigger picture: how QA, testing, and code-writing practices interact within specific process models; the potential impact of new code on existing code or on other applications; the importance of usability and the influence users have on the ultimate success of an application. Students will explore test plans, test cases, unit tests, integration tests, regression tests, usability tests, and test and review tools.

Scripting and Programming - Applications for undergraduates explores the various aspects of the C++ programming language by examining its syntax, the development environment, and tools and techniques to solve some real-world problems.

Version control is critical to maintaining software and enabling scalability solutions. A best practice for any programming project that requires multiple files uses version control. Version control enables teams to have collaborative workflows and enhances the software development lifecycle. This course introduces students to the basics of publishing, retrieving, branching, and cloning. There are no prerequisites for this course.

Scripting and Programming - Foundations introduces programming basics such as variables, data types, flow control, and design concepts. The course is language-agnostic in nature, ending in a survey of languages, and introduces the distinction between interpreted and compiled languages. Learners will gain skills in identifying scripts for computer program requirements and in using fundamental programming elements as part of common computer programming tasks. Learners will also gain an understanding of the logic and outcome of simple algorithms.

Network and Security - Foundations introduces learners to the basic network systems and concepts related to networking technologies. Learners will gain skills in applying network security concepts for business continuity, data access, and confidentiality, and in identifying solutions for compliance with security guidance.

Business of IT - Applications examines Information Technology Infrastructure Library (ITIL®) terminology, structure, policies, and concepts. Focusing on the management of information technology (IT) infrastructure, development, and operations, learners will explore the core principles of ITIL practices for service management to prepare them for careers as IT professionals, business managers, and business process owners. This course has no prerequisites.

IT Leadership Foundations is an introductory course that provides students with an overview of organizational structures, communication, and leadership styles specific to information technology in organizations. It also introduces students to some of the power skills that help make successful IT professionals, including time management, problem solving, and emotional intelligence. Students in this course explore their own strengths and passions in relation to the field. There are no prerequisites for this course.

Capstone Project

Special requirements for this program

At the end of your program, you will complete a capstone project that represents the culmination of all your hard work—a project that allows you to take what you’ve learned and apply it to a real-world situation, proposing a solution to an actual issue faced in an actual place of business. 

Skills For Your Résumé

As part of this program, you will develop a range of valuable skills that employers are looking for. 

  • Analyzed the objectives, scope, and organizational impact of software systems, providing valuable insights.
  • Implemented a process to create and maintain software source code to achieve goals, ensuring efficient and well-organized codebases.
  • Java (Programming Language): Created an object-oriented program using Java, demonstrating strong programming skills.
  • Software Development: Specified a software development lifecycle plan that meets project requirements, leading to successful project execution, on-time delivery, and high-quality software products.
  • SQL (Programming Language): Manipulated data with structured query language (SQL) statements, enabling effective data retrieval and management.
  • Software Engineering: Collaborated with developers to determine the optimal software design, fostering effective teamwork, and ensuring that software solutions are well-designed, efficient, and user-friendly.

“I truly enjoyed my experience with, and time at, WGU. I appreciate the innovative approach to education making it competency-based. Especially compared to a traditional university that would rather I instead pointlessly sit in a class for 6 months even if I am already competent in the areas the class is aiming to educate me in. My mentor was also amazing and helped me power through the program at the pace I expected. Couldn't have done it without him. Literally can't recommend WGU enough!”

—Steven Christensen B.S. Computer Science

WGU vs. Traditional Universities Compare the Difference

Traditional Universities

AVG. cost For 3RD PARTY IT CERTIFICATIONS

Included with your tuition cost

TUITION STRUCTURE

Per credit hour

Flat rate per 6-month term

Schedule and wait days or even weeks to meet with one of many counselors

Simply email or call to connect with your designated Program Mentor who supports you from day one

Scheduled time

Whenever you feel ready

Professor led lectures at a certain time and place

Courses available anytime, from anywhere

TIME TO FINISH

Approximately 4 years, minimal acceleration options

As quickly as you can master the material, typically less than 3 years

TRANSFER CREDITS

Few accepted, based on certain schools and specific courses

A generous transfer policy that is based on your specific situation

*The cost of valuable industry certification exams can range from $150 to $400. At WGU, we offer vouchers for certification exams, so the cost is included in your tuition price. Students may have to pay additional fees for membership to complete the certification requirements.

does computer science have coursework

Affordability

WGU tuition is charged per six-month term, not per credit. That means if you want to move faster through the online computer science degree program, you'll pay less.

does computer science have coursework

On Your Schedule

No class times, no assignment deadlines. You are in charge of your learning and schedule. You can move through your courses as quickly as you master the material, meaning you can graduate faster.  

does computer science have coursework

Entirely Online

The computer science bachelor's degree at WGU is 100% online, which means it works wherever you are. You can do your coursework at night after working at your full-time job, on weekends, while you're traveling the world or on vacation—it's entirely up to you.

Accredited, Respected, Recognized™

The flexibility you need. The respect you deserve. Earn a degree and IT certifications at the same time with WGU. Boost your résumé and showcase your talents to impress employers and set yourself apart from the competition.

ABET Computing Accreditation Commission

IT CERTIFICATIONS

3rd Party Computer Science Certifications Included

Industry certifications in this degree program includes a Linux certification, as well as the AXELOS ITIL® Foundation certification.    The cost of these certifications is included in your tuition , helping you save money as you enhance your skills. Earning certifications before you’ve even finished your degree gives you the knowledge, skills, and credentials that will immediately boost your résumé.

  • ITIL®*^ Foundation Certification

*Subject to vendor availability. ^ITIL® is a registered trade mark of AXELOS Limited, used under permission of AXELOS Limited. All rights reserved.

  • Linux Essentials

COST & TIME

An Affordable CS Degree

By charging per six-month term rather than per credit—and empowering students to accelerate through material they know well or learn quickly—WGU helps students control the ultimate cost of their degrees. The faster you complete your program, the less you pay for your degree.

A College Degree Within Reach

There is help available to make paying for school possible for you:

does computer science have coursework

The average student loan debt of WGU graduates in 2022 (among those who borrowed) was less than half* the national average.

does computer science have coursework

Most WGU students qualify for financial aid, and WGU is approved for federal financial aid and U.S. veterans benefits. 

does computer science have coursework

Many scholarship opportunities are available. Find out what you might be eligible for.

* WGU undergraduate students have approximately half the debt at graduation compared to the national average, according to the Institute for College Access and Success (2022).

FLEXIBLE SCHEDULE

A Different Way to Learn: Degree Programs Designed to Fit Your Life—and All the Demands on Your Time

Professional responsibilities. Family obligations. Personal commitments. At WGU, we understand schedules are tight and often unpredictable for adult students. That’s why we offer a flexible, personalized approach to how education should be. No rigid class schedules. Just a solid, career-focused teaching program that meshes with your current lifestyle. You'll be challenged. You'll work hard. But if you commit yourself and put in the hours needed, WGU makes it possible for you to earn a highly respected degree as a busy working adult.

"Online classes were great. Sometimes I would have difficulty on a subject and was able to promptly contact my instructor for further help. Scheduling a phone call was also easy.”

—Lehi Toskin B.S. Computer Science

does computer science have coursework

CAREER OUTLOOK

Computer Scientists Are in High Demand

The field of computer science is rapidly expanding into some truly exciting areas, including artificial intelligence, robotics, intelligent systems, and human-computer interaction . Increase your earning potential, boost your résumé with valuable credentials , and find a career you love with the help of a computer science degree.

According to the National Center for Education Statistics, there are almost 10 times more U.S. computing jobs open than there were students who graduated with a computer science degree in 2015. When you’ve completed WGU’s online Bachelor of Science in Computer Science degree program, you’ll find yourself in demand because of the skills, knowledge, and certifications you’ve gained. Stand out from the competition and become a vital player on a team with the help of the right program.

Return on Your Investment

On average, wgu graduates see an increase in income post-graduation.

Average income increase from all degrees in annual salary vs. pre-enrollment salary. Source:  2023 Harris Poll Survey  of 1,655 WGU graduates.

Survey was sent to a representative sample of WGU graduates from all colleges. Respondents received at least one WGU degree since 2017.

The market for computer and information research scientists is projected to grow 21% through 2031.

—U.S. Bureau of Labor Statistics

Learn About Careers for Computer Science Graduates

Some of the job titles a graduate of this computer science bachelor’s degree program are qualified for include:

  • Information Manager
  • Data Engineer 
  • NLP Scientist 
  • Software Engineer
  • Computer Vision Engineer 
  • Business Intelligence Developer
  • Machine Learning Specialist 
  • Application Developer
  • Algorithm Engineer 
  • Computational Linguist 
  • Security Engineer
  • Computer Vision Engineer

WGU Grads Hold Positions With Top Employers

Admissions requirements unique to computer science.

Students must be able to use key Calculus principles, rules, and applications while in the B.S. Computer Science program. Students must meet the following admission requirements for admittance to this program:

1.    Possess a high school diploma or its equivalent.

2.    Demonstrate readiness through completion of  one   of the following:

  • Option 1 : Submit transcripts documenting completion of college-level coursework with a minimum of 2.75 GPA or higher, AND successful and verifiable completion of a pre-calculus course from a WGU approved third-party provider with a grade “C” or better.
  • Option 2 :   A high school GPA of 3.0, or higher, AND a B grade, or better, in a high school honors, IB, or AP level advanced mathematics course.

If no previous Pre-Calculus course has been completed by the time of application, students can complete this course through WGU Academy , prior to matriculation. 

NOTE: You do not need to take the ACT or SAT to be admitted to this program.  Learn why we don't require these tests .

does computer science have coursework

Get Your Enrollment Checklist

Download your step-by-step guide to enrollment.

does computer science have coursework

Get Your Questions Answered

Talk to an WGU Enrollment Counselor.

Transfer Credits

Get added support and flexibility as you start your degree  take a course or two at your pace before committing to a full degree program. strengthen your study habits, gain essential learning skills and, best of all, each completed course counts toward your degree requirements. .

Learn More about Pathways to Starting

Questions about Computer Science at WGU

  • General IT Program Questions
  • Computer Science Program Questions

What if I can't meet the eligibility requirements to enroll in the IT program I am interested in?

You should speak with an Enrollment Counselor. WGU can often provide advice or resources to help a prospective student fulfill enrollment prerequisites.

Why are certifications and other prerequisites required?

When you enroll in a WGU degree program, our goal is to see you through to graduation. Admission requirements are designed to increase your likelihood of success. Years of data and experience with the nontraditional students WGU serves have shown us how various types of academic and professional experience can be highly important in helping a student persist to graduation. Industry certifications are one of many ways a student can meet eligibility.

Why doesn't WGU accept certifications that are older than five years?

WGU has an obligation to our graduates—and their current and future employers—to ensure WGU alumni have mastered the most up-to-date, current competencies and skills needed in the workplace. Recency of certifications helps us ensure that students have demonstrated competency in skills as they are needed in today's working world.

Is this program truly "at your own pace"?

As a full-time student, you will be required to maintain a minimum pace of 12 competency units (CUs) per term for undergraduate programs or 8 CUs per term for graduate programs. However, there is no maximum speed—once you complete a course, you move immediately to the next, and you complete a course not by waiting for the syllabus, the professor, or the rest of the class. You progress by learning the material and proving it—so you can move through your coursework at the speed of your own learning and experience.

If there aren't classes or lectures, what role do Instructors play?

Instructors are highly educated, experienced experts in the subject matter of a course. Unlike in a traditional university where going to class means listening to an instructor lecture while you take notes and try to learn in a group setting, WGU's Instructors provide one-on-one instruction and support when you need it—tailoring the instruction to your precise needs when you need it. Instructors also provide additional resources, lead topical discussions in online communities, and find countless other ways to bring a specific course to life for students.

What is computer science?

Computer science is the study of computers, systems, networks, and servers. Computer science analyzes the performance of computer hardware and software. Computer scientists design and analyze algorithms, programs, and operations of computers.

What can I do with a degree in computer science?

There are many job opportunities available for those who have a degree in computer science, including:

  • Data scientist
  • Software tester
  • Web developer
  • Systems analyst
  • Business analyst
  • Product manager
  • Network architect
  • Software engineer
  • Computer engineering
  • Machine learning
  • Network architecture

Is computer science hard?

Computer science can be a challenging degree and career path. It involves learning about lots of coding, which can be like another language. It also involves understanding complex network systems and programs. The world of computer science is unique and can be foreign for some. But for many, the reason they love computer science is because something clicks and makes sense. If you enjoy languages, math, science, and computers, computer science will likely be a challenging but exciting degree.

What is needed for a computer science degree?

A computer science degrees should cover important topics that will prepare you for your future. In order for a computer science degree to be successful and relevant it should include scripting, programming languages, computer architecture, network fundamentals, and more.

The University

For students.

  • Student Portal
  • Alumni Services

Most Visited Links

  • Business Programs
  • Student Experience
  • Diversity, Equity, and Inclusion
  • Student Communities

does computer science have coursework

  • Values of Inclusion
  • 2020 Antiracism Task Force
  • 2022 DEI Report
  • Research News
  • Department Life
  • Listed by Recipient
  • Listed by Category
  • Oral History of Cornell CS
  • CS 40th Anniversary Booklet
  • ABC Book for Computer Science at Cornell by David Gries
  • Books by Author
  • Books Chronologically
  • The 60's
  • The 70's
  • The 80's
  • The 90's
  • The 00's
  • The 2010's
  • Faculty Positions: Ithaca
  • Faculty Positions: New York City
  • Lecturer Position: Ithaca
  • Post-doc Position: Ithaca
  • Staff/Technical Positions
  • Ugrad Course Staff
  • Ithaca Info
  • Internal info
  • Graduation Information
  • Cornell Learning Machines Seminar
  • Student Colloquium
  • Spring 2024 Colloquium
  • Conway-Walker Lecture Series
  • Salton 2023 Lecture Series
  • Spring 2024 Artificial Intelligence Seminar
  • Spring 2024 Robotics Seminar
  • Spring 2024 Theory Seminar
  • Big Red Hacks
  • Cornell University - High School Programming Contests 2024
  • Game Design Initiative
  • CSMore: The Rising Sophomore Summer Program in Computer Science
  • Explore CS Research
  • ACSU Research Night
  • Cornell Junior Theorists' Workshop 2023
  • Researchers
  • Ph.D. Students
  • M.Eng. Students
  • M.S. Students
  • Ph.D. Alumni
  • List of Courses
  • Course and Room Roster
  • CS Advanced Standing Exam
  • Architecture
  • Artificial Intelligence
  • Computational Biology
  • Database Systems
  • Human Interaction
  • Machine Learning
  • Natural Language Processing
  • Programming Languages
  • Scientific Computing
  • Software Engineering
  • Systems and Networking
  • Theory of Computing
  • Contact Academic Advisor
  • Your First CS Course
  • Technical Electives
  • CS with Other Majors/Areas
  • Transfer Credits
  • CS Honors Program
  • CPT for International CS Undergrads
  • Graduation Requirements
  • Useful Forms
  • Becoming a CS Major
  • Requirements
  • Game Design Minor
  • Co-op Program
  • Cornell Bowers CIS Undergraduate Research Experience (BURE)
  • Independent Research (CS 4999)
  • Student Groups
  • UGrad Events
  • Undergraduate Learning Center
  • UGrad Course Staff Info
  • The Review Process
  • Early M.Eng Credit Approval
  • Financial Aid
  • Prerequisites
  • The Application Process
  • The Project
  • Pre-approved Electives
  • Degree Requirements
  • The Course Enrollment Process
  • Advising Tips
  • Entrepreneurship
  • Cornell Tech Programs
  • Professional Development
  • Contact MEng Office
  • Career Success
  • Applicant FAQ
  • Computer Science Graduate Office Hours
  • Exam Scheduling Guidelines
  • Graduate TA Handbook
  • MS Degree Checklist
  • MS Student Financial Support
  • Special Committee Selection
  • Diversity and Inclusion
  • Contact MS Office
  • Ph.D. Applicant FAQ
  • Graduate Housing
  • Non-Degree Application Guidelines
  • Ph. D. Visit Day
  • Business Card Policy
  • Cornell Tech
  • Curricular Practical Training
  • Fellowship Opportunities
  • Field of Computer Science Ph.D. Student Handbook
  • Field A Exam Summary Form
  • Graduate School Forms
  • Instructor / TA Application
  • Ph.D. Requirements
  • Ph.D. Student Financial Support
  • Travel Funding Opportunities
  • Travel Reimbursement Guide
  • The Outside Minor Requirement
  • CS Graduate Minor
  • Outreach Opportunities
  • Parental Accommodation Policy
  • Special Masters
  • Student Spotlights
  • Contact PhD Office

Search form

does computer science have coursework

The CS Major

You are here.

Arts vs. Engineering Degree · Becoming a CS Major · Academic Integrity Code

General Description

Computer science majors take courses covering algorithms, data structures, logic, programming languages, systems, and theory. Electives include artificial intelligence, computer graphics, computer vision, cryptography, databases, networks, and scientific computing.

Requirements for the CS major in either the College of Arts and Sciences or the College of Engineering are as follows:

  • Math 1110-1120-2210 (A&S)
  • Math 1910-1920-2940 (ENGR or A&S)
  • Computer Science course requirements (see chart for prerequisite structure of CS courses):
  • CS 111x (CS 1110 or 1112)
  • CS 2110 (or CS 2112) or equivalent (i.e. ECE 2400/ENGRD 2140)
  • CS 2800 (or CS 2802)
  • CS 3410 or CS 3420
  • CS 4410 or CS 4414
  • Exceptions: CS 4090, CS 4998, and CS 4999 are NOT allowed
  • CS practicums (CS 4xx1) or CS 3152, CS 4152, CS 4154, CS 4740, CS 4752, CS 5150, CS 5152, CS 5412, CS 5414, CS 5431, CS 5625, or CS 5643
  • three 3000+ Technical Electives (information)  (3 credit min per course)
  • three 3000+ related courses to comprise an External Specialization --outside of computer science (3 credit min per course)
  • 3 credits Major-approved Elective(s)

In addition , students' course selections must satisfy the requirement listed below. Note that courses used to satisfy this requirement are not extra but can be incorporated into the major requirements listed above, where applicable.

  • a probability course: one of BTRY/STSCI 3080, CS 4850, ECE 3100, ECON 3130, ENGRD 2700 or MATH 4710. (Choosing a 3000+ level course among these options is strongly recommended.)

For suggestions on how to select a set of electives that reflect one of a number of coherent, recognized sub-areas of study in computer science, see the material on  Vectors . Please note that completion of a Vector in not required and vector completion is not confirmed nor noted on the transcript.

Two undergraduate degrees are offered:

  • A Bachelors of Science for students in the College of Engineering.
  • A Bachelors of Arts for students in the College of Arts and Sciences.

Neither program has a particular advantage from the standpoint of employment or graduate school.

Department Policy on Academic Integrity

Violations of the Cornell University Code of Academic Integrity occurring in Computer Science courses are taken very seriously by the Computer Science faculty. Therefore, it is necessary to impress upon students the gravity of violations of the Code. The following are excerpts from a longer version of the Cornell University Code of Academic Integrity . The exclusion of any part does not excuse ignorance of the Code.

Absolute integrity is expected of every Cornell student in all academic undertakings; students must in no way misrepresent their work fraudulently or unfairly advance their academic status, or be a party to another student's failure to maintain academic integrity. The maintenance of an atmosphere of academic honor and the fulfillment of the provisions of this Code are the responsibilities of the students and faculty of Cornell University. Therefore, all students and faculty members shall refrain from any action that would violate the basic principles of this Code.

General Responsibilities

  • A student assumes responsibility for the content and integrity of the academic work they submit, such as papers, examinations, or reports.
  • knowingly represents the work of others as their own.
  • uses or obtains unauthorized assistance in any academic work.
  • gives fraudulent assistance to another student.
  • fabricates data in support of laboratory or field work.
  • forges a signature to certify completion or approval of a course assignment.
  • in any other manner violates the principle of absolute integrity.

Specific Remarks for Students in CS Courses

Unless otherwise specified by the individual professor, the work you do in Computer Science courses is expected to be the result of your individual effort - the use of a computer in no way modifies the normal standards of the above Code. You may discuss work with other students, and give or receive "consulting" help from other students, but such permissible cooperation should never involve one student having in his or her possession a copy of all or part of another student's assignment - regardless of whether that copy is on paper, on a computer disk, or in a computer file. This implies that there is no legitimate reason to send a copy of a program from one computer account to another, or to be logged-on to another student's account.

Discussion of general strategy or algorithms is permissible, but you may not collaborate in the detailed development or actual writing of an assignment. It is also your responsibility to protect your work from unauthorized access. It is inadvisable to discard copies of your programs in public places. This applies to both hand-written and programming assignments.

The penalty for any violation of this Code in Computer Science courses may be failure in the course. This includes collaboration, providing a copy, or accepting a copy of work that is expected to be individual effort.

Computer accounts are provided for course work only. They are not private accounts; they belong to the Department of Computer Science and the use of these accounts will be monitored in various ways. Accounts that are abused will be withdrawn.

University of California Irvine

  • Chancellor’s Message

Print Options

2023-24 edition, computer science, b.s..

The Computer Science major emphasizes the principles of computing that underlie our modern world, and provides a strong foundational education to prepare students for the broad spectrum of careers in computing. This major can serve as preparation for either graduate study or a career in industry. Students receive a solid background in low-level architecture and systems; middle-level infrastructure, algorithms, and mathematical foundations. This is a highly flexible degree that allows students to explore a broad range of topics in modern computing. In order to achieve some focus in their upper-division studies, students are required to satisfy the requirements for one of the nine specializations described below.

Algorithms. This specialization focuses on fundamental computational techniques, including their analysis and applications to topics in computer vision, computer games, graphics, artificial intelligence, and information retrieval. Topics include data structures, graph and network algorithms, computational geometry, probabilistic algorithms, complexity theory, and cryptography.

Architecture and Embedded Systems. This specialization integrates principles of embedded systems, software, hardware, computer architecture, distributed systems and networks, and prepares students to design and create efficient hardware/software architectures for emerging application areas. Students in this specialization will build upon a strong foundation in software and hardware and learn how to design networked embedded systems, and efficient computer architectures for a diverse set of application domains such as gaming, visualization, search, databases, transaction processing, data mining, and high-performance and scientific computing.

Bioinformatics. This specialization introduces students to the interdisciplinary intersection of biology and medicine with computer science and information technology. Students who complete the specialization will understand biomedical computing problems from the computer science perspectives, and be able to design and develop software that solves computational problems in biology and medicine.

General Computer Science . This specialization allows students to acquire a well-rounded knowledge of computer science that may be tailored to their individual interests. Students choose 11 upper-division computer science courses, including two project courses. This specialization will appeal to those who are interested in a broad education in computer science, or who wish to create their own unique specialization not found in the current list of (other) specializations under this major.

Information. This specialization is intended to prepare students for working with and developing a wide variety of modern data and information systems. Topics covered by this concentration include database management, information retrieval, Web search, data mining, and data-intensive computing.

Intelligent Systems. This specialization will introduce students to the principles underlying intelligent systems, including topics such as representing human knowledge, building automated reasoning systems, developing intelligent search techniques, and designing algorithms that adapt and learn from data. Students in this specialization will use these principles to solve problems across a variety of applications such as computer vision, information retrieval, data mining, automated recommender systems, bioinformatics, as well as individually designed projects.

Networked Systems. This specialization focuses on Internet architecture, Internet applications, and network security. It also encourages students to learn about operating systems, databases, search, programming, embedded systems, and performance.

Systems and Software. This specialization deals with principles and design of systems and software. It emphasizes the interaction between software and the computing infrastructure on which it runs and the performance impact of design decisions. Core topics include the hardware/software interface, languages and compilers, operating systems, parallel and distributed computing. Elective topics include networking, security, graphics, and databases.

Visual Computing. This specialization encompasses the digital capture, processing, synthesis and display of visual data such as images and video. This specialization includes computer vision, image processing, and graphics, and covers such topics as the representation of 3D objects, visual recognition of objects and people, interactive and photo-realistic image rendering, and physics and perception of light and color.

The Department also offers a joint undergraduate degree in Computer Science and Engineering, in conjunction with The Henry Samueli School of Engineering; information is available in the Interdisciplinary Studies section of the Catalogue.

Freshman Applicants: See the Undergraduate Admissions section .

Transfer Applicants:

Transfer applicants who satisfactorily complete course prerequisites will be given preference for admission. All applicants must complete the following required courses: one year of approved calculus, one year of object-oriented programing (python, java, C++), additional courses as specified by the major, and completion of lower-division writing. Students are encouraged to complete as many of the lower-division degree requirements as possible prior to transfer. Visit the UCI Office of Admissions website for information on transfer requirements for our major.

Major and Minor Restrictions

Bren School of ICS majors (including shared majors, BIM and CSE) pursuing minors within the Bren School of ICS may not count more than five courses toward both the major and minor.  Some ICS majors and minors outside of the School are not permitted due to significant overlap. Visit the ICS Student Affairs Office website for Majors and Minors restrictions.   All students should check the Double Major Restrictions Chart and view our information page on double majoring to see what degree programs are eligible for double majoring.

Requirements for the B.S. in Computer Science

All students must meet the university requirements ., major requirements.

Students must complete and pass both COMPSCI 180A and COMPSCI 180B for course credit.

1.  Students are advised that this sample program lists the minimum requirements; it is possible that students may have to take additional courses to prepare for required courses.

2.  The lower-division writing requirement must be completed by the end of the seventh quarter at UCI.

3.  This is only a sample plan. Course offerings may be moved due to unforeseen circumstances. It is strongly recommended that students meet with an academic advisor to create an academic plan tailored to meet their specific areas of interest.

  • Bioinformatics, Minor
  • Computer Science, M.S.
  • Computer Science, Ph.D.
  • Master of Computer Science

Send Page to Printer

Print this page.

Download Page (PDF)

The PDF will include all information unique to this page.

2023-2024 Catalogue

A PDF of the entire 2023-2024 catalogue.

Computer Science

University of California, Berkeley

About the Program

Choosing a computer science path.

There are two ways to study Computer Science (CS) at UC Berkeley:

  • Be admitted to the Electrical Engineering & Computer Sciences (EECS) major in the College of Engineering (COE) as a first year or junior transfer. Admission to the COE, however, is extremely competitive. This option leads to a Bachelor of Science (BS) degree. This path is appropriate for people who want an engineering education.
  • Be admitted to the Computer Science (CS) major in the College of Computing, Data Science, and Society (CDSS) as a first year or junior transfer. Admission to the CS major in the College of CDSS, however, is extremely competitive. This option leads to a Bachelor of Arts (BA) degree. This path is appropriate for people who are interested in a broader education in the sciences and arts.

There is no difference in the CS course content between the BS and BA programs. The difference is in what else you take: mainly engineering, or mainly humanities and social sciences. In particular, an interest in hardware suggests the EECS route.

Note: Beginning Fall 2024, students will no longer be able to apply to the Computer Science major in the College of Letters and Science on the UC Berkeley application. Going forward, students will need to apply to the Computer Science major in the College of CDSS.

Bachelor of Science (BS) in Computer Science

For information regarding the BS degree, please see the  Electrical Engineering and Computer Sciences program  information in this Guide. 

Bachelor of Arts (BA) in Computer Science

This CS major is for students enrolled in the College of Computing, Data Science, and Society ( CDSS ). Berkeley emphasizes the science of computer science, which means much more than just computer programming. It includes the theory of computation, the design and analysis of algorithms, the architecture and logic design of computers, programming languages, compilers, operating systems, scientific computation, computer graphics, databases, artificial intelligence, and natural language processing. Our goal is to prepare students both for a possible research career and long-term technical leadership in industry. We must therefore look beyond today's technology and give students the primary ideas and the learning skills that will prepare them to teach themselves about tomorrow's technology.

Five-Year BS/MS Program

This program is geared toward students who would like to pursue an education beyond the BS/BA, allowing them to achieve greater breadth and/or depth of knowledge, and who would like to try their hand at research as well. For information, please see the Five-Year BS/MS Requirements tab on this page. 

Honors Program

Computer Science majors with an overall GPA of 3.70 or above are eligible to apply to the EECS honors degree program.

Minor Program

A minor in Computer Science is available to all undergraduate students at Berkeley with a declared major, with the exception of EECS majors. For information regarding minor requirements, please see the Minor Requirements tab on this page.

Visit Department Website

Major Requirements (BA)

In addition to the University, campus, and college requirements, listed on the College Requirements tab, students must fulfill the below requirements specific to their major program.

General Guidelines

  • All courses taken to fulfill the major requirements below must be 3 or more units and taken for a letter grade.

All courses for the major must be technical in nature. Courses numbered 199, 198, 197, 196, 195, plus select 194, 191, 190, and various seminars do not count. If you are unsure, please check with the CS advisers ( [email protected] ).

  • Only  one upper division course may be used to simultaneously fulfill requirements for a student's major and minor programs.  No more than two upper division courses can overlap between two majors.
  • A minimum grade point average (GPA) of 2.0 must be maintained in both upper and lower division courses used to fulfill the major requirements.

For information regarding residence requirements and unit requirements, please see the College Requirements tab.

Lower Division Requirement

Upper division requirements, approved non-computer science technical electives, five-year bs/ms.

This program is geared toward students who would like to pursue an education beyond the BS/BA, allowing them to achieve greater breadth and/or depth of knowledge, and who would like to try their hand at research as well. It is not intended for students who have definitely decided to pursue a PhD immediately following graduation. Those students are advised to apply for a PhD program at Berkeley or elsewhere during their senior year. Students who have been accepted into the Five-Year BA/MS or BS/MS are free to change their minds later and apply to enter the PhD program or apply to a PhD program at another university. Note that admission is competitive with all our PhD applicants.

The program is focused on interdisciplinary training at a graduate level; with at least 8 units of course work outside EECS required. Students will emerge as leaders in their technical and professional fields.

  • Focused on interdisciplinary study and more experience in aligned technical fields such as physics, materials science, statistics, biology, etc., and/or professional disciplines such as management of technology, business, law, and public policy.
  • If admitted to the program, students must begin the graduate portion in the semester immediately following the conferral of the bachelor's degree.
  • Only one additional year (two semesters) beyond the bachelor's degree.
  • Only available to Berkeley EECS and L&S CS undergraduates.
  • Participants in the program may serve as graduate student instructors (GSIs) with approval from their faculty research advisor and the Five-Year MS Committee.
  • Participants in the program are self-funded.

For further information regarding this program, please see visit the EECS undergraduate program page .

Minor Requirements

Students who have a strong interest in an area of study outside their major often decide to complete a minor program. These programs have set requirements and are noted officially on the diploma and the awards section of the transcript.

All minors must be declared before the first day of classes in your Expected Graduation Term (EGT). For summer graduates, minors must be declared prior to the first day of Summer Session A. 

All upper-division courses must be taken for a letter grade. 

A minimum of three of the upper-division courses taken to fulfill the minor requirements must be completed at UC Berkeley.

A minimum grade point average (GPA) of 2.0 is required in the upper-division courses to fulfill the minor requirements.

Courses used to fulfill the minor requirements may be applied toward the Seven-Course Breadth requirement, for Letters & Science students.

No more than one upper division course may be used to simultaneously fulfill requirements for a student's major and minor programs.

All minor requirements must be completed prior to the last day of finals during the semester in which the student plans to graduate. If students cannot finish all courses required for the minor by that time, they should see a College of Letters & Science adviser.

All minor requirements must be completed within the unit ceiling. (For further information regarding the unit ceiling, please see the College Requirements tab.)

Requirements

College requirements, essential skills, computational reasoning.

The Computational Reasoning requirement is designed to provide a basic understanding of and competency in concepts such as programming, algorithms, iteration, and data-structures.

Human and Social Dynamics of Data and Technology

The Human and Social Dynamics of Data and Technology requirement is designed for the purpose of developing an understanding of how technology and data interact with human and societal contexts, including ethical considerations and applications such as education, health, law, natural resources, and public policy.

Statistical Reasoning  

The Statistical Reasoning requirement is designed to provide basic understanding of and competency in the scientific approach to statistical problem solving, including uncertainty, prediction, and estimation.

Reading and Composition

The Reading and Composition requirement is the same as for the College of Letters and Science; it requires two semesters of lower division work in composition in sequence. Students must complete parts A & B reading and composition courses in sequential order by the end of their fourth semester.

To see how to satisfy the R&C requirement, visit the College of Letters and Science Reading and Composition Requirement page .   

Breadth Requirements

The undergraduate breadth requirements are the same for CDSS students as for the College of Letters and Science, with the exception that a second semester foreign language course can be used to satisfy the International Studies breadth. To learn more about the L&S Seven-Course Breadth Requirement, visit the L&S Breadth Requirements page. To learn more about using a foreign language course to satisfy the International Studies breadth, visit the CDSS website page on Satisfying International Studies Breadth with a Foreign Language Course . 

The undergraduate major programs in computer science, data science, and statistics have transitioned from the College of Letters & Science to CDSS. Students who were admitted in Spring 2024 or earlier have the option of completing either the L&S College Requirements , i.e., the breadth and essential skills requirements, or the CDSS college requirements (above). 

All students must meet CDSS general policy (below). The one exception is with time-to-degree. Students admitted Fall 2022 or earlier are subject to the 130 unit maximum, rather than the 8 semester maximum (5 for transfer students). 

Class Schedule Requirements

Minimum units per semester: 12

Maximum units per semester: 20.5

Academic (Grade) Requirements

Minimum cumulative GPA: 2.0

Minimum GPA for one semester: 1.5

Bachelor’s Degree Requirements

Minimum total units: 120. Of these 120 units:

PE maximum units:  4

Special Studies maximum units: 16

Maximum 300-499 course units: 6

Minimum upper division units: 36

Maximum number of semesters: 8 for first-year entrants; 5 for transfer students; summer terms do not count toward the maximum

Minimum GPA in upper division and graduate courses identified for the major: 2.0

Meet all major requirements

M eet all general, curricular, and residence requirements of the University of California and the Berkeley campus

For more information about CDSS requirements, visit student resources and information on the College of Computing, Data Science, and Society website.

UC and Campus Requirements

University of california requirements, entry level writing.

All students who will enter the University of California as freshmen must demonstrate their command of the English language by satisfying the Entry Level Writing Requirement (ELWR).  The  UC Entry Level Writing Requirement website  provides information on how to satisfy the requirement.

American History and American Institutions

The American History and Institutions (AH&I) requirements are based on the principle that a US resident graduated from an American university should have an understanding of the history and governmental institutions of the United States.

Campus Requirement

American cultures.

The American Cultures requirement is a Berkeley campus requirement, one that all undergraduate students at Berkeley need to pass in order to graduate. You satisfy the requirement by passing, with a grade not lower than C- or P, an American Cultures course. You may take an American Cultures course any time during your undergraduate career at Berkeley. The requirement was instituted in 1991 to introduce students to the diverse cultures of the United States through a comparative framework. Courses are offered in more than fifty departments in many different disciplines at both the lower and upper division level.

Plan of Study (BA)

For more detailed information regarding the courses listed below (e.g., elective information, GPA requirements, etc.,), please see the Major Requirements tab.

Course Definitions

Upper Division major CS major course: course meeting the 20 units of upper division CS requirement (at least one of these must be a Design Course).

Upper Division major technical elective: course meeting the 4 units of non-CS technical electives requirement.

This is a sample program plan. This plan assumes that the student has completed the Entry Level Writing, American History and Institutions, Quantitative Reasoning, and Foreign Language requirements prior to admission.

Students are strongly advised to work with an academic adviser to determine a personal program plan. Your program plan will differ depending on previous credit received, your course schedule, and available offerings.

COMPSCI 152 , COMPSCI 162 , COMPSCI 164 , COMPSCI 169 , COMPSCI 170 ,  COMPSCI 184 , and EECS 151 are known to have heavy workloads. It is not recommended to take these courses in combination.

Students are strongly advised to work with an academic adviser to determine a personal program plan. Your program plan will differ depending on previous credit received, your course schedule, and available offerings. Current students may make an appointment with a Computer Science Advisor in CalCentral; prospective students may make an appointment at https://berkeleycs.youcanbook.me/.

Accelerated Program Plans

For students considering graduating in less than four years, it's important to acknowledge the reasons to undertake such a plan of study. While there are advantages to pursuing a three-year degree plan such as reducing financial burdens, they are not for everyone and do involve sacrifices; especially with respect to participating in co-curricular activities, depth of study,  and summer internships, which typically lead to jobs upon graduation. All things considered, please see the tables for three and three and a half year degree options.

3.5 and 3 Year Plans

Student Learning Goals

  • Preparing graduates to pursue postgraduate education in electrical engineering, computer science, or related fields.
  • Preparing graduates for success in technical careers related to electrical and computer engineering, or computer science and engineering.
  • Preparing graduates to become leaders in fields related to electrical and computer engineering or computer science and engineering.

Learning Goals for the Major

  • An ability to apply knowledge of mathematics, science, and engineering.
  • An ability to configure, apply test conditions, and evaluate outcomes of experimental systems.
  • An ability to design systems, components, or processes that conform to given specifications and cost constraints.
  • An ability to work cooperatively, respectfully, creatively, and responsibly as a member of a team.
  • An ability to identify, formulate, and solve engineering problems.
  • An understanding of the norms of expected behavior in engineering practice and their underlying ethical foundations.
  • An ability to communicate effectively by oral, written, and graphical means.
  • An awareness of global and societal concerns and their importance in developing engineering solutions.
  • An ability to independently acquire and apply required information, and an appreciation of the associated process of lifelong learning.
  • A knowledge of contemporary issues.
  • An in-depth ability to use a combination of software, instrumentation, and experimental techniques practiced in circuits, physical electronics, communication, networks and systems, hardware, programming, and computer science theory.

Major Maps help undergraduate students discover academic, co-curricular, and discovery opportunities at UC Berkeley based on intended major or field of interest. Developed by the Division of Undergraduate Education in collaboration with academic departments, these experience maps will help you:

Explore your major and gain a better understanding of your field of study

Connect with people and programs that inspire and sustain your creativity, drive, curiosity and success

Discover opportunities for independent inquiry, enterprise, and creative expression

Engage locally and globally to broaden your perspectives and change the world

Reflect on your academic career and prepare for life after Berkeley

Use the major map below as a guide to planning your undergraduate journey and designing your own unique Berkeley experience.

View the Computer Science Major Map PDF.

Select a subject to view courses

Electrical Engineering and Computer Sciences

Electrical Engineering

Eecs 16a designing information devices and systems i 4 units.

Terms offered: Fall 2024, Summer 2024 8 Week Session, Spring 2024 This course and its follow-on course EECS16B focus on the fundamentals of designing modern information devices and systems that interface with the real world. Together, this course sequence provides a comprehensive foundation for core EECS topics in signal processing, learning, control, and circuit design while introducing key linear-algebraic concepts motivated by application contexts. Modeling is emphasized in a way that deepens mathematical maturity, and in both labs and homework, students will engage computationally, physically, and visually with the concepts being introduced in addition to traditional paper/pencil exercises. The courses are aimed at entering students as well as non-majors seeking a broad foundation for the field. Designing Information Devices and Systems I: Read More [+]

Rules & Requirements

Prerequisites: MATH 1A and MATH 1B (1B may be taken concurrently); COMPSCI 61A (encouraged to be taken concurrently)

Hours & Format

Fall and/or spring: 15 weeks - 3 hours of lecture, 2 hours of discussion, and 3 hours of laboratory per week

Summer: 8 weeks - 6 hours of lecture, 4 hours of discussion, and 6 hours of laboratory per week

Additional Format: Three hours of lecture and three hours of laboratory and two hours of discussion per week. Six hours of lecture and six hours of laboratory and four hours of discussion per week for 8 weeks.

Additional Details

Subject/Course Level: Electrical Engin and Computer Sci/Undergraduate

Grading/Final exam status: Letter grade. Final exam required.

Instructors: Alon, Arcak, Ayazifar, Maharbiz, Niknejad, Ranade, Sahai, Subramanian, Tomlin

Formerly known as: Electrical Engineering 16A

Designing Information Devices and Systems I: Read Less [-]

EECS 16B Designing Information Devices and Systems II 4 Units

Terms offered: Fall 2024, Spring 2024, Fall 2023 This course is a follow-on to EECS 16A , and focuses on the fundamentals of designing and building modern information devices and systems that interface with the real world. The course sequence provides a comprehensive introduction to core EECS topics in machine learning, circuit design, control, and signal processing while developing key linear-algebraic concepts motivated by application contexts. Modeling is emphasized in a way that deepens mathematical maturity, and in both labs and homework, students will engage computationally, physically, and visually with the concepts being introduced in addition to traditional paper exercises. The courses are aimed at entering students as well as non-majors seeking a broad introduction to the field. Designing Information Devices and Systems II: Read More [+]

Prerequisites: EECS 16A

Additional Format: Three hours of lecture and two hours of discussion and three hours of laboratory per week. Six hours of lecture and four hours of discussion and six hours of laboratory per week for 8 weeks.

Instructors: Alon, Ayazifar, Lustig, Maharbiz, Subramanian, Tomlin

Formerly known as: Electrical Engineering 16B

Designing Information Devices and Systems II: Read Less [-]

EECS 47D Completion of work in Electrical Engineering 16A 1 - 3 Units

Terms offered: Fall 2021 This course allows students who have had a linear algebra and/or basic circuit theory course to complete the work in EE16A and be ready for EE16B or EE47E. The course focuses on the fundamentals of designing modern information devices and systems that interface with the real world and provides a comprehensive foundation for core EECS topics in signal processing, learning, control, and circuit design. Modeling is emphasized in a way that deepens mathematical maturity , and in both labs and homework, students will engage computationally, physically, and visually with the concepts being introduced in addition to traditional paper/pencil exercises. Completion of work in Electrical Engineering 16A: Read More [+]

Prerequisites: MATH 1A , MATH 1B , COMPSCI 61A (encouraged to be taken concurrently), college level courses in linear algebra and/or circuit theory, and consent of the instructor

Fall and/or spring: 15 weeks - 2-8 hours of self-paced per week

Summer: 8 weeks - 4-13 hours of self-paced per week

Additional Format: Two to eight hours of self-paced per week. Four to thirteen hours of self-paced per week for 8 weeks.

Completion of work in Electrical Engineering 16A: Read Less [-]

EECS 47E Completion of work in Electrical Engineering 16B 1 - 3 Units

Terms offered: Prior to 2007 This course allows students who have had a linear algebra and/or basic circuit theory course to complete the work in EE16B. The course focuses on the fundamentals of designing modern information devices and systems that interface with the real world and provides a comprehensive foundation for core EECS topics in signal processing (DFT), learning (SVD/PCA), feedback control, and circuit design. Modeling is emphasized in a way that deepens mathematical maturity, and in both labs and homework, students will engage computationally, physically, and visually with the concepts being introduced in addition to traditional paper/pencil exercises. Completion of work in Electrical Engineering 16B: Read More [+]

Prerequisites: MATH 1A , MATH 1B , and COMPSCI 61A ; and EECS 16A , EECS 47D , or MATH 54 ; college level courses in linear algebra and/or circuit theory, and consent of the instructor

Fall and/or spring: 15 weeks - 3-8 hours of self-paced per week

Summer: 8 weeks - 6-16 hours of self-paced per week

Additional Format: Three to eight hours of self-paced per week. Six to sixteen hours of self-paced per week for 8 weeks.

Completion of work in Electrical Engineering 16B: Read Less [-]

EECS 47F Completion of work in Computer Science 70 1 - 3 Units

Terms offered: Prior to 2007 This course allows students who have had a discrete math and/or probability course to complete the work in CS70. Logic, infinity, and induction; applications include undecidability and stable marriage problem. Modular arithmetic and GCDs; applications include primality testing and cryptography. Polynomials; examples include error correcting codes and interpolation. Probability including sample spaces, independence, random variables, law of large numbers; examples include load balancing, existence arguments, Bayesian inference. Completion of work in Computer Science 70: Read More [+]

Prerequisites: Sophomore mathematical maturity, programming experience equivalent to that gained in COMPSCI 61A , a prior college level course on discrete math and/or probability, and consent of the instructor

Instructors: Ranade, Rao, Sahai, Seshia, Vazirani, Walrand

Completion of work in Computer Science 70: Read Less [-]

EECS C106A Introduction to Robotics 4 Units

Terms offered: Fall 2024, Fall 2023, Fall 2022, Fall 2021, Fall 2020, Fall 2019 This course is an introduction to the field of robotics. It covers the fundamentals of kinematics, dynamics, control of robot manipulators, robotic vision, sensing, forward & inverse kinematics of serial chain manipulators, the manipulator Jacobian, force relations, dynamics, & control. We will present techniques for geometric motion planning & obstacle avoidance. Open problems in trajectory generation with dynamic constraints will also be discussed. The course also presents the use of the same analytical techniques as manipulation for the analysis of images & computer vision. Low level vision, structure from motion, & an introduction to vision & learning will be covered. The course concludes with current applications of robotics. Introduction to Robotics: Read More [+]

Prerequisites: Familiarity with linear algebra at the level of EECS 16A / EECS 16B or Math 54. Experience coding in python at the level of COMPSCI 61A . Preferred: experience developing software at the level of COMPSCI 61B and experience using Linux

Credit Restrictions: Students will receive no credit for Electrical Engineering and Computer Science C106A/Bioengineering C106A after completing EE C106A/BioE C125, Electrical Engineering 206A, or Electrical Engineering and Computer Science 206A.

Fall and/or spring: 15 weeks - 3 hours of lecture, 1 hour of discussion, and 3 hours of laboratory per week

Summer: 8 weeks - 6 hours of lecture, 2 hours of discussion, and 6 hours of laboratory per week

Additional Format: Three hours of lecture and one hour of discussion and three hours of laboratory per week. Six hours of lecture and two hours of discussion and six hours of laboratory per week for 8 weeks.

Grading/Final exam status: Letter grade. Alternative to final exam.

Instructor: Sastry

Also listed as: BIO ENG C106A/MEC ENG C106A

Introduction to Robotics: Read Less [-]

EECS C106B Robotic Manipulation and Interaction 4 Units

Terms offered: Spring 2024, Spring 2023, Spring 2022, Spring 2021, Spring 2020, Spring 2019 The course is a sequel to EECS/BIOE/MEC106A/EECSC206A, which covers the mathematical fundamentals of robotics including kinematics, dynamics and control as well as an introduction to path planning, obstacle avoidance, and computer vision. This course will present several areas of robotics and active vision, at a deeper level and informed by current research. Concepts will include the review at an advanced level of robot control, the kinematics, dynamics and control of multi-fingered hands, grasping and manipulation of objects, mobile robots: including non-holonomic motion planning and control, path planning, Simultaneous Localization And Mapping (SLAM), and active vision. Additional research topics covered at the instructor's discretion. Robotic Manipulation and Interaction: Read More [+]

Prerequisites: EECS C106A / BIO ENG C106A / MEC ENG C106A / EECS C206A or an equivalent course. A strong programming background, knowledge of Python and Matlab, and some coursework in feedback controls (such as EL ENG C128 / MEC ENG C134 ) are also useful. Students who have not taken the prerequisite course should have a strong programming background, knowledge of Python and Matlab, and exposure to linear algebra, Lagrangian dynamics, and feedback controls at the intermediate level. EECS C106A

Credit Restrictions: Students will receive no credit for Electrical Engineering and Computer Science C106B/Bioengineering C106B after completing Electrical Engineering C106B/Bioengineering C125B, Electrical Engineering 206B, or Electrical Engineering and Computer Science 206B.

Additional Format: Three hours of lecture and one hour of discussion and three hours of laboratory per week.

Also listed as: BIO ENG C106B/MEC ENG C106B

Robotic Manipulation and Interaction: Read Less [-]

EECS 107 Introduction to AR/VR and Applications in Metaverse 4 Units

Terms offered: Not yet offered This course develops a fundamental understanding of computer vision (CV) and computer graphics (CG) that underpin the emerging AR/VR and Metaverse applications. The syllabus includes 3D perception, near-eye optics, depth cameras, 3D localization, and immersive 3D user experience. The companion lab helps students to acquire basic AR/VR coding skills in Unity and develop Metaverse applications. The course builds a strong foundation for students to take more advanced course: CS 294-137. Introduction to AR/VR and Applications in Metaverse: Read More [+]

Prerequisites: Familiarity with Linear Algebra at the level of EECS 16A /B or MATH 54 . Experience on coding proficiency and data structures at the level of CS61 A/B

Repeat rules: Course may be repeated for credit with instructor consent.

Fall and/or spring: 15 weeks - 3 hours of lecture and 2 hours of laboratory per week

Additional Format: Three hours of lecture and two hours of laboratory per week.

Grading/Final exam status: Letter grade. Alternate method of final assessment during regularly scheduled final exam group (e.g., presentation, final project, etc.).

Instructor: Yang

Introduction to AR/VR and Applications in Metaverse: Read Less [-]

EECS 126 Probability and Random Processes 4 Units

Terms offered: Fall 2024, Spring 2024, Fall 2023 This course covers the fundamentals of probability and random processes useful in fields such as networks, communication, signal processing, and control. Sample space, events, probability law. Conditional probability. Independence. Random variables. Distribution, density functions. Random vectors. Law of large numbers. Central limit theorem. Estimation and detection. Markov chains. Probability and Random Processes: Read More [+]

Prerequisites: COMPSCI 70 preferred but not required; Familiarity with linear algebra

Credit Restrictions: Students will receive no credit for EECS 126 after completing EE 126.

Fall and/or spring: 15 weeks - 3 hours of lecture and 1 hour of discussion per week

Additional Format: Three hours of lecture and one hour of discussion per week.

Instructor: Ramchandran

Probability and Random Processes: Read Less [-]

EECS 127 Optimization Models in Engineering 4 Units

Terms offered: Fall 2024, Spring 2024, Fall 2023 This course offers an introduction to optimization models and their applications, ranging from machine learning and statistics to decision-making and control, with emphasis on numerically tractable problems, such as linear or constrained least-squares optimization. Optimization Models in Engineering: Read More [+]

Prerequisites: EECS 16A and EECS 16B , or consent of instructor

Credit Restrictions: Students will receive no credit for EECS 127 after taking EECS 227AT or Electrical Engineering 127/227AT.

Additional Format: Three hours of Lecture and One hour of Discussion per week for 15 weeks.

Instructor: El Ghaoui

Formerly known as: Electrical Engineering 127

Optimization Models in Engineering: Read Less [-]

EECS 149 Introduction to Embedded and Cyber Physical Systems 4 Units

Terms offered: Fall 2024, Fall 2023, Fall 2022 This course introduces students to the basics of modeling, analysis, and design of embedded, cyber-physical systems. Students learn how to integrate computation with physical processes to meet a desired specification. Topics include models of computation, control, analysis and verification, interfacing with the physical world, real-time behaviors, mapping to platforms, and distributed embedded systems. The course has a strong laboratory component , with emphasis on a semester-long sequence of projects. Introduction to Embedded and Cyber Physical Systems: Read More [+]

Objectives & Outcomes

Course Objectives: To develop the skills to realize embedded systems that are safe, reliable, and efficient in their use of resources. To learn how to model and design the joint dynamics of software, networks, and physical processes. To learn to think critically about technologies that are available for achieving such joint dynamics.

Prerequisites: COMPSCI 61C and COMPSCI 70 ; EECS 16A and EECS 16B , or permission of instructor

Fall and/or spring: 15 weeks - 3 hours of lecture and 3 hours of laboratory per week

Additional Format: Three hours of lecture and three hours of laboratory per week.

Instructors: Seshia, Lee, Dutta

Introduction to Embedded and Cyber Physical Systems: Read Less [-]

EECS 151 Introduction to Digital Design and Integrated Circuits 3 Units

Terms offered: Fall 2024, Spring 2024, Fall 2023 An introduction to digital and system design. The material provides a top-down view of the principles, components, and methodologies for large scale digital system design. The underlying CMOS devices and manufacturing technologies are introduced, but quickly abstracted to higher-levels to focus the class on design of larger digital modules for both FPGAs (field programmable gate arrays) and ASICs (application specific integrated circuits). The class includes extensive use of industrial grade design automation and verification tools for assignments, labs and projects. The class has two lab options: ASIC Lab ( EECS 151LA ) and FPGA Lab ( EECS 151LB ). Students must enroll in at least one of the labs concurrently with the class. Introduction to Digital Design and Integrated Circuits: Read More [+]

Course Objectives: The Verilog hardware description language is introduced and used. Basic digital system design concepts, Boolean operations/combinational logic, sequential elements and finite-state-machines, are described. Design of larger building blocks such as arithmetic units, interconnection networks, input/output units, as well as memory design (SRAM, Caches, FIFOs) and integration are also covered. Parallelism, pipelining and other micro-architectural optimizations are introduced. A number of physical design issues visible at the architecture level are covered as well, such as interconnects, power, and reliability.

Prerequisites: EECS 16A and EECS 16B

Credit Restrictions: Students must enroll concurrently in at least one the lab flavors EECS151LA or EECS151LB. Students wishing to take a second lab flavor next term can sign-up only for that Lab section and receive a Letter grade. The pre-requisite for “Lab-only” enrollment that term will be EECS151 from previous terms.

Instructors: Stojanovic, Wawrzynek

Introduction to Digital Design and Integrated Circuits: Read Less [-]

EECS 151LA Application Specific Integrated Circuits Laboratory 2 Units

Terms offered: Fall 2024, Spring 2024, Fall 2023 This lab lays the foundation of modern digital design by first presenting the scripting and hardware description language base for specification of digital systems and interactions with tool flows. The labs are centered on a large design with the focus on rapid design space exploration. The lab exercises culminate with a project design, e.g., implementation of a three-stage RISC-V processor with a register file and caches. The design is mapped to simulation and layout specification. Application Specific Integrated Circuits Laboratory: Read More [+]

Course Objectives: Software testing of digital designs is covered leading to a set of exercises that cover the design flow. Digital synthesis, floor-planning, placement and routing are covered, as well as tools to evaluate timing and power consumption. Chip-level assembly is covered, including instantiation of custom blocks: I/O pads, memories, PLLs, etc.

Prerequisites: COMPSCI 61C , EECS 16A , EECS 16B , and EL ENG 105

Fall and/or spring: 15 weeks - 3 hours of laboratory per week

Additional Format: Three hours of laboratory per week.

Grading/Final exam status: Letter grade. Final exam not required.

Application Specific Integrated Circuits Laboratory: Read Less [-]

EECS 151LB Field-Programmable Gate Array Laboratory 2 Units

Terms offered: Fall 2024, Spring 2024, Fall 2023 This lab covers the design of modern digital systems with Field-Programmable Gate Array (FPGA) platforms. A series of lab exercises provide the background and practice of digital design using a modern FPGA design tool flow. Digital synthesis, partitioning, placement, routing, and simulation tools for FPGAs are covered in detail. The labs exercises culminate with a large design project, e.g., an implementation of a full three-stage RISC-V processor system, with caches, graphics acceleration, and external peripheral components. The design is mapped and demonstrated on an FPGA hardware platform. Field-Programmable Gate Array Laboratory: Read More [+]

Prerequisites: EECS 16A , EECS 16B , and COMPSCI 61C ; EL ENG 105 recommended

Field-Programmable Gate Array Laboratory: Read Less [-]

COMPSCI C8 Foundations of Data Science 4 Units

Terms offered: Fall 2024, Summer 2024 8 Week Session, Spring 2024, Fall 2023, Spring 2023, Fall 2022, Spring 2022, Fall 2021, Summer 2021 8 Week Session, Fall 2020 Foundations of data science from three perspectives: inferential thinking, computational thinking, and real-world relevance. Given data arising from some real-world phenomenon, how does one analyze that data so as to understand that phenomenon? The course teaches critical concepts and skills in computer programming and statistical inference, in conjunction with hands-on analysis of real-world datasets, including economic data, document collections, geographical data, and social networks. It delves into social and legal issues surrounding data analysis, including issues of privacy and data ownership. Foundations of Data Science: Read More [+]

Prerequisites: This course may be taken on its own, but students are encouraged to take it concurrently with a data science connector course (numbered 88 in a range of departments)

Credit Restrictions: Students will receive no credit for DATA C8 \ COMPSCI C8 \ INFO C8 \ STAT C8 after completing COMPSCI 8, or DATA 8. A deficient grade in DATA C8 \ COMPSCI C8 \ INFO C8 \ STAT C8 may be removed by taking COMPSCI 8, COMPSCI 8, or DATA 8.

Summer: 8 weeks - 6 hours of lecture and 4 hours of laboratory per week

Additional Format: Three hours of lecture and two hours of laboratory per week. Six hours of lecture and four hours of laboratory per week for 8 weeks.

Subject/Course Level: Computer Science/Undergraduate

Formerly known as: Computer Science C8/Statistics C8/Information C8

Also listed as: DATA C8/INFO C8/STAT C8

Foundations of Data Science: Read Less [-]

COMPSCI 10 The Beauty and Joy of Computing 4 Units

Terms offered: Fall 2024, Summer 2024 8 Week Session, Spring 2024 An introductory course for students with minimal prior exposure to computer science. Prepares students for future computer science courses and empowers them to utilize programming to solve problems in their field of study. Presents an overview of the history, great principles, and transformative applications of computer science, as well as a comprehensive introduction to programming. Topics include abstraction, recursion, algorithmic complexity, higher-order functions, concurrency, social implications of computing (privacy, education, algorithmic bias), and engaging research areas (data science, AI, HCI). Students will program in Snap! (a friendly graphical language) and Python, and will design and implement two projects of their choice. The Beauty and Joy of Computing: Read More [+]

Credit Restrictions: Students will receive no credit for 10 after having taken W10, 61A, 61B, or 61C.

Fall and/or spring: 15 weeks - 2 hours of lecture, 1 hour of discussion, and 4 hours of laboratory per week

Summer: 8 weeks - 4 hours of lecture, 2 hours of discussion, and 8 hours of laboratory per week

Additional Format: Two hours of lecture and one hour of discussion and four hours of laboratory per week. Four hours of lecture and two hours of discussion and eight hours of laboratory per week for 8 weeks.

Instructors: Garcia, Hug

The Beauty and Joy of Computing: Read Less [-]

COMPSCI W10 The Beauty and Joy of Computing 4 Units

Terms offered: Fall 2012 This course meets the programming prerequisite for 61A. An introduction to the beauty and joy of computing. The history, social implications, great principles, and future of computing. Beautiful applications that have changed the world. How computing empowers discovery and progress in other fields. Relevance of computing to the student and society will be emphasized. Students will learn the joy of programming a computer using a friendly, graphical language, and will complete a substantial team programming project related to their interests. The Beauty and Joy of Computing: Read More [+]

Credit Restrictions: Students will receive no credit for W10 after taking 10, 61A, 61B or 61C. A deficient grade in 10 may be removed by taking W10.

Fall and/or spring: 15 weeks - 2 hours of web-based lecture and 5 hours of web-based discussion per week

Summer: 8 weeks - 4 hours of web-based lecture and 10 hours of web-based discussion per week

Additional Format: Two hours of web-based lecture, four hours of web-based laboratory, and one hour of web-based discussion per week. Four hours of web-based lecture, eight hours of web-based laboratory, and two hours of web-based discussion per week for eight weeks.

Online: This is an online course.

COMPSCI 36 CS Scholars Seminar: The Educational Climate in CS & CS61A technical discussions 2 Units

Terms offered: Fall 2019, Fall 2018, Spring 2018 Computer Science 36 is a seminar for CS Scholars who are concurrently taking CS61A: The Structure and Interpretation of Computer Programs. CS Scholars is a cohort-model program to provide support in exploring and potentially declaring a CS major for students with little to no computational background prior to coming to the university. CS 36 provides an introduction to the CS curriculum at UC Berkeley, and the overall CS landscape in both industry and academia—through the lens of accessibility and its relevance to diversity. Additionally, CS36 provides technical instruction to review concepts in CS61A, in order to support CS Scholars’ individual learning and success in the CS61A course. CS Scholars Seminar: The Educational Climate in CS & CS61A technical discussions: Read More [+]

Student Learning Outcomes: Students will know where to find several support services including tutoring, advising, counseling, and career advice. Students will perform as well as possible in the CS61A prerequisite for the CS major. They will also have customized program plans for completing the major within four years.

Prerequisites: Prerequisite satisfied Concurrently: Participating in the CS Scholars program, and concurrently taking COMPSCI 61A

Fall and/or spring: 15 weeks - 2 hours of seminar per week

Additional Format: Two hours of seminar per week.

Grading/Final exam status: Offered for pass/not pass grade only. Alternative to final exam.

Instructor: Hunn

CS Scholars Seminar: The Educational Climate in CS & CS61A technical discussions: Read Less [-]

COMPSCI 39 Freshman/Sophomore Seminar 1.5 - 2 Units

Terms offered: Fall 2023, Spring 2022, Spring 2019 Freshman and sophomore seminars offer lower division students the opportunity to explore an intellectual topic with a faculty member and a group of peers in a small-seminar setting. These seminars are offered in all campus departments; topics vary from department to department and from semester to semester. Enrollment limits are set by the faculty, but the suggested limit is 25. Freshman/Sophomore Seminar: Read More [+]

Prerequisites: Priority given to freshmen and sophomores

Repeat rules: Course may be repeated for credit when topic changes.

Fall and/or spring: 15 weeks - 2-3 hours of seminar per week

Additional Format: Two to three hours of seminar per week.

Grading/Final exam status: Offered for pass/not pass grade only. Final Exam To be decided by the instructor when the class is offered.

Freshman/Sophomore Seminar: Read Less [-]

COMPSCI 47A Completion of Work in Computer Science 61A 1 Unit

Terms offered: Fall 2024, Spring 2024, Fall 2023 Implementation of generic operations. Streams and iterators. Implementation techniques for supporting functional, object-oriented, and constraint-based programming in the Scheme programming language. Together with 9D, 47A constitutes an abbreviated, self-paced version of 61A for students who have already taken a course equivalent to 61B. Completion of Work in Computer Science 61A: Read More [+]

Prerequisites: COMPSCI 61B , COMPSCI 9D, and consent of instructor

Credit Restrictions: Students will receive no credit for 47A after taking 61A.

Fall and/or spring: 15 weeks - 0 hours of self-paced per week

Additional Format: Zero hour of self-paced per week.

Instructor: Garcia

Completion of Work in Computer Science 61A: Read Less [-]

COMPSCI 47B Completion of Work in Computer Science 61B 1 Unit

Terms offered: Fall 2024, Spring 2024, Fall 2023 Iterators. Hashing, applied to strings and multi-dimensional structures. Heaps. Storage management. Design and implementation of a program containing hundreds of lines of code. Students who have completed a portion of the subject matter of COMPSCI 61B may, with consent of instructor, complete COMPSCI 61B in this self-paced course. Please note that students in the College of Engineering are required to receive additional permission from the College as well as the EECS department for the course to count in place of COMPSCI 61B . Completion of Work in Computer Science 61B: Read More [+]

Prerequisites: A course in data structures, COMPSCI 9G, and consent of instructor

Credit Restrictions: Students will receive no credit for 47B after taking 61B.

Completion of Work in Computer Science 61B: Read Less [-]

COMPSCI 47C Completion of Work in Computer Science 61C 1 Unit

Terms offered: Fall 2024, Spring 2024, Fall 2023 MIPS instruction set simulation. The assembly and linking process. Caches and virtual memory. Pipelined computer organization. Students with sufficient partial credit in 61C may, with consent of instructor, complete the credit in this self-paced course. Completion of Work in Computer Science 61C: Read More [+]

Prerequisites: Experience with assembly language including writing an interrupt handler, COMPSCI 9C, and consent of instructor

Credit Restrictions: Students will receive no credit for COMPSCI 47C after completing COMPSCI 61C , or COMPSCI 61CL.

Completion of Work in Computer Science 61C: Read Less [-]

COMPSCI 61A The Structure and Interpretation of Computer Programs 4 Units

Terms offered: Fall 2024, Summer 2024 8 Week Session, Spring 2024 An introduction to programming and computer science focused on abstraction techniques as means to manage program complexity. Techniques include procedural abstraction; control abstraction using recursion, higher-order functions, generators, and streams; data abstraction using interfaces, objects, classes, and generic operators; and language abstraction using interpreters and macros. The course exposes students to programming paradigms, including functional, object-oriented, and declarative approaches. It includes an introduction to asymptotic analysis of algorithms. There are several significant programming projects. The Structure and Interpretation of Computer Programs: Read More [+]

Prerequisites: MATH 1A (may be taken concurrently) or Math 10A or Math 16A. Programming experience equivalent to that gained from a score of 3 or above on the Advanced Placement Computer Science exam

Credit Restrictions: Students will receive no credit for COMPSCI 61A after completing COMPSCI 47A , COMPSCI 61AS, or COMPSCI W61A . A deficient grade in COMPSCI 61A may be removed by taking COMPSCI 61AS, or COMPSCI W61A .

Fall and/or spring: 15 weeks - 3 hours of lecture, 1.5 hours of discussion, and 1.5 hours of laboratory per week

Summer: 8 weeks - 6 hours of lecture, 3 hours of discussion, and 3 hours of laboratory per week

Additional Format: Three hours of lecture and one and one-half hours of discussion and one and one-half hours of laboratory per week. Six hours of lecture and three hours of discussion and three hours of laboratory per week for 8 weeks.

Instructors: Garcia, Hilfinger

The Structure and Interpretation of Computer Programs: Read Less [-]

COMPSCI 61B Data Structures 4 Units

Terms offered: Fall 2024, Spring 2024, Fall 2023 Fundamental dynamic data structures, including linear lists, queues, trees, and other linked structures; arrays strings, and hash tables. Storage management. Elementary principles of software engineering. Abstract data types. Algorithms for sorting and searching. Introduction to the Java programming language. Data Structures: Read More [+]

Prerequisites: COMPSCI 61A , COMPSCI 88, or ENGIN 7

Credit Restrictions: Students will receive no credit for COMPSCI 61B after completing COMPSCI 61BL , or COMPSCI 47B . A deficient grade in COMPSCI 61B may be removed by taking COMPSCI 61BL .

Fall and/or spring: 15 weeks - 3 hours of lecture, 1 hour of discussion, and 2 hours of laboratory per week

Summer: 8 weeks - 6 hours of lecture, 2 hours of discussion, and 4 hours of laboratory per week

Additional Format: Three hours of lecture and one hour of discussion and two hours of laboratory per week. Six hours of lecture and two hours of discussion and four hours of laboratory per week for 8 weeks.

Instructors: Hilfinger, Shewchuk

Data Structures: Read Less [-]

COMPSCI 61BL Data Structures and Programming Methodology 4 Units

Terms offered: Summer 2024 8 Week Session, Summer 2023 8 Week Session, Summer 2022 8 Week Session The same material as in 61B, but in a laboratory-based format. Data Structures and Programming Methodology: Read More [+]

Credit Restrictions: Students will receive no credit for COMPSCI 61BL after completing COMPSCI 47B , or COMPSCI 61B . A deficient grade in COMPSCI 61BL may be removed by taking COMPSCI 61B .

Fall and/or spring: 15 weeks - 1 hour of lecture and 6 hours of laboratory per week

Summer: 8 weeks - 2 hours of lecture and 12 hours of laboratory per week

Additional Format: One hour of lecture and six hours of laboratory per week. Two hours of lecture and twelve hours of laboratory per week for 8 weeks.

Instructor: Hilfinger

Data Structures and Programming Methodology: Read Less [-]

COMPSCI 61C Great Ideas of Computer Architecture (Machine Structures) 4 Units

Terms offered: Fall 2024, Summer 2024 8 Week Session, Spring 2024 The internal organization and operation of digital computers. Machine architecture, support for high-level languages (logic, arithmetic, instruction sequencing) and operating systems (I/O, interrupts, memory management, process switching). Elements of computer logic design. Tradeoffs involved in fundamental architectural design decisions. Great Ideas of Computer Architecture (Machine Structures): Read More [+]

Prerequisites: COMPSCI 61A , along with either COMPSCI 61B or COMPSCI 61BL , or programming experience equivalent to that gained in COMPSCI 9C, COMPSCI 9F, or COMPSCI 9G

Credit Restrictions: Students will receive no credit for COMPSCI 61C after completing COMPSCI 61CL.

Additional Format: Two hours of lecture, one hour of discussion, and an average of six hours of self-scheduled programming laboratory per week.

Instructors: Garcia, Katz, Stojanovic

Great Ideas of Computer Architecture (Machine Structures): Read Less [-]

COMPSCI W61A The Structure and Interpretation of Computer Programs (Online) 4 Units

Terms offered: Summer 2019 8 Week Session An introduction to programming and computer science focused on abstraction techniques as means to manage program complexity. Techniques include procedural abstraction; control abstraction using recursion, higher-order functions, generators, and streams; data abstraction using interfaces, objects, classes, and generic operators; and language abstraction using interpreters and macros. The course exposes students to programming paradigms, including functional , object-oriented, and declarative approaches. It includes an introduction to asymptotic analysis of algorithms. There are several significant programming projects. The Structure and Interpretation of Computer Programs (Online): Read More [+]

Prerequisites: MATH 1A (may be taken concurrently); programming experience equivalent to that gained from a score of 3 or above on the Advanced Placement Computer Science A exam

Credit Restrictions: Students will receive no credit for Computer Science W61A after completing Computer Science 47A or Computer Science 61A. A deficient grade in Computer Science W61A may be removed by taking Computer Science 61A.

Fall and/or spring: 15 weeks - 3 hours of web-based lecture, 1.5 hours of laboratory, and 1.5 hours of web-based discussion per week

Summer: 8 weeks - 6 hours of web-based lecture, 3 hours of laboratory, and 3 hours of web-based discussion per week

Additional Format: One and one-half hours of laboratory and one and one-half hours of web-based discussion and three hours of web-based lecture per week. Three hours of laboratory and three hours of web-based discussion and six hours of web-based lecture per week for 8 weeks.

Instructor: Denero

The Structure and Interpretation of Computer Programs (Online): Read Less [-]

COMPSCI 70 Discrete Mathematics and Probability Theory 4 Units

Terms offered: Fall 2024, Summer 2024 8 Week Session, Spring 2024 Logic, infinity, and induction; applications include undecidability and stable marriage problem. Modular arithmetic and GCDs; applications include primality testing and cryptography. Polynomials; examples include error correcting codes and interpolation. Probability including sample spaces, independence, random variables, law of large numbers; examples include load balancing, existence arguments, Bayesian inference. Discrete Mathematics and Probability Theory: Read More [+]

Prerequisites: Sophomore mathematical maturity, and programming experience equivalent to that gained with a score of 3 or above on the Advanced Placement Computer Science A exam

Credit Restrictions: Students will receive no credit for Computer Science 70 after taking Mathematics 55.

Fall and/or spring: 15 weeks - 3 hours of lecture and 2 hours of discussion per week

Summer: 8 weeks - 6 hours of lecture and 4 hours of discussion per week

Additional Format: Three hours of lecture and two hours of discussion per week. Six hours of lecture and four hours of discussion per week for 8 weeks.

Instructors: Rao, Vazirani, Wagner, Sahai

Discrete Mathematics and Probability Theory: Read Less [-]

COMPSCI 84 Sophomore Seminar 1 or 2 Units

Terms offered: Fall 2007 Sophomore seminars are small interactive courses offered by faculty members in departments all across the campus. Sophomore seminars offer opportunity for close, regular intellectual contact between faculty members and students in the crucial second year. The topics vary from department to department and semester to semester. Enrollment limited to 15 sophomores. Sophomore Seminar: Read More [+]

Prerequisites: At discretion of instructor

Fall and/or spring: 5 weeks - 3-6 hours of seminar per week 10 weeks - 1.5-3 hours of seminar per week 15 weeks - 1-2 hours of seminar per week

Summer: 6 weeks - 2.5-5 hours of seminar per week 8 weeks - 2-4 hours of seminar per week

Additional Format: unit(s):one hour of seminar per week; 2 unit(s):two hours of seminar per week. unit(s):one and one-half hours of seminar per week; 2 unit(s):three hours of seminar per week for 10 weeks. unit(s):two hours of seminar per week; 2 unit(s):four hours of seminar per week for 8 weeks. unit(s):two and one-half hours of seminar per week; 2 unit(s):five hours of seminar per week for 6 weeks. unit(s):three hours of seminar per week; 2 unit(s):six hours of seminar per week for five weeks.

Grading/Final exam status: The grading option will be decided by the instructor when the class is offered. Final exam required.

Sophomore Seminar: Read Less [-]

COMPSCI C88C Computational Structures in Data Science 3 Units

Terms offered: Fall 2024, Summer 2024 8 Week Session, Spring 2024, Spring 2023, Fall 2022 Development of Computer Science topics appearing in Foundations of Data Science (C8); expands computational concepts and techniques of abstraction. Understanding the structures that underlie the programs, algorithms, and languages used in data science and elsewhere. Mastery of a particular programming language while studying general techniques for managing program complexity, e.g., functional, object-oriented , and declarative programming. Provides practical experience with composing larger systems through several significant programming projects. Computational Structures in Data Science: Read More [+]

Course Objectives: Develop a foundation of computer science concepts that arise in the context of data analytics, including algorithm, representation, interpretation, abstraction, sequencing, conditional, function, iteration, recursion, types, objects, and testing, and develop proficiency in the application of these concepts in the context of a modern programming language at a scale of whole programs on par with a traditional CS introduction course.

Student Learning Outcomes: Students will be able to demonstrate a working knowledge of these concepts and a proficiency of programming based upon them sufficient to construct substantial stand-alone programs.

Prerequisites: This course is a Data Science connector course and may only be taken concurrently with or after COMPSCI C8 / DATA C8 / INFO C8 / STAT C8 . Students may take more than one Data Science connector (88) course if they wish, concurrent with or after having taken the C8 course

Credit Restrictions: Students will receive no credit for DATA C88C after completing COMPSCI 61A .

Fall and/or spring: 15 weeks - 2-2 hours of lecture, 2-2 hours of laboratory, and 0-1 hours of supplement per week

Summer: 8 weeks - 4-4 hours of lecture, 4-4 hours of laboratory, and 0-2 hours of supplement per week

Additional Format: Two hours of lecture and two hours of laboratory and zero to one hours of supplement per week. Four hours of lecture and four hours of laboratory and zero to two hours of supplement per week for 8 weeks.

Instructors: Ball, Culler

Formerly known as: Computer Science 88

Also listed as: DATA C88C

Computational Structures in Data Science: Read Less [-]

COMPSCI C100 Principles & Techniques of Data Science 4 Units

Terms offered: Fall 2024, Summer 2024 8 Week Session, Spring 2024, Summer 2023 8 Week Session, Fall 2022, Fall 2021, Fall 2020 In this course, students will explore the data science lifecycle, including question formulation, data collection and cleaning, exploratory data analysis and visualization, statistical inference and prediction​, and decision-making.​ This class will focus on quantitative critical thinking​ and key principles and techniques needed to carry out this cycle. These include languages for transforming, querying and analyzing data; algorithms for machine learning methods including regression, classification and clustering; principles behind creating informative data visualizations; statistical concepts of measurement error and prediction; and techniques for scalable data processing. Principles & Techniques of Data Science: Read More [+]

Prerequisites: COMPSCI C8 / DATA C8 / INFO C8 / STAT C8 with a C- or better, or Pass; and COMPSCI 61A , COMPSCI/DATA C88C, or ENGIN 7 with a C- or better, or Pass; Corequisite: MATH 54 , 56 or EECS 16A (C- or better, or Pass, required if completed prior to Data C100)

Credit Restrictions: Students will receive no credit for DATA C100 \ STAT C100 \ COMPSCI C100 after completing DATA 100. A deficient grade in DATA C100 \ STAT C100 \ COMPSCI C100 may be removed by taking DATA 100.

Fall and/or spring: 15 weeks - 3-3 hours of lecture, 1-1 hours of discussion, and 0-1 hours of laboratory per week

Summer: 8 weeks - 6-6 hours of lecture, 2-2 hours of discussion, and 0-2 hours of laboratory per week

Additional Format: Three hours of lecture and one hour of discussion and zero to one hours of laboratory per week. Six hours of lecture and two hours of discussion and zero to two hours of laboratory per week for 8 weeks.

Instructors: Gonzalez, Nourozi, Perez, Yan

Formerly known as: Statistics C100/Computer Science C100

Also listed as: DATA C100/STAT C100

Principles & Techniques of Data Science: Read Less [-]

COMPSCI 152 Computer Architecture and Engineering 4 Units

Terms offered: Spring 2024, Spring 2023, Spring 2022 Instruction set architecture, microcoding, pipelining (simple and complex). Memory hierarchies and virtual memory. Processor parallelism: VLIW, vectors, multithreading. Multiprocessors. Computer Architecture and Engineering: Read More [+]

Prerequisites: COMPSCI 61C

Instructors: Asanovic, Culler, Kubiatowicz, Wawrzynek

Computer Architecture and Engineering: Read Less [-]

COMPSCI 160 User Interface Design and Development 4 Units

Terms offered: Summer 2024 8 Week Session, Spring 2024, Summer 2023 8 Week Session The design, implementation, and evaluation of user interfaces. User-centered design and task analysis. Conceptual models and interface metaphors. Usability inspection and evaluation methods. Analysis of user study data. Input methods (keyboard, pointing, touch, tangible) and input models. Visual design principles. Interface prototyping and implementation methodologies and tools. Students will develop a user interface for a specific task and target user group in teams. User Interface Design and Development: Read More [+]

Prerequisites: COMPSCI 61B or COMPSCI 61BL

Credit Restrictions: Students will receive no credit for Computer Science 160 after taking Computer Science 260A.

Summer: 8 weeks - 6 hours of lecture and 2 hours of discussion per week

Additional Format: Three hours of lecture and one hour of discussion per week. Six hours of lecture and two hours of discussion per week for 8 weeks.

Instructors: Agrawala, Canny, Hartmann, Paulos

User Interface Design and Development: Read Less [-]

COMPSCI 161 Computer Security 4 Units

Terms offered: Fall 2024, Summer 2024 8 Week Session, Spring 2024 Introduction to computer security. Cryptography, including encryption, authentication, hash functions, cryptographic protocols, and applications. Operating system security, access control. Network security, firewalls, viruses, and worms. Software security, defensive programming, and language-based security. Case studies from real-world systems. Computer Security: Read More [+]

Prerequisites: COMPSCI 61B , COMPSCI 61C , and COMPSCI 70

Fall and/or spring: 15 weeks - 3-3 hours of lecture and 1-1.5 hours of discussion per week

Summer: 8 weeks - 6-6 hours of lecture and 2-3 hours of discussion per week

Additional Format: Three hours of lecture and one to one and one-half hours of discussion per week. Six hours of lecture and two to three hours of discussion per week for 8 weeks.

Instructors: Paxson, Song, Wagner

Computer Security: Read Less [-]

COMPSCI 162 Operating Systems and System Programming 4 Units

Terms offered: Fall 2024, Spring 2024, Fall 2023 Basic concepts of operating systems and system programming. Utility programs, subsystems, multiple-program systems. Processes, interprocess communication, and synchronization. Memory allocation, segmentation, paging. Loading and linking, libraries. Resource allocation, scheduling, performance evaluation. File systems, storage devices, I/O systems. Protection, security, and privacy. Operating Systems and System Programming: Read More [+]

Instructors: Joseph, Kubiatowicz, Stoica

Operating Systems and System Programming: Read Less [-]

COMPSCI 164 Programming Languages and Compilers 4 Units

Terms offered: Fall 2024, Spring 2024, Fall 2023 Survey of programming languages. The design of modern programming languages. Principles and techniques of scanning, parsing, semantic analysis, and code generation. Implementation of compilers, interpreters, and assemblers. Overview of run-time organization and error handling. Programming Languages and Compilers: Read More [+]

Prerequisites: COMPSCI 61B and COMPSCI 61C

Instructors: Bodik, Hilfinger, Necula

Programming Languages and Compilers: Read Less [-]

COMPSCI 168 Introduction to the Internet: Architecture and Protocols 4 Units

Terms offered: Fall 2024, Spring 2024, Fall 2022 This course is an introduction to the Internet architecture. We will focus on the concepts and fundamental design principles that have contributed to the Internet's scalability and robustness and survey the various protocols and algorithms used within this architecture. Topics include layering, addressing, intradomain routing, interdomain routing, reliable delivery, congestion control, and the core protocols (e.g., TCP, UDP, IP, DNS, and HTTP) and network technologies (e.g., Ethernet, wireless). Introduction to the Internet: Architecture and Protocols: Read More [+]

Prerequisites: COMPSCI 61B and COMPSCI 162

Instructors: Katz, Paxson, Ratnasamy, Shenker, Stoica

Introduction to the Internet: Architecture and Protocols: Read Less [-]

COMPSCI 169A Introduction to Software Engineering 4 Units

Terms offered: Fall 2024, Summer 2024 8 Week Session, Fall 2023 Ideas and techniques for designing, developing, and modifying large software systems. Service-oriented architecture, behavior-driven design with user stories, cloud computing, test-driven development, automated testing, cost and quality metrics for maintainability and effort estimation, practical performance and security in software operations, design patterns and refactoring, specification and documentation, agile project team organization and management. Introduction to Software Engineering: Read More [+]

Student Learning Outcomes: Students will learn how to approach and add functionality to a legacy code base; Students will learn how to identify, measure, and resolve maintainability problems in code; Students will learn how to work with nontechnical customers and convert customer requirements into a software plan that can be effort-estimated, built, and deployed to the public cloud, including the use of behavior-driven design, user stories, and velocity; Students will learn how to write automated tests and measure test coverage; Students will learn practical security and performance considerations for SaaS applications. Students will learn the architecture and machinery of software as a service; the agile/XP methodology for software development and how it compares with other methodologies, including "Plan-and-document" methodologies; Students will learn the role of software design patterns in refactoring, and how to identify opportunities to use them;

Prerequisites: COMPSCI 61A and COMPSCI 61B ; COMPSCI 70 is recommended

Credit Restrictions: Students will receive no credit for COMPSCI 169A after completing COMPSCI 169, or COMPSCI W169A . A deficient grade in COMPSCI 169A may be removed by taking COMPSCI 169, or COMPSCI W169A .

Instructors: Fox, Fox, Ball

Introduction to Software Engineering: Read Less [-]

COMPSCI 169L Software Engineering Team Project 4 Units

Terms offered: Spring 2024, Spring 2023, Spring 2022 Open-ended design project enhancing or creating software for real customers in an agile team setting. Teamwork coordination, effective customer meetings, pre- and post-iteration team meetings, running scrums and standups, technical communication. Contributing as a team to an open-source project; tools and workflows associated with open source collaboration, including fork-and-pull, rebase, upstream merge, continuous deployment & inte gration. Software Engineering Team Project: Read More [+]

Course Objectives: Students will work in a team to develop new software or enhance existing software for a customer with a real business need.

Student Learning Outcomes: Students will learn how to conduct effective meetings with nontechnical customers and work with their feedback; Students will learn how to coordinate teamwork on developing, testing, and deploying features; and in most cases, how to approach a legacy codebase and add features to it. Students will learn to run a small team including rotation of team roles such as product owner, scrum master, and so on;

Prerequisites: COMPSCI 169A or COMPSCI W169A

Credit Restrictions: Students will receive no credit for COMPSCI 169L after completing COMPSCI 169.

Fall and/or spring: 15 weeks - 3 hours of discussion and 8 hours of fieldwork per week

Summer: 8 weeks - 6 hours of discussion and 16 hours of fieldwork per week

Additional Format: Three hours of discussion and eight hours of fieldwork per week. Six hours of discussion and sixteen hours of fieldwork per week for 8 weeks.

Instructors: Fox, Sen

Software Engineering Team Project: Read Less [-]

COMPSCI W169A Software Engineering 3 Units

Terms offered: Summer 2021 8 Week Session, Fall 2020, Summer 2020 8 Week Session This course presents ideas and techniques for designing, developing, and modifying large software systems using Agile techniques and tools. Topics include: function-oriented and object-oriented modular design techniques, designing for re-use and maintainability including proper use of design patterns, behavior-driven design, test-driven development, user stories for requirements elicitation & documentation , verification and validation, cost and quality metrics and estimation, project team organization and management, analyzing and refactoring legacy code. Software Engineering: Read More [+]

Student Learning Outcomes: Students will learn how to apply BDD & TDD to identify the main parts of a legacy code base, measure code quality, and refactor code to improve its quality; Students will learn how to apply behavior-driven development (BDD) to elicit customer needs and express them as user stories that will drive development; Students will learn how to apply the key ideas of learning a new framework to construct and deploy simple Rails applications; Students will learn how to apply the key ideas of learning a new language in order to construct programs in Ruby; Students will learn how to construct unit- and module-level tests and measure their coverage; Students will learn how to exercise best practices in planning, effort estimation, and coordination of the efforts of small software teams, using appropriate tools to support those practices; Students will learn how to identify and repair potential app-level security and performance problems. Students will learn how to recognize when an appropriate Design Pattern may improve code quality, and refactor code to apply those Design Patterns; Students will learn how to summarize the key architectural elements of RESTful SaaS applications and microservices; Students will learn to articulate the primary differences between Agile and Plan-and-Document methodologies;

Prerequisites: COMPSCI 61A and COMPSCI 61B

Credit Restrictions: Students will receive no credit for COMPSCI W169A after completing COMPSCI 169, or COMPSCI 169A . A deficient grade in COMPSCI W169A may be removed by taking COMPSCI 169, or COMPSCI 169A .

Fall and/or spring: 15 weeks - 3 hours of web-based lecture and 1 hour of discussion per week

Summer: 8 weeks - 6 hours of web-based lecture and 0 hours of discussion per week

Additional Format: One hour of discussion and three hours of web-based lecture per week. Zero hour of discussion and six hours of web-based lecture per week for 8 weeks.

Software Engineering: Read Less [-]

COMPSCI 170 Efficient Algorithms and Intractable Problems 4 Units

Terms offered: Fall 2024, Spring 2024, Fall 2023 Concept and basic techniques in the design and analysis of algorithms; models of computation; lower bounds; algorithms for optimum search trees, balanced trees and UNION-FIND algorithms; numerical and algebraic algorithms; combinatorial algorithms. Turing machines, how to count steps, deterministic and nondeterministic Turing machines, NP-completeness. Unsolvable and intractable problems. Efficient Algorithms and Intractable Problems: Read More [+]

Prerequisites: COMPSCI 61B and COMPSCI 70

Instructors: Demmel, Papadimitriou, Rao, Wagner, Vazirani

Efficient Algorithms and Intractable Problems: Read Less [-]

COMPSCI 171 Cryptography 4 Units

Terms offered: Spring 2024, Spring 2021 Cryptography or cryptology is the science of designing algorithms and protocols for enabling parties to communicate and compute securely in an untrusted environment (e.g. secure communication, digital signature, etc.) Over the last four decades, cryptography has transformed from an ad hoc collection of mysterious tricks into a rigorous science based on firm complexity-theoretic foundations. This modern complexity-theoretic approach to cryptography will be the focus. E.g., in the context of encryption we will begin by giving a precise mathematical definition for what it means to be a secure encryption scheme and then give a construction (realizing this security notion) assuming various computational hardness assumptions (e.g. factoring). Cryptography: Read More [+]

Prerequisites: COMPSCI 70

Instructor: Garg

Cryptography: Read Less [-]

COMPSCI 172 Computability and Complexity 4 Units

Terms offered: Fall 2024, Fall 2022, Spring 2022 Finite automata, Turing machines and RAMs. Undecidable, exponential, and polynomial-time problems. Polynomial-time equivalence of all reasonable models of computation. Nondeterministic Turing machines. Theory of NP-completeness: Cook's theorem, NP-completeness of basic problems. Selected topics in language theory, complexity and randomness. Computability and Complexity: Read More [+]

Prerequisites: COMPSCI 170

Instructors: Papadimitriou, Seshia, Sinclair, Vazirani

Computability and Complexity: Read Less [-]

COMPSCI 174 Combinatorics and Discrete Probability 4 Units

Terms offered: Spring 2023, Spring 2022, Fall 2019 Permutations, combinations, principle of inclusion and exclusion, generating functions, Ramsey theory. Expectation and variance, Chebychev's inequality, Chernov bounds. Birthday paradox, coupon collector's problem, Markov chains and entropy computations, universal hashing, random number generation, random graphs and probabilistic existence bounds. Combinatorics and Discrete Probability: Read More [+]

Instructors: Bartlett, Papadimitriou, Sinclair, Vazirani

Combinatorics and Discrete Probability: Read Less [-]

COMPSCI 176 Algorithms for Computational Biology 4 Units

Terms offered: Fall 2020, Fall 2018, Fall 2017 Algorithms and probabilistic models that arise in various computational biology applications: suffix trees, suffix arrays, pattern matching, repeat finding, sequence alignment, phylogenetics, genome rearrangements, hidden Markov models, gene finding, motif finding, stochastic context free grammars, RNA secondary structure. There are no biology prerequisites for this course, but a strong quantitative background will be essential. Algorithms for Computational Biology: Read More [+]

Prerequisites: COMPSCI 70 and COMPSCI 170 ; experience programming in a language such as C, C++, Java, or Python

Instructor: Song

Algorithms for Computational Biology: Read Less [-]

COMPSCI C176 Algorithms for Computational Biology 4 Units

Terms offered: Fall 2022 This course will provide familiarity with algorithms and probabilistic models that arise in various computational biology applications, such as suffix trees, suffix arrays, pattern matching, repeat finding, sequence alignment, phylogenetics, hidden Markov models, gene finding, motif finding, linear/logistic regression, random forests, convolutional neural networks, genome-wide association studies, pathogenicity prediction, and sequence-to-epigenome prediction. Algorithms for Computational Biology: Read More [+]

Student Learning Outcomes: Understand the basic elements of molecular, cell, and evolutionary biology. Understand the key probabilistic and machine learning models used in computational biology applications. Understand various data structures and algorithms that arise in computational biology.

Prerequisites: COMPSCI 70 and COMPSCI 170 , MATH 54 or EECS 16A or an equivalent linear algebra course

Credit Restrictions: Students will receive no credit for COMPSCI C176 after completing COMPSCI 176 . A deficient grade in COMPSCI C176 may be removed by taking COMPSCI 176 .

Instructors: Song, Yun, Ioannidis

Also listed as: CMPBIO C176

COMPSCI C177 Algorithmic Economics 4 Units

Terms offered: Spring 2024 The class provides an introduction to algorithmic questions in economic design. The class will cover problems of public goods and social choice, as well as allocative questions and private consumption. The focus is on normative questions: From the perspective of social goals, these are efficiency, fairness, and equity. In terms of private goals, the focus is on revenue maximization. The course will cover voting, fair division, pricing and market mechanisms. There is an emphasis on the algorithmic questions that arise naturally in economic design. Algorithmic Economics: Read More [+]

Prerequisites: Students should be comfortable with formal mathematical proofs, and will be expected to write proofs on their own

Also listed as: ECON C147

Algorithmic Economics: Read Less [-]

COMPSCI 180 Intro to Computer Vision and Computational Photography 4 Units

Terms offered: Fall 2024, Fall 2023 This advanced undergraduate course introduces students to computing with visual data (images and video). We will cover acquisition, representation, and manipulation of visual information from digital photographs (image processing), image analysis and visual understanding (computer vision), and image synthesis (computational photography). Key algorithms will be presented, ranging from classical to contemporary, with an emphasis on using these techniques to build practical systems. The hands-on emphasis will be reflected in the programming assignments, where students will acquire their own images and develop, largely from scratch, image analysis and synthesis tools for real-world applications. Intro to Computer Vision and Computational Photography: Read More [+]

Course Objectives: Students will learn classic algorithms in image manipulation with Gaussian and Laplacian Pyramids, understand the hierarchy of image transformations including homographies, and how to warp an image with these transformations. Students will learn how to apply Convolutional Neural Networks for computer vision problems and how they can be used for image manipulation. Students will learn the fundamentals of 3D vision: stereo, multi-view geometry, camera calibration, structure-from-motion, multi-view stereo, and the plenoptic function. Students will learn the fundamentals of image processing from the mechanics of a pin-hole camera, representation of images as pixels, physics of light and the process of image formation, to manipulating the visual information using signal processing techniques in the spatial and frequency domains.

Student Learning Outcomes: After this class, students will be comfortable implementing, from scratch, these algorithms in modern programming languages and deep learning libraries.

Prerequisites: COMPSCI 61B , COMPSCI 70 , and MATH 53 (or other vector calculus course). MATH 54 , MATH 110 , or EECS 16A . COMPSCI 182 is strongly recommended

Instructors: Efros, Kanazawa

Intro to Computer Vision and Computational Photography: Read Less [-]

COMPSCI 182 Designing, Visualizing and Understanding Deep Neural Networks 4 Units

Terms offered: Fall 2023, Spring 2023, Fall 2022 Deep Networks have revolutionized computer vision, language technology, robotics and control. They have growing impact in many other areas of science and engineering. They do not however, follow a closed or compact set of theoretical principles. In Yann Lecun's words they require "an interplay between intuitive insights, theoretical modeling, practical implementations, empirical studies, and scientific analyses." This course attempts to cover that ground. Designing, Visualizing and Understanding Deep Neural Networks: Read More [+]

Student Learning Outcomes: Students will come to understand visualizing deep networks. Exploring the training and use of deep networks with visualization tools. Students will learn design principles and best practices: design motifs that work well in particular domains, structure optimization and parameter optimization. Understanding deep networks. Methods with formal guarantees: generative and adversarial models, tensor factorization.

Prerequisites: MATH 53 , MATH 54 , and COMPSCI 61B ; COMPSCI 70 or STAT 134 ; COMPSCI 189 is recommended

Credit Restrictions: Students will receive no credit for COMPSCI 182 after completing COMPSCI W182, or COMPSCI L182. A deficient grade in COMPSCI 182 may be removed by taking COMPSCI W182, or COMPSCI L182.

Instructor: Canny

Designing, Visualizing and Understanding Deep Neural Networks: Read Less [-]

COMPSCI 184 Foundations of Computer Graphics 4 Units

Terms offered: Spring 2024, Spring 2023, Spring 2022 Techniques of modeling objects for the purpose of computer rendering: boundary representations, constructive solids geometry, hierarchical scene descriptions. Mathematical techniques for curve and surface representation. Basic elements of a computer graphics rendering pipeline; architecture of modern graphics display devices. Geometrical transformations such as rotation, scaling, translation, and their matrix representations. Homogeneous coordinates, projective and perspective transformations. Algorithms for clipping, hidden surface removal, rasterization, and anti-aliasing. Scan-line based and ray-based rendering algorithms. Lighting models for reflection, refraction, transparency. Foundations of Computer Graphics: Read More [+]

Prerequisites: COMPSCI 61B or COMPSCI 61BL ; programming skills in C, C++, or Java; linear algebra and calculus

Credit Restrictions: Students will receive no credit for Comp Sci 184 after taking Comp Sci 284A.

Instructors: O'Brien, Ng

Foundations of Computer Graphics: Read Less [-]

COMPSCI 185 Deep Reinforcement Learning, Decision Making, and Control 3 Units

Terms offered: Not yet offered This course will cover the intersection of control, reinforcement learning, and deep learning. This course will provide an advanced treatment of the reinforcement learning formalism, the most critical model-free reinforcement learning algorithms (policy gradients, value function and Q-function learning, and actor-critic), a discussion of model-based reinforcement learning algorithms, an overview of imitation learning, and a range of advanced topics, including exploration, model-based learning with video prediction, transfer learning, multi-task learning, and meta-learning. Homework assignments will cover imitation learning, policy gradients, Q-learning, and model-based reinforcement learning, as well as a final project. Deep Reinforcement Learning, Decision Making, and Control: Read More [+]

Prerequisites: CS189/289A or equivalent is a prerequisite for the course. This course will assume some familiarity with reinforcement learning, numerical optimization and machine learning, as well as a basic working knowledge of how to train deep neural networks (which is taught in CS182 and briefly covered in CS189)

Instructor: Levine

Deep Reinforcement Learning, Decision Making, and Control: Read Less [-]

COMPSCI 186 Introduction to Database Systems 4 Units

Terms offered: Fall 2024, Spring 2024, Fall 2023 Access methods and file systems to facilitate data access. Hierarchical, network, relational, and object-oriented data models. Query languages for models. Embedding query languages in programming languages. Database services including protection, integrity control, and alternative views of data. High-level interfaces including application generators, browsers, and report writers. Introduction to transaction processing. Database system implementation to be done as term project. Introduction to Database Systems: Read More [+]

Prerequisites: COMPSCI 61C or COMPSCI 47C . COMPSCI 47C may be taken as a co-requisite for transfer students

Credit Restrictions: Students will receive no credit for COMPSCI 186 after completing COMPSCI W186 . A deficient grade in COMPSCI 186 may be removed by taking COMPSCI W186 .

Instructors: Cheung, Hellerstein

Introduction to Database Systems: Read Less [-]

COMPSCI W186 Introduction to Database Systems 4 Units

Terms offered: Fall 2021, Spring 2021, Spring 2020 Broad introduction to systems for storing, querying, updating and managing large databases. Computer science skills synthesizing viewpoints from low-level systems architecture to high-level modeling and declarative logic. System internals, including the complex details of query optimization and execution, concurrency control, indexing, and memory management. More abstract issues in query languages and data modeling – students are exposed to formal relational languages, SQL, full-text search, entity-relationship modeling, normalization, and physical database design. Recent technological trends in the field, including “Big Data” programming libraries like MapReduce, and distributed key-value stores with various consistency models. Introduction to Database Systems: Read More [+]

Credit Restrictions: Students will receive no credit for COMPSCI W186 after completing COMPSCI 186 . A deficient grade in COMPSCI W186 may be removed by taking COMPSCI 186 .

Summer: 8 weeks - 6 hours of web-based lecture and 2 hours of discussion per week

Additional Format: One hour of discussion and three hours of web-based lecture per week. Two hours of discussion and six hours of web-based lecture per week for 8 weeks.

Instructor: Hellerstein

COMPSCI 188 Introduction to Artificial Intelligence 4 Units

Terms offered: Fall 2024, Summer 2024 8 Week Session, Spring 2024 Ideas and techniques underlying the design of intelligent computer systems. Topics include search, game playing, knowledge representation, inference, planning, reasoning under uncertainty, machine learning, robotics, perception, and language understanding. Introduction to Artificial Intelligence: Read More [+]

Prerequisites: COMPSCI 61A , COMPSCI 61B , and COMPSCI 70

Instructors: Abbeel, Klein, Russell

Introduction to Artificial Intelligence: Read Less [-]

COMPSCI 189 Introduction to Machine Learning 4 Units

Terms offered: Fall 2024, Spring 2024, Fall 2023 Theoretical foundations, algorithms, methodologies, and applications for machine learning. Topics may include supervised methods for regression and classication (linear models, trees, neural networks, ensemble methods, instance-based methods); generative and discriminative probabilistic models; Bayesian parametric learning; density estimation and clustering; Bayesian networks; time series models; dimensionality reduction; programming projects covering a variety of real-world applications. Introduction to Machine Learning: Read More [+]

Prerequisites: MATH 53 and MATH 54 ; and COMPSCI 70 or consent of instructor

Credit Restrictions: Students will receive no credit for Comp Sci 189 after taking Comp Sci 289A.

Instructors: Abbeel, Bartlett, Darrell, El Ghaoui, Jordan, Klein, Malik, Russell

Introduction to Machine Learning: Read Less [-]

COMPSCI C191 Introduction to Quantum Computing 4 Units

Terms offered: Spring 2024, Fall 2023, Spring 2023 This multidisciplinary course provides an introduction to fundamental conceptual aspects of quantum mechanics from a computational and informational theoretic perspective, as well as physical implementations and technological applications of quantum information science. Basic sections of quantum algorithms, complexity, and cryptography, will be touched upon, as well as pertinent physical realizations from nanoscale science and engineering. Introduction to Quantum Computing: Read More [+]

Prerequisites: Linear Algebra ( EECS 16A or PHYSICS 89 or MATH 54 ) AND either discrete mathematics ( COMPSCI 70 or MATH 55 ), or quantum mechanics ( PHYSICS 7C or PHYSICS 137A or CHEM 120A )

Also listed as: CHEM C191/PHYSICS C191

Introduction to Quantum Computing: Read Less [-]

COMPSCI 194 Special Topics 1 - 4 Units

Terms offered: Fall 2024, Spring 2024, Fall 2023 Topics will vary semester to semester. See the Computer Science Division announcements. Special Topics: Read More [+]

Prerequisites: Consent of instructor

Fall and/or spring: 15 weeks - 1-4 hours of lecture per week

Summer: 8 weeks - 2-8 hours of lecture per week

Additional Format: One to four hours of lecture per week. Two to eight hours of lecture per week for 8 weeks.

Special Topics: Read Less [-]

COMPSCI 195 Social Implications of Computer Technology 1 Unit

Terms offered: Fall 2024, Fall 2023, Spring 2023 Topics include electronic community; the changing nature of work; technological risks; the information economy; intellectual property; privacy; artificial intelligence and the sense of self; pornography and censorship; professional ethics. Students will lead discussions on additional topics. Social Implications of Computer Technology: Read More [+]

Credit Restrictions: Students will receive no credit for 195 after taking C195/Interdisciplinary Field Study C155 or H195.

Fall and/or spring: 15 weeks - 1.5 hours of lecture per week

Additional Format: Three hours of lecture/discussion per week.

Grading/Final exam status: Offered for pass/not pass grade only. Final exam not required.

Instructor: Harvey

Social Implications of Computer Technology: Read Less [-]

COMPSCI H195 Honors Social Implications of Computer Technology 3 Units

Terms offered: Fall 2024, Fall 2023, Spring 2023 Topics include electronic community; the changing nature of work; technological risks; the information economy; intellectual property; privacy; artificial intelligence and the sense of self; pornography and censorship; professional ethics. Students may lead discussions on additional topics. Honors Social Implications of Computer Technology: Read More [+]

Credit Restrictions: Student will receive no credit for H195 after taking 195 or C195.

Fall and/or spring: 15 weeks - 1.5 hours of lecture and 1.5 hours of discussion per week

Additional Format: One and one-half hours of Lecture and One and one-half hours of Discussion per week for 15 weeks.

Honors Social Implications of Computer Technology: Read Less [-]

COMPSCI H196A Senior Honors Thesis Research 1 - 4 Units

Terms offered: Fall 2021, Fall 2020, Fall 2016 Thesis work under the supervision of a faculty member. To obtain credit the student must, at the end of two semesters, submit a satisfactory thesis to the Electrical Engineering and Computer Science department archive. A total of four units must be taken. The units many be distributed between one or two semesters in any way. H196A-H196B count as graded technical elective units, but may not be used to satisfy the requirement for 27 upper division technical units in the College of Letters and Science with a major in Computer Science. Senior Honors Thesis Research: Read More [+]

Prerequisites: Open only to students in the computer science honors program

Fall and/or spring: 15 weeks - 1-4 hours of independent study per week

Additional Format: Individual research.

Senior Honors Thesis Research: Read Less [-]

COMPSCI H196B Senior Honors Thesis Research 1 - 4 Units

Terms offered: Spring 2023, Spring 2010, Spring 2009 Thesis work under the supervision of a faculty member. To obtain credit the student must, at the end of two semesters, submit a satisfactory thesis to the Electrical Engineering and Computer Science department archive. A total of four units must be taken. The units many be distributed between one or two semesters in any way. H196A-H196B count as graded technical elective units, but may not be used to satisfy the requirement for 27 upper division technical units in the College of Letters and Science with a major in Computer Science. Senior Honors Thesis Research: Read More [+]

COMPSCI 197 Field Study 1 - 4 Units

Terms offered: Fall 2024, Fall 2023, Spring 2019 Students take part in organized individual field sponsored programs with off-campus companies or tutoring/mentoring relevant to specific aspects and applications of computer science on or off campus. Note Summer CPT or OPT students: written report required. Course does not count toward major requirements, but will be counted in the cumulative units toward graduation. Field Study: Read More [+]

Prerequisites: Consent of instructor (see department adviser)

Repeat rules: Course may be repeated for credit without restriction.

Fall and/or spring: 15 weeks - 1-4 hours of fieldwork per week

Summer: 6 weeks - 2.5-10 hours of fieldwork per week 8 weeks - 2-7.5 hours of fieldwork per week

Additional Format: One to Four hour of Fieldwork per week for 15 weeks. Two to Seven and one-half hours of Fieldwork per week for 8 weeks. Two and one-half to Ten hours of Fieldwork per week for 6 weeks.

Field Study: Read Less [-]

COMPSCI 198 Directed Group Studies for Advanced Undergraduates 1 - 4 Units

Terms offered: Fall 2024, Spring 2024, Fall 2023 Group study of selected topics in Computer Sciences, usually relating to new developments. Directed Group Studies for Advanced Undergraduates: Read More [+]

Prerequisites: 2.0 GPA or better; 60 units completed

Fall and/or spring: 15 weeks - 1-4 hours of directed group study per week

Additional Format: Course format varies with section.

Directed Group Studies for Advanced Undergraduates: Read Less [-]

COMPSCI 199 Supervised Independent Study 1 - 4 Units

Terms offered: Fall 2021, Spring 2020, Fall 2018 Supervised independent study. Enrollment restrictions apply. Supervised Independent Study: Read More [+]

Prerequisites: Consent of instructor and major adviser

Credit Restrictions: Enrollment is restricted; see the Introduction to Courses and Curricula section of this catalog.

Fall and/or spring: 15 weeks - 0 hours of independent study per week

Summer: 6 weeks - 1-5 hours of independent study per week 8 weeks - 1-4 hours of independent study per week

Additional Format: Individual conferences.

Supervised Independent Study: Read Less [-]

EL ENG 24 Freshman Seminar 1 Unit

Terms offered: Fall 2022, Fall 2021, Fall 2017 The Freshman Seminar Program has been designed to provide new students with the opportunity to explore an intellectual topic with a faculty member in a small seminar setting. Freshman seminars are offered in all campus departments, and topics may vary from department to department and semester to semester. Freshman Seminar: Read More [+]

Fall and/or spring: 15 weeks - 1 hour of seminar per week

Additional Format: One hour of Seminar per week for 15 weeks.

Subject/Course Level: Electrical Engineering/Undergraduate

Freshman Seminar: Read Less [-]

EL ENG 25 What Electrical Engineers Do--Feedback from Recent Graduates 1 Unit

Terms offered: Fall 2011 A Berkeley Electrical Engineering and Computer Sciences degree opens the door to many opportunities, but what exactly are they? Graduation is only a few years away and it's not too early to find out. In this seminar students will hear from practicing engineers who recently graduated. What are they working on? Are they working in a team? What do they wish they had learned better? How did they find their jobs? What Electrical Engineers Do--Feedback from Recent Graduates: Read More [+]

Fall and/or spring: 15 weeks - 1 hour of lecture per week

Additional Format: One hour of Lecture per week for 15 weeks.

Instructor: Boser

What Electrical Engineers Do--Feedback from Recent Graduates: Read Less [-]

EL ENG 39 Freshman/Sophomore Seminar 2 - 4 Units

Terms offered: Spring 2023, Fall 2022, Spring 2022 Freshman and sophomore seminars offer lower division students the opportunity to explore an intellectual topic with a faculty member and a group of peers in a small-seminar setting. These seminars are offered in all campus departments; topics vary from department to department and from semester to semester. Enrollment limits are set by the faculty, but the suggested limit is 25. Freshman/Sophomore Seminar: Read More [+]

Fall and/or spring: 15 weeks - 2-4 hours of seminar per week

Additional Format: Two to four hours of seminar per week.

EL ENG 42 Introduction to Digital Electronics 3 Units

Terms offered: Fall 2013, Summer 2013 8 Week Session, Spring 2013 This course serves as an introduction to the principles of electrical engineering, starting from the basic concepts of voltage and current and circuit elements of resistors, capacitors, and inductors. Circuit analysis is taught using Kirchhoff's voltage and current laws with Thevenin and Norton equivalents. Operational amplifiers with feedback are introduced as basic building blocks for amplication and filtering. Semiconductor devices including diodes and MOSFETS and their IV characteristics are covered. Applications of diodes for rectification, and design of MOSFETs in common source amplifiers are taught. Digital logic gates and design using CMOS as well as simple flip-flops are introduced. Speed and scaling issues for CMOS are considered. The course includes as motivating examples designs of high level applications including logic circuits, amplifiers, power supplies, and communication links. Introduction to Digital Electronics: Read More [+]

Prerequisites: Mathematics 1B

Credit Restrictions: Students will receive no credit for 42 after taking 40 or 100.

Additional Format: Three hours of Lecture and One hour of Discussion per week for 15 weeks. Six hours of Lecture and Two hours of Discussion per week for 8 weeks.

Introduction to Digital Electronics: Read Less [-]

EL ENG 49 Electronics for the Internet of Things 4 Units

Terms offered: Spring 2020, Spring 2019, Fall 2018 Electronics has become pervasive in our lives as a powerful technology with applications in a wide range of fields including healthcare, environmental monitoring, robotics, or entertainment. This course teaches how to build electronic circuits that interact with the environment through sensors and actuators and how to communicate wirelessly with the internet to cooperate with other devices and with humans. In the laboratory students design and build representative samples such as solar harvesters, robots, that exchange information with or are controlled from the cloud. Electronics for the Internet of Things: Read More [+]

Course Objectives: Electronics has become a powerful and ubiquitous technology supporting solutions to a wide range of applications in fields ranging from science, engineering, healthcare, environmental monitoring, transportation, to entertainment. The objective of this course is to teach students majoring in these and related subjects how to use electronic devices to solve problems in their areas of expertise. Through the lecture and laboratory, students gain insight into the possibilities and limitations of the technology and how to use electronics to help solve problems. Students learn to use electronics to interact with the environment through sound, light, temperature, motion using sensors and actuators, and how to use electronic computation to orchestrate the interactions and exchange information wirelessly over the internet.

Student Learning Outcomes: Deploy electronic sensors and interface them to microcontrollers through digital and analog channels as well as common protocols (I2C, SPI), Design, build and test electronic devices leveraging these concepts. Interact with the internet and cloud services using protocols such as http, MQTT, Blynk, Interface DC motors, steppers and servos to microcontrollers, Represent information with voltage, current, power, and energy and how to measure these quantities with laboratory equipment, To use and program low-cost and low-power microcontrollers for sensing, actuation, and information processing, and find and use program libraries supporting these tasks Understand and make basic low-pass and high-pass filters, Wheatstone bridge etc. Use electronics to sense and actuate physical parameters such as temperature, humidity, sound, light, and motion,

Prerequisites: ENGIN 7 , COMPSCI 10 , or equivalent background in computer programming (including COMPSCI 61A or COMPSCI C8 / INFO C8 / STAT C8 ); MATH 1A or equivalent background in Calculus

Additional Format: Three hours of lecture and three hours of laboratory and two hours of discussion per week.

Electronics for the Internet of Things: Read Less [-]

EL ENG 84 Sophomore Seminar 1 or 2 Units

Terms offered: Fall 2022, Spring 2022, Fall 2021 Sophomore seminars are small interactive courses offered by faculty members in departments all across the campus. Sophomore seminars offer opportunity for close, regular intellectual contact between faculty members and students in the crucial second year. The topics vary from department to department and semester to semester. Enrollment limited to 15 sophomores. Sophomore Seminar: Read More [+]

Summer: 6 weeks - 2.5-5 hours of seminar per week 8 weeks - 1.5-3.5 hours of seminar per week

Additional Format: unit(s):one hour of seminar per week; 2 unit(s):two hours of seminar per week. unit(s):one and one-half hours of seminar per week; 2 unit(s):three hours of seminar per week for 10 weeks. unit(s):one and one-half hours of seminar per week; 2 unit(s):three and one-half hours of seminar per week for 8 weeks. unit(s):two and one-half hours of seminar per week; 2 unit(s):five hours of seminar per week for 6 weeks. unit(s):three hours of seminar per week; 2 unit(s):six hours of seminar per week for five weeks.

EL ENG 97 Field Study 1 - 4 Units

Terms offered: Spring 2016, Fall 2015, Spring 2015 Students take part in organized individual field sponsored programs with off-campus companies or tutoring/mentoring relevant to specific aspects and applications of computer science on or off campus. Note Summer CPT or OPT students: written report required. Course does not count toward major requirements, but will be counted in the cumulative units toward graduation. Field Study: Read More [+]

EL ENG 98 Directed Group Study for Undergraduates 1 - 4 Units

Terms offered: Fall 2021, Fall 2020, Fall 2016 Group study of selected topics in electrical engineering, usually relating to new developments. Directed Group Study for Undergraduates: Read More [+]

Additional Format: Course format varies.

Directed Group Study for Undergraduates: Read Less [-]

EL ENG 99 Individual Study and Research for Undergraduates 1 - 4 Units

Terms offered: Spring 2016, Fall 2015, Spring 2015 Supervised independent study and research for students with fewer than 60 units completed. Individual Study and Research for Undergraduates: Read More [+]

Prerequisites: Freshman or sophomore standing and consent of instructor. Minimum GPA of 3.4 required

Additional Format: One to four hours of independent study per week. One to four hours of independent study per week for 8 weeks. One to five hours of independent study per week for 6 weeks.

Individual Study and Research for Undergraduates: Read Less [-]

EL ENG 105 Microelectronic Devices and Circuits 4 Units

Terms offered: Fall 2024, Spring 2024, Fall 2023 This course covers the fundamental circuit and device concepts needed to understand analog integrated circuits. After an overview of the basic properties of semiconductors, the p-n junction and MOS capacitors are described and the MOSFET is modeled as a large-signal device. Two port small-signal amplifiers and their realization using single stage and multistage CMOS building blocks are discussed. Sinusoidal steady-state signals are introduced and the techniques of phasor analysis are developed, including impedance and the magnitude and phase response of linear circuits. The frequency responses of single and multi-stage amplifiers are analyzed. Differential amplifiers are introduced. Microelectronic Devices and Circuits: Read More [+]

Credit Restrictions: Students will receive no credit for EL ENG 105 after completing EL ENG 240A , or EL ENG 140 .

Additional Format: Three hours of Lecture, One hour of Discussion, and Three hours of Laboratory per week for 15 weeks.

Microelectronic Devices and Circuits: Read Less [-]

EL ENG C106A Introduction to Robotics 4 Units

Terms offered: Fall 2017, Fall 2016, Fall 2015 An introduction to the kinematics, dynamics, and control of robot manipulators, robotic vision, and sensing. The course covers forward and inverse kinematics of serial chain manipulators, the manipulator Jacobian, force relations, dynamics, and control. It presents elementary principles on proximity, tactile, and force sensing, vision sensors, camera calibration, stereo construction, and motion detection. The course concludes with current applications of robotics in active perception, medical robotics, and other areas. Introduction to Robotics: Read More [+]

Prerequisites: EL ENG 120 or consent of instructor

Instructor: Bajcsy

Formerly known as: Electrical Engineering C125/Bioengineering C125

Also listed as: BIO ENG C125

EL ENG C106B Robotic Manipulation and Interaction 4 Units

Terms offered: Spring 2017, Spring 2016 This course is a sequel to Electrical Engineering C106A/Bioengineering C125, which covers kinematics, dynamics and control of a single robot. This course will cover dynamics and control of groups of robotic manipulators coordinating with each other and interacting with the environment. Concepts will include an introduction to grasping and the constrained manipulation, contacts and force control for interaction with the environment. We will also cover active perception guided manipulation, as well as the manipulation of non-rigid objects. Throughout, we will emphasize design and human-robot interactions, and applications to applications in manufacturing, service robotics, tele-surgery, and locomotion. Robotic Manipulation and Interaction: Read More [+]

Prerequisites: EECS C106A / BIO ENG C125 or consent of the instructor

Additional Format: Three hours of lecture and three hours of laboratory and one hour of discussion per week.

Instructors: Bajcsy, Sastry

Also listed as: BIO ENG C125B

EL ENG 108 Introduction to Electric Power and Renewable Energy 4 Units

Terms offered: Spring 2024 This course is designed to provide an introduction to electric power conversion, distribution, and generation with renewable energy sources. The course will introduce fundamental concepts in the area of electric power, such as complex and reactive power, phasors, impedance, magnetic circuits and transformers, power factor, power quality, three-phase power, ac-dc conversion, and a conceptual overview of renewable energy and the integration of sustainable energy sources on the electric grid.Real world applications, ranging from ground-fault circuit interrupters to residential power distribution and solar photovoltaic dc-ac inverters will be explored in live lecture demonstration. Introduction to Electric Power and Renewable Energy: Read More [+]

Prerequisites: Differential equations and linear algebra (Math 54 or equivalent). Electricity and magnetism (Physics 7B or equivalent). Introduction to electric circuits (EE 16AB or equivalent). Students should enter the course with a basic working knowledge of RLC circuits

Instructor: Pilawa

Introduction to Electric Power and Renewable Energy: Read Less [-]

EL ENG 113 Power Electronics 4 Units

Terms offered: Fall 2024, Fall 2023, Fall 2022 Power conversion circuits and techniques. Characterization and design of magnetic devices including transformers, reactors, and electromagnetic machinery. Characteristics of bipolar and MOS power semiconductor devices. Applications to motor control, switching power supplies, lighting, power systems, and other areas as appropriate. Power Electronics: Read More [+]

Prerequisites: EL ENG 105 or background in circuit analysis (KVL, KCL, voltage/current relationships, etc.)

Instructors: Pilawa, Boles

Power Electronics: Read Less [-]

EL ENG 113B Power Electronics Design 4 Units

Terms offered: Spring 2024 This course is the second in a two-semester series to equip students with the skills needed to analyze, design, and prototype power electronic converters. While EE 113/213A provides an overview of power electronics fundamentals and applications, EE 113B/213B focuses on the practical design and hardware implementation of power converters. The primary focus of EE 113B/213B is time in the laboratory, with sequential modules on topics such as power electronic components, PCB layout, closed-loop control, and experimental validation. At the end of the course, students will have designed, prototyped, and validated a power converter from scratch, demonstrating a skill set that is critical for power electronics engineers in research and industry. Power Electronics Design: Read More [+]

Fall and/or spring: 15 weeks - 1.5 hours of lecture and 6 hours of laboratory per week

Additional Format: One and one-half hours of lecture and six hours of laboratory per week.

Instructor: Boles

Power Electronics Design: Read Less [-]

EL ENG 117 Electromagnetic Fields and Waves 4 Units

Terms offered: Spring 2024, Spring 2023, Spring 2022 Review of static electric and magnetic fields and applications; Maxwell's equations; transmission lines; propagation and reflection of plane waves; introduction to guided waves, microwave networks, and radiation and antennas. Minilabs on statics, transmission lines, and waves. Explanation of cellphone antennas, WiFi communication, and other wireless technologies. Electromagnetic Fields and Waves: Read More [+]

Prerequisites: EECS 16B , MATH 53 , and MATH 54 ; PHYSICS 7B or equivalent that covers AC circuits and electromagnetics up to Maxwell's equations

Additional Format: Three hours of lecture and one hour of discussion and two hours of laboratory per week.

Instructor: Yablonovitch

Electromagnetic Fields and Waves: Read Less [-]

EL ENG 118 Introduction to Optical Engineering 4 Units

Terms offered: Fall 2024, Fall 2023, Fall 2022 Fundamental principles of optical systems. Geometrical optics and aberration theory. Stops and apertures, prisms, and mirrors. Diffraction and interference. Optical materials and coatings. Radiometry and photometry. Basic optical devices and the human eye. The design of optical systems. Lasers, fiber optics, and holography. Introduction to Optical Engineering: Read More [+]

Prerequisites: MATH 53 ; EECS 16A and EECS 16B , or MATH 54

Credit Restrictions: Students will receive no credit for Electrical Engineering 118 after taking Electrical Engineering 218A. A deficient grade in Electrical Engineering 119 may be removed by taking Electrical Engineering 118.

Instructors: Waller, Kante

Introduction to Optical Engineering: Read Less [-]

EL ENG 120 Signals and Systems 4 Units

Terms offered: Fall 2024, Spring 2024, Fall 2023 Continuous and discrete-time transform analysis techniques with illustrative applications. Linear and time-invariant systems, transfer functions. Fourier series, Fourier transform, Laplace and Z-transforms. Sampling and reconstruction. Solution of differential and difference equations using transforms. Frequency response, Bode plots, stability analysis. Illustrated by analysis of communication systems and feedback control systems. Signals and Systems: Read More [+]

Fall and/or spring: 15 weeks - 4 hours of lecture and 1 hour of recitation per week

Additional Format: Four hours of Lecture and One hour of Recitation per week for 15 weeks.

Signals and Systems: Read Less [-]

EL ENG 121 Introduction to Digital Communication Systems 4 Units

Terms offered: Spring 2016, Fall 2014, Fall 2013 Introduction to the basic principles of the design and analysis of modern digital communication systems. Topics include source coding, channel coding, baseband and passband modulation techniques, receiver design, and channel equalization. Applications to design of digital telephone modems, compact disks, and digital wireless communication systems. Concepts illustrated by a sequence of MATLAB exercises. Introduction to Digital Communication Systems: Read More [+]

Prerequisites: EECS 16A , EECS 16B , and COMPSCI 70

Introduction to Digital Communication Systems: Read Less [-]

EL ENG 122 Introduction to Communication Networks 4 Units

Terms offered: Spring 2024, Spring 2023, Spring 2022 This course focuses on the fundamentals of the wired and wireless communication networks. The course covers both the architectural principles for making these networks scalable and robust, as well as the key techniques essential for analyzing and designing them. The topics include graph theory, Markov chains, queuing, optimization techniques, the physical and link layers, switching, transport, cellular networks and Wi-Fi. Introduction to Communication Networks: Read More [+]

Introduction to Communication Networks: Read Less [-]

EL ENG 123 Digital Signal Processing 4 Units

Terms offered: Spring 2024, Spring 2023, Spring 2022 Discrete time signals and systems: Fourier and Z transforms, DFT, 2-dimensional versions. Digital signal processing topics: flow graphs, realizations, FFT, chirp-Z algorithms, Hilbert transform relations, quantization effects, linear prediction. Digital filter design methods: windowing, frequency sampling, S-to-Z methods, frequency-transformation methods, optimization methods, 2-dimensional filter design. Digital Signal Processing: Read More [+]

Prerequisites: EL ENG 120

Fall and/or spring: 15 weeks - 3 hours of lecture, 1 hour of discussion, and 1 hour of laboratory per week

Additional Format: Three hours of Lecture, One hour of Discussion, and One hour of Laboratory per week for 15 weeks.

Digital Signal Processing: Read Less [-]

EL ENG 126 Probability and Random Processes 4 Units

Terms offered: Spring 2017, Fall 2016, Spring 2016 This course covers the fundamentals of probability and random processes useful in fields such as networks, communication, signal processing, and control. Sample space, events, probability law. Conditional probability. Independence. Random variables. Distribution, density functions. Random vectors. Law of large numbers. Central limit theorem. Estimation and detection. Markov chains. Probability and Random Processes: Read More [+]

EL ENG C128 Feedback Control Systems 4 Units

Terms offered: Spring 2024, Spring 2023, Spring 2022 Analysis and synthesis of linear feedback control systems in transform and time domains. Control system design by root locus, frequency response, and state space methods. Applications to electro-mechanical and mechatronics systems. Feedback Control Systems: Read More [+]

Prerequisites: EECS 16A or MEC ENG 100 ; MEC ENG 132 or EL ENG 120

Also listed as: MEC ENG C134

Feedback Control Systems: Read Less [-]

EL ENG 130 Integrated-Circuit Devices 4 Units

Terms offered: Fall 2024, Spring 2024, Fall 2023 Overview of electronic properties of semiconductor. Metal-semiconductor contacts, pn junctions, bipolar transistors, and MOS field-effect transistors. Properties that are significant to device operation for integrated circuits. Silicon device fabrication technology. Integrated-Circuit Devices: Read More [+]

Credit Restrictions: Students will receive no credit for El Eng 130 after taking El Eng 230A.

Integrated-Circuit Devices: Read Less [-]

EL ENG 134 Fundamentals of Photovoltaic Devices 4 Units

Terms offered: Spring 2024, Spring 2023, Spring 2022 This course is designed to give an introduction to, and overview of, the fundamentals of photovoltaic devices. Students will learn how solar cells work, understand the concepts and models of solar cell device physics, and formulate and solve relevant physical problems related to photovoltaic devices. Monocrystalline, thin film and third generation solar cells will be discussed and analyzed. Light management and economic considerations in a solar cell system will also be covered. Fundamentals of Photovoltaic Devices: Read More [+]

Prerequisites: EECS 16A and EECS 16B ; or Math 54 and Physics 7B; or equivalent

Instructor: Arias

Fundamentals of Photovoltaic Devices: Read Less [-]

EL ENG 137A Introduction to Electric Power Systems 4 Units

Terms offered: Fall 2024, Fall 2023, Fall 2022 Overview of conventional electric power conversion and delivery, emphasizing a systemic understanding of the electric grid with primary focus at the transmission level, aimed toward recognizing needs and opportunities for technological innovation. Topics include aspects of a.c. system design, electric generators, components of transmission and distribution systems, power flow analysis, system planning and operation, performance measures, and limitations of legacy technologies. Introduction to Electric Power Systems: Read More [+]

Prerequisites: Physics 7B; EECS 16A and EECS 16B , or consent of instructor

Instructor: von Meier

Introduction to Electric Power Systems: Read Less [-]

EL ENG 137B Introduction to Electric Power Systems 4 Units

Terms offered: Spring 2023, Spring 2022, Spring 2021 Overview of recent and potential future evolution of electric power systems with focus on new and emerging technologies for power conversion and delivery, primarily at the distribution level. Topics include power electronics applications, solar and wind generation, distribution system design and operation, electric energy storage, information management and communications, demand response, and microgrids. Introduction to Electric Power Systems: Read More [+]

Prerequisites: EL ENG 137A or consent of instructor

EL ENG 140 Linear Integrated Circuits 4 Units

Terms offered: Fall 2024, Spring 2024, Fall 2023 Single and multiple stage transistor amplifiers. Operational amplifiers. Feedback amplifiers, 2-port formulation, source, load, and feedback network loading. Frequency response of cascaded amplifiers, gain-bandwidth exchange, compensation, dominant pole techniques, root locus. Supply and temperature independent biasing and references. Selected applications of analog circuits such as analog-to-digital converters, switched capacitor filters, and comparators. Hardware laboratory and design project. Linear Integrated Circuits: Read More [+]

Prerequisites: EL ENG 105

Credit Restrictions: Students will receive no credit for El Eng 140 after taking El Eng 240A.

Instructors: Alon, Sanders

Linear Integrated Circuits: Read Less [-]

EL ENG 142 Integrated Circuits for Communications 4 Units

Terms offered: Spring 2024, Fall 2023, Spring 2023 Analysis and design of electronic circuits for communication systems, with an emphasis on integrated circuits for wireless communication systems. Analysis of noise and distortion in amplifiers with application to radio receiver design. Power amplifier design with application to wireless radio transmitters. Radio-frequency mixers, oscillators, phase-locked loops, modulators, and demodulators. Integrated Circuits for Communications: Read More [+]

Prerequisites: EECS 16A , EECS 16B , and EL ENG 105

Credit Restrictions: Students will receive no credit for El Eng 142 after taking El Eng 242A.

Integrated Circuits for Communications: Read Less [-]

EL ENG 143 Microfabrication Technology 4 Units

Terms offered: Fall 2024, Spring 2024, Fall 2023 Integrated circuit device fabrication and surface micromachining technology. Thermal oxidation, ion implantation, impurity diffusion, film deposition, expitaxy, lithography, etching, contacts and interconnections, and process integration issues. Device design and mask layout, relation between physical structure and electrical/mechanical performance. MOS transistors and poly-Si surface microstructures will be fabricated in the laboratory and evaluated. Microfabrication Technology: Read More [+]

Prerequisites: PHYSICS 7B

Additional Format: Three hours of Lecture and Three hours of Laboratory per week for 15 weeks.

Microfabrication Technology: Read Less [-]

EL ENG 144 Fundamental Algorithms for Systems Modeling, Analysis, and Optimization 4 Units

Terms offered: Fall 2015, Fall 2014, Fall 2013 The modeling, analysis, and optimization of complex systems requires a range of algorithms and design software. This course reviews the fundamental techniques underlying the design methodology for complex systems, using integrated circuit design as example. Topics include design flows, discrete and continuous models and algorithms, and strategies for implementing algorithms efficiently and correctly in software. Laboratory assignments and a class project will expose students to state-of-the-art tools. Fundamental Algorithms for Systems Modeling, Analysis, and Optimization: Read More [+]

Prerequisites: EECS 16A and COMPSCI 70 , or consent of instructor

Fall and/or spring: 15 weeks - 4 hours of lecture per week

Additional Format: Four hours of lecture per week.

Instructors: Keutzer, Lee, Roychowdhury, Seshia

Fundamental Algorithms for Systems Modeling, Analysis, and Optimization: Read Less [-]

EL ENG C145B Medical Imaging Signals and Systems 4 Units

Terms offered: Fall 2024, Fall 2023, Fall 2022 Biomedical imaging is a clinically important application of engineering, applied mathematics, physics, and medicine. In this course, we apply linear systems theory and basic physics to analyze X-ray imaging, computerized tomography, nuclear medicine, and MRI. We cover the basic physics and instrumentation that characterizes medical image as an ideal perfect-resolution image blurred by an impulse response. This material could prepare the student for a career in designing new medical imaging systems that reliably detect small tumors or infarcts. Medical Imaging Signals and Systems: Read More [+]

Prerequisites: Prerequisites are introductory level skills in Python/Matlab; and either EECS 16A , EECS 16B , and EL ENG 120 ; or MATH 54 , BIO ENG 105 , and BIO ENG 101

Instructor: Conolly

Also listed as: BIO ENG C165

Medical Imaging Signals and Systems: Read Less [-]

EL ENG C145L Introductory Electronic Transducers Laboratory 3 Units

Terms offered: Fall 2014, Fall 2013, Fall 2012 Laboratory exercises exploring a variety of electronic transducers for measuring physical quantities such as temperature, force, displacement, sound, light, ionic potential; the use of circuits for low-level differential amplification and analog signal processing; and the use of microcomputers for digital sampling and display. Lectures cover principles explored in the laboratory exercises; construction, response and signal to noise of electronic transducers and actuators; and design of circuits for sensing and controlling physical quantities. Introductory Electronic Transducers Laboratory: Read More [+]

Fall and/or spring: 15 weeks - 2 hours of lecture and 3 hours of laboratory per week

Additional Format: Two hours of Lecture and Three hours of Laboratory per week for 15 weeks.

Instructor: Derenzo

Also listed as: BIO ENG C145L

Introductory Electronic Transducers Laboratory: Read Less [-]

EL ENG C145M Introductory Microcomputer Interfacing Laboratory 3 Units

Terms offered: Spring 2013, Spring 2012, Spring 2011 Laboratory exercises constructing basic interfacing circuits and writing 20-100 line C programs for data acquisition, storage, analysis, display, and control. Use of the IBM PC with microprogrammable digital counter/timer, parallel I/O port. Circuit components include anti-aliasing filters, the S/H amplifier, A/D and D/A converters. Exercises include effects of aliasing in periodic sampling, fast Fourier transforms of basic waveforms, the use of the Hanning filter for leakage reduction, Fourier analysis of the human voice, digital filters, and control using Fourier deconvolution. Lectures cover principles explored in the lab exercises and design of microcomputer-based systems for data acquisitions, analysis and control. Introductory Microcomputer Interfacing Laboratory: Read More [+]

Prerequisites: EE 16A & 16B

Also listed as: BIO ENG C145M

Introductory Microcomputer Interfacing Laboratory: Read Less [-]

EL ENG C145O Laboratory in the Mechanics of Organisms 3 Units

Terms offered: Spring 2015, Spring 2014, Spring 2013, Spring 2012 Introduction to laboratory and field study of the biomechanics of animals and plants using fundamental biomechanical techniques and equipment. Course has a series of rotations involving students in experiments demonstrating how solid and fluid mechanics can be used to discover the way in which diverse organisms move and interact with their physical environment. The laboratories emphasize sampling methodology, experimental design , and statistical interpretation of results. Latter third of course devoted to independent research projects. Written reports and class presentation of project results are required. Laboratory in the Mechanics of Organisms: Read More [+]

Prerequisites: INTEGBI 135 or consent of instructor. For Electrical Engineering and Computer Sciences students: EL ENG 105 , EL ENG 120 or COMPSCI 184

Credit Restrictions: Students will receive no credit for C135L after taking 135L.

Fall and/or spring: 15 weeks - 6 hours of laboratory, 1 hour of discussion, and 1 hour of fieldwork per week

Additional Format: Six hours of laboratory and one hour of discussion per week, plus one field trip.

Formerly known as: Integrative Biology 135L

Also listed as: BIO ENG C136L/INTEGBI C135L

Laboratory in the Mechanics of Organisms: Read Less [-]

EL ENG 146L Application Specific Integrated Circuits Laboratory 2 Units

Terms offered: Spring 2015 This is a lab course that covers the design of modern Application-Specific Integrated Circuits (ASICs). The labs lay the foundation of modern digital design by first setting-up the scripting and hardware description language base for specification of digital systems and interactions with tool flows. Software testing of digital designs is covered leading into a set of labs that cover the design flow. Digital synthesis, floorplanning, placement and routing are covered , as well as tools to evaluate design timing and power. Chip-level assembly is covered, instantiation of custom IP blocks: I/O pads, memories, PLLs, etc. The labs culminate with a project design – implementation of a 3-stage RISC-V processor with register file and caches. Application Specific Integrated Circuits Laboratory: Read More [+]

Course Objectives: This course is a one-time offering to supplement the CS150 course offered in the Fall 2014, with a lab and project section that cover the Application-Specific Integrated Circuit Design. The CS150 lectures in the Fall 2014 already covered the necessary lecture material, so students who took the CS150 lab in the Fall of 2014 will have a chance to expand their skills into the area of Application-Specific Integrated Circuit design. Hence the pre-requisite for this course is that a student has taken the CS150 course in the Fall 2014.

Prerequisites: EECS 16B ; EL ENG 105 recommended

Credit Restrictions: Students will receive no credit for Electrical Engineering 146L after taking Fall 2014 version of Electrical Engineering 141/241A.

Fall and/or spring: 15 weeks - 3 hours of laboratory and 1 hour of discussion per week

Additional Format: Three hours of laboratory and one hour of discussion per week.

Instructor: Stojanovic

EL ENG 147 Introduction to Microelectromechanical Systems (MEMS) 3 Units

Terms offered: Fall 2024, Fall 2023, Fall 2022 This course will teach fundamentals of micromachining and microfabrication techniques, including planar thin-film process technologies, photolithographic techniques, deposition and etching techniques, and the other technologies that are central to MEMS fabrication. It will pay special attention to teaching of fundamentals necessary for the design and analysis of devices and systems in mechanical, electrical, fluidic, and thermal energy/signal domains , and will teach basic techniques for multi-domain analysis. Fundamentals of sensing and transduction mechanisms including capacitive and piezoresistive techniques, and design and analysis of micmicromachined miniature sensors and actuators using these techniques will be covered. Introduction to Microelectromechanical Systems (MEMS): Read More [+]

Credit Restrictions: Students will receive no credit for El Eng 147 after taking El Eng 247A.

Instructors: Maharbiz, Nguyen, Pister

Introduction to Microelectromechanical Systems (MEMS): Read Less [-]

EL ENG 192 Mechatronic Design Laboratory 4 Units

Terms offered: Spring 2021, Spring 2020, Spring 2019 Design project course, focusing on application of theoretical principles in electrical engineering to control of a small-scale system, such as a mobile robot. Small teams of students will design and construct a mechatronic system incorporating sensors, actuators, and intelligence. Mechatronic Design Laboratory: Read More [+]

Prerequisites: EECS 16A , EECS 16B , COMPSCI 61A , COMPSCI 61B , COMPSCI 61C , and EL ENG 120

Fall and/or spring: 15 weeks - 1.5 hours of lecture and 10 hours of laboratory per week

Additional Format: One and one-half hours of Lecture and Ten hours of Laboratory per week for 15 weeks.

Instructor: Fearing

Mechatronic Design Laboratory: Read Less [-]

EL ENG 194 Special Topics 1 - 4 Units

Terms offered: Fall 2024, Spring 2024, Fall 2023 Topics will vary semester to semester. See the Electrical Engineering announcements. Special Topics: Read More [+]

Additional Format: One to four hours of lecture per week.

EL ENG H196A Senior Honors Thesis Research 1 - 4 Units

Terms offered: Spring 2016, Fall 2015, Spring 2015 Thesis work under the supervision of a faculty member. A minimum of four units must be taken; the units may be distributed between one and two semesters in any way. To obtain credit a satisfactory thesis must be submitted at the end of the two semesters to the Electrical and Engineering and Computer Science Department archive. Students who complete four units and a thesis in one semester receive a letter grade at the end of H196A. Students who do not, receive an IP in H196A and must enroll in H196B. Senior Honors Thesis Research: Read More [+]

Prerequisites: Open only to students in the Electrical Engineering and Computer Science honors program

Grading/Final exam status: Letter grade. This is part one of a year long series course. A provisional grade of IP (in progress) will be applied and later replaced with the final grade after completing part two of the series. Final exam required.

EL ENG H196B Senior Honors Thesis Research 1 - 4 Units

Terms offered: Spring 2016, Spring 2015, Spring 2014 Thesis work under the supervision of a faculty member. A minimum of four units must be taken; the units may be distributed between one and two semesters in any way. To obtain credit a satisfactory thesis must be submitted at the end of the two semesters to the Electrical and Engineering and Computer Science Department archive. Students who complete four units and a thesis in one semester receive a letter grade at the end of H196A. Students who do not, receive an IP in H196A and must enroll in H196B. Senior Honors Thesis Research: Read More [+]

Grading/Final exam status: Letter grade. This is part two of a year long series course. Upon completion, the final grade will be applied to both parts of the series. Final exam required.

EL ENG 197 Field Study 1 - 4 Units

Terms offered: Fall 2023, Fall 2022, Fall 2021 Students take part in organized individual field sponsored programs with off-campus companies or tutoring/mentoring relevant to specific aspects and applications of computer science on or off campus. Note Summer CPT or OPT students: written report required. Course does not count toward major requirements, but will be counted in the cumulative units toward graduation. Field Study: Read More [+]

EL ENG 198 Directed Group Study for Advanced Undergraduates 1 - 4 Units

Terms offered: Spring 2024, Fall 2023, Spring 2023 Group study of selected topics in electrical engineering, usually relating to new developments. Directed Group Study for Advanced Undergraduates: Read More [+]

Additional Format: To vary with section.

Directed Group Study for Advanced Undergraduates: Read Less [-]

EL ENG 199 Supervised Independent Study 1 - 4 Units

Terms offered: Summer 2024 10 Week Session, Spring 2023, Fall 2018 Supervised independent study. Enrollment restrictions apply. Supervised Independent Study: Read More [+]

Contact Information

Department of electrical engineering and computer science.

253 Cory Hall

Phone: 510-664-4436

College of Computing, Data Science and Society

https://cdss.berkeley.edu/

College of Engineering

Phone: 510-642-3214

Fax: 510-643-7846

http://www.eecs.berkeley.edu/

Department Chair

Claire Tomlin, PhD

721 Sutardja Dai Hall

Phone: 510-643-6610

[email protected]

EECS Associate Chair

574 Cory Hall

Phone: 510-642-6251

[email protected]

Executive Director, Center for Student Affairs

Susanne Kauer

221 Cory Hall

Phone: 510-642-3694

[email protected]

Director of Undergraduate Affairs and Advising

Antoine Davis

377 Soda Hall

Phone: 510-642-7214

[email protected]

Director of Student Diversity

Audrey Sillers

Phone: 510-664-7181

[email protected]

CS Scholars Director

Charlene Duncan

349 Soda Hall

Phone: 510-642-2357

[email protected]

Assistant Director of Undergraduate Affairs and Advising

Cs scheduler.

Cindy Conners

Phone: 510-643-6002

[email protected]

Computer Science Advisor

Carol Marshall

Phone: 510-664-4600

Javier Garcia

Phone: 510-664-5230

Print Options

When you print this page, you are actually printing everything within the tabs on the page you are on: this may include all the Related Courses and Faculty, in addition to the Requirements or Overview. If you just want to print information on specific tabs, you're better off downloading a PDF of the page, opening it, and then selecting the pages you really want to print.

The PDF will include all information unique to this page.

  • Computer Science
  • Undergraduate Program

Introduction to the Major

The Computer Science major (CS) deals with computer theory, methods of information processing, hardware and software design, and applications. The major combines a rigorous technical program with background in the liberal arts and sciences. The CS major prepares students for technical careers or graduate school programs related to EECS or CS. 

All students admitted to the College of Letters & Science are admitted as undeclared students. To declare CS, students must achieve a cumulative grade point average of 3.30 in CS61A, CS61B, & CS70. All students who meet this criteria are admitted into the major.

One Department, Two Programs 

There is no difference in the CS course content between the CS and EECS majors--the differences are what other subjects you'd like to study and the admissions processes to the university and majors.

If you prefer greater flexibility in your coursework, or have an interest double-majoring in an area outside engineering, the CS major might be a good choice. There is greater opportunity to explore other departments, like economics, business, and music.

If you have a great interest in electrical engineering or in double-majoring in another engineering major, the EECS major may be better suited for you.

Related Majors

There are many ways to get exposure to CS other than via the CS major. The following majors are avenues to study CS and to help prepare students for industry and graduate school: applied math, cognitive science, data science, & statistics.

The CS minor is also a great option that equips students for industry and graduate school.

CS isn’t something I could’ve done alone, so I’m grateful for the community here. Steven Tan, CS student and CS Peer Advisor
  • Four-Year Student Timeline

Explore Your Major

  • See CS requirements & declaration policies
  • Take CS10 and/or CS8 before CS61A, if no coding experience.
  • See math requirements & AP/IB policies . Find calculus starting point .
  • Check in with a CS major advisor .

Connect and Build Community

  • New to CS? Apply for the CS Scholars Program
  • Get support in classes from resources and counselors
  • Become familiar with Disabled Students’ Program , Gender Equity Resource Center , Undocumented Student Program , Educational Opportunity Program .

Discover Your Passions

  • Enroll in a Freshman & Sophomore Seminar . Look for CS/EE 24 & 39.
  • Visit the Office of Undergraduate Research and Scholarships to learn about research opportunities. 
  • Take a  DeCal , a student-facilitated course.

Engage Locally and Globally

  • Explore study abroad options now so you can incorporate them into your sophomore or junior year plans.
  • Explore volunteer opportunities on campus.

Reflect and Plan Your Future

  • Develop a plan for getting career ready.
  • Join Handshake for Berkeley-specific career opportunities.
  • Learn about career opportunities in CS at  Berkeley Career Engagement .
  • Look for internship programs at various companies specific to first-year students.

Second Year

  • Complete the CS prerequisite coursework to declare your major. Recommended: Apply to CS by the end of your 2nd year.
  • Use the EECS website to help guide your B.A. program, and the HKN course guide to think about future classes in CS/EE.
  • Consider a minor .
  • Learn about EECS student organizations
  • Consider becoming an Academic Intern, Reader, or Tutor for a lower-division CS/EE class.
  • Seek CS Peer Advising and ask questions on the EECS 101 on Edstem
  • Go to office hours of professors and GSIs.
  • Assist a professor in their research through the Undergraduate Research Apprenticeship Program
  • Attend the EECS Department Colloquium Series to learn more about the field.
  • Learn more about research opportunities available at UC Berkeley.
  • Explore study abroad options for CS and meet with both a CS major advisor and your L&S advisor to confirm requirement fulfillment.
  • Join Bridging Berkeley to become a math mentor to middle schoolers.
  • Subscribe to the eecs-ugrad-jobs list-serv to learn about CS Info-sessions and Tech Talks
  • Attend the EECS Internship Fair , EECS & STEM Career Fairs
  • Meet with Berkeley Career Engagement or UPE for resume help and interview practice.
  • Complete CS lower-division requirements ; begin taking upper-division courses
  • Check-in with a CS major advisor
  • Participate in faculty advising each semester once declared.
  • If eligible and interested in research, consider the  EECS Honors Program .
  • Enjoy teaching and/or mentoring? Become an EE/CS DeCal facilitator or CS Mentor . Learn about how to become an Undergraduate Student Instructor in future semesters.
  • Consider applying to the Accel Scholars Program .
  • Explore Beehive and other EECS research opportunities for undergraduates.
  • Learn about upper-division technical electives for your major outside CS.
  • Join CalTeach to gain teaching skills and explore a career in education.
  • Interested in community outreach? Check out the opportunities available in community outreach programs for engineering students.
  • Get matched with a graduate student mentor through Berkeley Connect .
  • Attend the Engineering and Tech Career Conference to prepare for recruiting season.
  • Utilize job board tools in your job search.
  • Explore graduate school options by speaking with faculty members and advisors .

Fourth Year

  • Complete remaining CS upper-division requirements
  • Consider getting faculty permission to take CS graduate courses.
  • Meet with a CS advisor to ensure CS requirements will be completed.
  • Check-in with an L&S advisor to stay on track to graduate.
  • Give back by becoming a CS peer advisor or tutor at the Student Learning Center .
  • Volunteer for EECS Departmental events like CS Education Day and Cal Day .
  • See ways to stay in touch with the EECS Department after you graduate.
  • Carry out your own research project funded by scholarships
  • Attend events at the Sutardja Center for Entrepreneurship & Technology or the Jacobs Institute for Design and Innovation .
  • Consider researching and applying for scholarships available to recent Berkeley graduates.
  • If interested in graduate school, explore gap year opportunities prior to embarking on your next academic or career adventure.
  • Continue to attend industry-related events.
  • Take the GRE & seek letters of recommendation if interested in graduate school.
  • View the First Destination Survey to find out what recent grads are doing.

What Can I Do With My Major?

Jobs and employers.

  • Analyst, Axioma
  • Application Developer, Workday
  • ASIC Engineer, Nvidia
  • Assoc. Publishing Producer, Google
  • Care Coordinator, YoDerm
  • Consultant, Bain and Company
  • Cyber Security Consultant, Deloitte
  • Data Analyst, Apple
  • Data Scientist, Nerdwallet
  • Front End Developer, HealthTap
  • Hardware Engineer, Apple
  • Infrastructure Engineer, Capital One
  • Investment Engineer, Bridgewater
  • iOS Engineer, Mozilla
  • Machine Learning Engineer, eBay
  • Mobile Developer, Sony
  • Performance Engineer, Splunk
  • Program Manager, Microsoft
  • Programmer, Intl CS Institute
  • R&D Engineer, Glint Photonics
  • Site Reliability Engineer, Google
  • Software Developer, Expedia
  • Software Engineer, AirBnB
  • Surface Warfare Officer, U.S. Navy
  • Systems Specialist, Salesforce
  • Teacher, Teach for India
  • Technology Analyst, Goldman Sachs
  • UX Designer, GoDaddy

Graduate Programs

  • Algebra & Numbers Theory
  • Artificial Intelligence & Robotics
  • Audiology & Hearing Sciences
  • Biological Sciences
  • Biostatistics
  • Computational Mathematics
  • Computer Engineering
  • Computer Graphics
  • Electrical Engineering
  • Industrial & Org. Psychology
  • Interdisciplinary Studies
  • Physical Chemistry

Examples from the First Destination Survey of recent Berkeley graduates.

Connect With Us

Come to Berkeley’s annual Open House in April for information sessions, campus tours, special talks, and more. See what events the EECS Department offers at eecs.berkeley.edu/academics/undergraduate/calday .

Golden Bear Orientation

Join your peers in the campus-wide UC Berkeley orientation program for all new students.

Attend department events with students, staff, and faculty. Visit eecs.berkeley.edu for news and updates.

Prospective students can make an appointment to meet with a CS advisor at berkeleycs.youcanbook.me . Current students should make a CS advising appointment through CalCentral.

Drop-in CS advising is available. Please check eecs.berkeley.edu/resources/undergrads/cs/advising   for the latest schedule.

Letters & Science College advising services can be found at lsadvising.berkeley.edu

How to Use this Map

Use this map to help plan and guide your experience at UC Berkeley, including academic, co-curricular, and discovery opportunities. Everyone’s Berkeley experience is different and activities in this map are suggestions. Always consult with your advisors whenever possible for new opportunities and updates.

  • What Can I Do with My Major?

Link to download the Computer Science major map print version

Download the PDF Print Version

Computer Science (College of Engineering)

Computer scientists are experts in computation – both in terms of the theory of computation and its innumerable practical applications. A computer scientist understands how to design and analyze algorithms, how to store and retrieve information, how computers function, and how to develop software systems that solve complex problems. Specialists within computer science might have expertise in developing software applications, in designing computer hardware, or in analyzing algorithms, and in many other current and emerging specializations.

does computer science have coursework

The Computer Science Major available through the College of Engineering will prepare you for a world of incredible opportunities. Our world-class faculty will challenge you to deepen your intellectual curiosity, and our curriculum will allow you to tailor your computing studies to your specific areas of interest. Along the way, you will develop both algorithmic fundamentals and a framework for understanding that will enable you to keep pace with the ever-changing world of computer science.

CS-Eng program information

The computer science program requires students to have a solid foundation in computer software, hardware, and theory, but also gives each student ample opportunity to take advanced electives in areas of computer science such as databases, architecture, networks, artificial intelligence, and graphics, or in emerging interdisciplinary areas such as electronic commerce, web information systems, and computer game design.

Open to students enrolled in the College of Engineering, this program is administered by the CSE Division of the EECS Department.

Enrollment and graduation data

CS-Eng program guide

C S-Eng Program Guide : FA23-WN24

CS-Eng Program Guide: FA24-WN25

What’s the difference between CS-Eng and CS-LSA?

The department offers two program paths to a degree in computer science. One is available to students enrolled in the College of LSA and the other is for students enrolled in the College of Engineering. The program requirements are almost exactly the same for both majors, but if you’d like to know the differences you can find out here .

Declaring in CS-Eng

Declaration requirements are listed in the CS-Eng program guide. If you meet ALL of these requirements and are ready to declare, please fill out our declaration request form . A staff member will check your eligibility and let you know the outcome. For more detailed questions about the major, students can schedule an advising appointment or come to virtual drop-in advising. In addition, please watch this video prior to declaring.

Due to capacity constraints, students who are admitted to the University of Michigan in Fall 2023 or later must first be selected for the CS major before they can declare the major.

Course descriptions information

EECS Course List (links to Michigan Engineering Bulletin)

Special Topics Courses for the Current Term

Student outcomes

Graduates of the CS-Engineering program will have an ability to:

  • Analyze a complex computing problem and to apply principles of computing and other relevant disciplines to identify solutions.
  • Design, implement, and evaluate a computing-based solution to meet a given set of computing requirements in the context of the program’s discipline.
  • Communicate effectively in a variety of professional contexts.
  • Recognize professional responsibilities and make informed judgments in computing practice based on legal and ethical principles.
  • Function effectively as a member or leader of a team engaged in activities appropriate to the program’s discipline.
  • Apply computer science theory and software development fundamentals to produce computing-based solutions.

The CS-Engineering Program Objectives for our graduates are:

  • Use their understanding of algorithms, computers, and programming to solve complex problems.
  • Adapt to the rapidly changing scientific and technological landscape, recognize the implications of their work, and drive the development of future technologies.
  • Communicate effectively with their colleagues and the general public.
  • Contribute substantively, as leaders, to science, technology, and society.

Sequential Undergraduate/Graduate Study

Students who enroll in this program and plan to obtain a master’s degree could be eligible for the Sequential Undergraduate/Graduate Study (SUGS) program, which enables completion of both a bachelor’s degree and a master’s degree in five (to five and a half) years.  More information is here.  Questions about the program should be directed to  [email protected] .

2024-2025 Undergraduate Catalog Major in Computer Science, General Computer Science Sequence Degree offered: B.S.

Major requirements.

Minimum required credit hours: 83

  • IT 398 (6 credit hours)

Take 9 credit hours from the following

6 of the 9 hours must be from the following

Take 1 of the following

Take 2 courses (8 credit hours) from the following lab science courses.

  • Acceptable substitution for 3 hours of  IT 398 is 3 hours of   IT 391

Acceptable substitution for 6 hours of  IT 398 is 3 hours of IT 391 and 3 additional hours from IT 244 ,  IT 276 , IT 329 , IT 330 , IT 340 , IT 351 , IT 352 , IT 353 , IT 355 , IT 356 , IT 367 , IT 382 , IT 385 , IT 388  (if not used to satisfy other requirements)

Course Finder >

  • Information Technology Courses
  • All Courses

Graduation Requirements

These are general requirements for all students. Students may apply for and receive two bachelor's degrees at the same time. Refer to the Academic Policies and Practices section of the catalog for details.

  • 120 minimum total credit hours
  • A minimum of 40 of the 120 total hours must be senior college hours (200-300 level courses)
  • AMALI requirement (certain courses in General Education and/or major may fulfill the AMALI requirement)
  • IDEAS (Inclusion, Diversity, Equity, and Access in U.S. Society) requirement (certain courses in General Education and/or major may fulfill the IDEAS requirement)
  • Students completing a Bachelor of Science degree must complete a  B.S. - Science, Math, & Technology degree requirement  (beyond the General Education requirements) 
  • Students completing a Bachelor of Arts degree must complete a B.A. - foreign language degree requirement: LAN/FRE/GER/SPA/ITA/JPN/POR 115 (or equivalent) 
  • Some majors complete other types of degrees that do not include additional graduation requirements. For example, the Bachelor of Science in Education (B.S. in Ed.) or the Bachelor of Science in Nursing (B.S.N.). 

Specific Program Requirements

General education requirements.

There are three ways to complete general education requirements for Illinois State University. These three general education programs have different requirements and affect only certain types of students.

  • The first way is to complete Illinois State University's General Education Program (see below for details).
  • The second way is to complete the Illinois Transferable General Education Core Curriculum available through the Illinois Articulation Initiative (IAI) (see below for details).
  • The third way is to complete a baccalaureate-oriented Associates Degree (A.A. or A.S.) from a regionally accredited post-secondary institution. For those transferring from an Illinois college or university, the A.S. degree must include the complete IAI General Education Core Curriculum (GECC) or the student must complete the GECC to fulfill Illinois State’s General Education requirement.

Illinois State University's General Education Program

The complete General Education Program consists of 13 courses (39 semester hours). Because of laboratory or recitation requirements, some courses are listed as four or five credit hours in this catalog. All four or five hours will be credited toward graduation requirements, but only three hours will be credited in General Education for these courses. Depending on their major, students may be exempted from one General Education category (maximum of one course) because of disciplinary expertise gained in their major.

  • COM 110 Communication as Critical Inquiry (3 credit hours) - required for all students
  • ENG 101 or ENG 101A10 Composition as Critical Inquiry (3 credit hours) - required for all students
  • Mathematics (1 course required)
  • Natural Science/Natural Science Alternatives (2 courses required) Must complete 1 course from 2 different sciences.
  • United States Traditions (1 course required)
  • Individuals & Civic Life (1 course required)
  • Fine Arts (1 course/3 credit hours required)
  • Humanities (1 course required)
  • Language in the Humanities (1 course required)
  • Quantitative Reasoning for B.S. or LAN 115 for B.A. (1 course required)
  • Science, Math, & Technology (1 course required)
  • Social Sciences (1 course required)

Program requirements that also fulfill General Education Program Requirements

  • MAT 145 - Mathematics
  • BSC 196 , BSC 197 , PHY 110 , CHE 140 - (2 courses) Natural Science Alternatives 
  • MAT 146  - Quantitative Reasoning

Exempt from Science, Math & Technology Category due to disciplinary expertise gained in the major 

Illinois Articulation Initiative for Transfer Students

To be eligible for IAI, at least one transfer course must have been articulated to an IAI core requirement. Refer to the Undergraduate Catalog for a complete list of IAI courses and policies. The Illinois Transferable General Education Core curriculum consists of 12 to 13 courses (37 to 41 hours of credit) within a five-category designation.

  • A grade of C or better required in ENG 101 and 145 or equivalents
  • Physical & Life Sciences (2 courses/7-8 hours required) Students must complete 1 life science and 1 physical science course; at least 1 course must have a lab.
  • Humanities & Fine Arts (3 courses required) At least 1 humanities and 1 fine arts course required
  • Social & Behavioral Sciences (3 courses required) Two different disciplines must be represented

Program requirements that also fulfill IAI Program Requirements

  • MAT 145  - Mathematics
  • BSC 196 ,  BSC 197 ,  PHY 110 ,  CHE 140  - Physical (1 course) and Life (1 course) Sciences 

logo

Why do I have to take physics for computer science?

Computer science is a multidisciplinary field that encompasses various branches of science and mathematics. While it may seem counterintuitive at first, physics plays a crucial role in computer science education. Understanding the fundamentals of physics helps computer scientists grasp the principles behind the technology they build, allowing them to design more efficient algorithms, develop cutting-edge simulations, and explore the frontiers of technology. Therefore, taking physics courses during your computer science education helps you develop a holistic understanding of the field and equips you with the necessary tools to excel in your career.

1. What is the connection between physics and computer science?

Physics provides the foundational principles that govern the behavior of the physical world. These principles, such as mechanics, electromagnetism, and thermodynamics, serve as a basis for many computer science concepts, including algorithms, data structures, and computational modeling.

2. How does knowledge of physics benefit computer science?

Understanding physics enables computer scientists to develop accurate simulations, model complex systems, optimize algorithms, and solve real-world problems. It helps them create computer graphics, artificial intelligence algorithms, and software for various scientific applications.

3. What specific topics in physics are relevant to computer science?

Topics like Newtonian mechanics, electromagnetism, optics, quantum mechanics, and statistical mechanics provide insights into algorithms, data compression, cryptography, computer vision, signal processing, and computational optimization.

4. Can I pursue computer science without any knowledge of physics?

While it is possible to pursue computer science without physics knowledge, having a strong foundation in physics can significantly enhance your understanding and performance in various computer science areas.

5. Do physics courses help in understanding computer hardware?

Yes, physics concepts lay the groundwork for comprehending computer hardware, such as electrical components, circuits, and semiconductor devices in processors. This knowledge allows computer scientists to optimize hardware designs and develop more efficient computer systems.

6. How does physics contribute to algorithms and data structures?

Physics provides insights into the efficiency of algorithms and data structures. By understanding concepts like time complexity, space complexity, and algorithmic analysis, computer scientists can design algorithms that solve problems faster and use fewer resources.

7. What role does physics play in computer graphics and animation?

Physics forms the basis for creating realistic simulations and interactions in computer graphics and animation. Concepts like kinematics, dynamics, and light propagation help computer scientists model realistic movements, shadows, and reflections.

8. Can physics help in artificial intelligence development?

Yes, physics concepts, particularly in optics and mechanics, can be applied to computer vision, robotics, and natural language processing. Physics-based models can improve machine learning algorithms and enable AI systems to understand the world more accurately.

9. How does physics contribute to data science and machine learning?

Physics assists in data analysis, pattern recognition, and statistical modeling techniques employed in data science and machine learning. Understanding the probabilistic nature of data helps computer scientists develop more accurate models and predictions.

10. Does learning physics improve problem-solving skills in computer science?

Physics fosters analytical thinking and problem-solving skills, which are vital for computer scientists to tackle complex issues, build efficient systems, and optimize algorithms.

11. Are there any career opportunities specifically bridging physics and computer science?

Certainly! Career paths like computational physics, scientific computing, quantum computing, and computational biophysics rely on the combination of physics and computer science expertise to solve intricate scientific problems.

12. How can knowledge of physics improve my overall competence as a computer scientist?

Physics provides a deeper understanding of the fundamental principles underlying computer science. This knowledge equips you to approach complex problems from a multidisciplinary perspective, making you a more versatile and competent computer scientist, capable of pushing the boundaries of innovation.

In conclusion, taking physics courses as part of your computer science education is essential for developing a profound understanding of the field. Physics provides the building blocks for numerous computer science concepts, helping you excel in various areas of the discipline and enabling you to contribute to cutting-edge advancements in technology. Embrace the fusion of these disciplines to unlock new possibilities and become a well-rounded computer scientist.

Leave a Comment Cancel Reply

Your email address will not be published. Required fields are marked *

Save my name, email, and website in this browser for the next time I comment.

Data Science Institute

Ai fridays with vanderbilt data science.

does computer science have coursework

Do you have data you’d like to use, but aren’t quite sure how to make the most of it? Running into issues with your models, data, or analytical approach and spinning your wheels about what to do? Looking for new partnerships with other people using or interested in data science?

Join us  Fridays from 11am-3pm starting Friday, June 7th at the  Data Science Institute (DSI) for Fridays full of artificial intelligence (AI) and data science (DS)! We have several different options based on your needs, ranging from office hours for shorter questions and updates to a full on deep dive into your data science project. Read more below!

Drop-In Consultations (11am – 1pm)

Join us for open office hours for feedback, guidance, training, and suggestions on your data science projects. This is a great time to ask about best practices, tooling, methodological direction, coding, and other technical aspects about your ongoing projects. Undergraduates, graduate students, and lab groups engaged in DS research are welcome! Researchers interested in collaboration for grant proposals, compute resources, or training are welcome to drop by and discuss ways that the DSI supports DS research.

AI Deep Dive (1pm – 2pm)

AI Deep Dives are a great time to deeply explore research problems which might be solvable with deep learning. Discuss your ideas with DSI data scientists, other researchers, DS graduate students, and undergraduate students. These are hour-long sessions where together, we brainstorm and formulate solutions, lay out project plans, recruit students and engage potential collaborators for the goal of initiating new projects, new AI project phases, or new AI project directions. Bring your lab groups, fellow startup founders, and fellow colleagues, and together, we’ll pioneer a path towards your solution. Request an AI deep dive here !

Demos (2pm – 3pm)

Drop by the DSI for demos, a weekly informal session starting at 2pm where you can learn the latest and greatest updates to ongoing data science projects at the DSI. Want some feedback on your projects? You’re welcome to present new ideas, results, and approaches with all participants in a 2-4 minute update on your work. Join us in person or sign up here for a virtual link!

Frequently asked questions

Can i attend.

Are you a faculty member, staff, postdoctoral researcher, graduate student, undergraduate student, or affiliate of Vanderbilt University? Come on by! Feel free to use our indoor and outdoor areas for your DS activities – meet with your project teams in our collaborative space, network with other members of Vanderbilt’s data science community, find new partners for research or startups, and consult with experts in data science.

Don’t have a particular project or question, but just interested in data science and want to observe the data science process? AI Fridays take place in the 18th Ave S and Horton Building (formerly known as the Sony Building), so drop by to learn more about ongoing research, innovation in data science, and build your data science community at VU!

Is this homework help for my data science courses?

Your course instructors and teaching assistants are the best resource for help in your coursework. The DSI is happy to consult with you on undergraduate research, extracurricular data science projects, or new innovation ideas with the Wond’ry. Please feel free to use our space to meet with your data science project teams, study groups, or to meet others interested in data science!

Where is the DSI?

does computer science have coursework

We’re located in the 18th Ave South and Horton building (formerly called the Sony Building), acros s from the Commons on Peabody’s campus. We’ll be on the main entry floor in A2058 – the main DSI lobby.

Other questions about our AI Fridays, need other times, or need a virtual option for office hours? Please reach out to Jesse Spencer-Smith or Charreau Bell at the DSI.

We look forward to seeing you there!

Your Vanderbilt

  • Current Students
  • Faculty & Staff
  • International Students
  • Parents & Family
  • Prospective Students
  • Researchers
  • Sports Fans
  • Visitors & Neighbors

Quick Links

  • PeopleFinder

COMMENTS

  1. What Is Computer Science? Meaning, Jobs, and Degrees

    Computer science is an interdisciplinary field focused on studying computers and their uses in the real world. As a result, the field of computer science focuses as much on the theoretical underpinnings of computers as it does their actual uses and creation. Some common areas of study within the field include designing and applying computer ...

  2. What to expect in a computer science degree program

    Students in a computer science — sometimes called CS — program learn computational theory, development, application, and design. Courses cover theoretical foundations of computer and web ...

  3. CS50: Introduction to Computer Science

    An entry-level course taught by David J. Malan, CS50x teaches students how to think algorithmically and solve problems efficiently. Topics include abstraction, algorithms, data structures, encapsulation, resource management, security, software engineering, and web development. Languages include C, Python, SQL, and JavaScript plus CSS and HTML.

  4. What Is a Bachelor of Computer Science?

    What Is a Bachelor of Computer Science Degree? A bachelor's degree in computer science is a four-year program combining general education with computer science, mathematics, and technology coursework. This degree can prepare graduates to pursue roles in the workforce or advanced degrees. Popular careers for recent graduates include computer programming, information security, and software ...

  5. What to Know About Becoming a Computer Science Major

    Computer science majors must study calculus to earn their degrees. Other relevant math courses include statistics and linear algebra. Introductory computer science classes cover topics like ...

  6. What Is a Computer Science Degree?

    A PhD, or Doctor of Computer Science, is typically the highest degree level in the field. The requirements vary from program to program, but most terminal degrees take four to five years to complete. Many doctoral programs focus heavily on research and theory, and most people go on to get teaching, research, or writing jobs.

  7. Computer Science

    The concentration in Computer Science is designed to teach students skills and ideas they will use immediately and in the future. Because information technology affects every aspect of society, graduates with computer science degrees have open to them an enormous variety of careers—engineering, teaching, medicine, law, basic science, entertainment, management, and countless others.

  8. Computer Science Programs

    Most computer science degrees feature courses in calculus, algebra, and statistics. Students also work with discrete mathematics for algorithms. Is a degree in computer science worth it? A computer science degree can be worth it for aspiring computer and information technology professionals. Many employers require a computer-related degree, and ...

  9. What Is A Computer Science Degree? What Can You Do With It?

    An associate degree in computer science usually includes coursework in computer systems, information technology (IT), and programming. You'll strengthen your programming skills while learning about operating systems, web development, and database administration. ... As a whole, computer science graduates have tons of career options. The Bureau ...

  10. Computer Science Degree Requirements

    Computer Science Degree Requirements. The first six (core) courses, which are taken in the freshman and sophomore years, lay a strong foundation for computer science majors. Each student then selects a Track in which to complete 6 advanced courses. Each Track has 2-4 Required Courses and a list of potential electives.

  11. Computer science

    Computer science is the study of computation, information, and automation. Computer science spans theoretical disciplines (such as algorithms, theory of computation, and information theory) to applied disciplines (including the design and implementation of hardware and software).. Algorithms and data structures are central to computer science. The theory of computation concerns abstract models ...

  12. Computer Science Degree Online

    The B.S. Computer Science degree program is an all-online program that you will complete by studying and working independently with instruction and support from WGU faculty. You will be expected to complete at least 12 competency units each 6-month term. (One course is typically 3 or 4 units.)

  13. What is Computer Science?

    Computer science is the study of computers and how they work, including software, hardware, and algorithms. An algorithm is a list of instructions for completing a task. In computer science, an algorithm tells the computer what to do and how to do it. Computer science is an umbrella term that covers everything from artificial intelligence and ...

  14. The CS Major

    General Description. Computer science majors take courses covering algorithms, data structures, logic, programming languages, systems, and theory. Electives include artificial intelligence, computer graphics, computer vision, cryptography, databases, networks, and scientific computing. Requirements for the CS major in either the College of Arts ...

  15. Computer Science, B.S. < University of California Irvine

    2023-24 Edition. Computer Science, B.S. The Computer Science major emphasizes the principles of computing that underlie our modern world, and provides a strong foundational education to prepare students for the broad spectrum of careers in computing. This major can serve as preparation for either graduate study or a career in industry.

  16. Computer Science < University of California, Berkeley

    Course Objectives: Develop a foundation of computer science concepts that arise in the context of data analytics, including algorithm, representation, interpretation, abstraction, sequencing, conditional, function, iteration, recursion, types, objects, and testing, and develop proficiency in the application of these concepts in the context of a ...

  17. Computer Science

    The Computer Science major (CS) deals with computer theory, methods of information processing, hardware and software design, and applications. The major combines a rigorous technical program with background in the liberal arts and sciences. ... If you prefer greater flexibility in your coursework, or have an interest double-majoring in an area ...

  18. Computer Science 101 I Stanford Online

    CS101 is a self-paced course that teaches the essential ideas of Computer Science for a zero-prior-experience audience. Computers can appear very complicated, but in reality, computers work within just a few, simple patterns. CS101 demystifies and brings those patterns to life, which is useful for anyone using computers today.

  19. Computer Science Major (Eng)

    Apply computer science theory and software development fundamentals to produce computing-based solutions. The CS-Engineering Program Objectives for our graduates are: Use their understanding of algorithms, computers, and programming to solve complex problems. Adapt to the rapidly changing scientific and technological landscape, recognize the ...

  20. Online Computer Science & Engineering Degrees

    Computer Science degree programs on Coursera feature hands-on learning, peer-to-peer support, and the same professors that teach degree courses on campus. Earn your computer science degree or engineering degree online from top computer science schools, like Arizona State University, University of Illinois, and University of London.

  21. Computer Science vs. Computer Engineering: Which Should You ...

    Computer science coursework tends to be broad and varied, covering topics like the following. Software development and software engineering; Programming (including C++, Python and other coding ...

  22. 2024-2025 Undergraduate Catalog

    Communication and Composition (3 courses required) A grade of C or better required in ENG 101 and 145 or equivalents; Mathematics (1 course required) Physical & Life Sciences (2 courses/7-8 hours required) Students must complete 1 life science and 1 physical science course; at least 1 course must have a lab.

  23. Best Online Programming Certificates Of 2024

    In addition to completing core coursework in computer science, database systems and data structures, Indiana Tech students choose six elective credits to round out their certificates.

  24. Computer Science Master's Degree

    Much more than just learning to code, the Computer Science master's degree at Full Sail focuses on data structures, software engineering, software architecture, and most importantly, creative problem solving. Students learn specialized computer science using applied programming as a part of every course. In this program, students learn advanced skills in programming, problem solving, and ...

  25. Best Online Colleges Of 2024

    6,290 accredited, nonprofit colleges and universities analyzed nationwide. 52 reputable tech bootcamp providers evaluated for our rankings. All content is fact-checked and updated on an annual ...

  26. Best Computer Science Courses Online [2024]

    Object-Oriented Data Structures in C++. Learn Computer Science or improve your skills online today. Choose from a wide range of Computer Science courses offered from top universities and industry leaders. Our Computer Science courses are perfect for individuals or for corporate Computer Science training to upskill your workforce.

  27. Why do I have to take physics for computer science?

    4. Can I pursue computer science without any knowledge of physics? While it is possible to pursue computer science without physics knowledge, having a strong foundation in physics can significantly enhance your understanding and performance in various computer science areas. 5. Do physics courses help in understanding computer hardware?

  28. AI Fridays with Vanderbilt Data Science

    Is this homework help for my data science courses? Your course instructors and teaching assistants are the best resource for help in your coursework. The DSI is happy to consult with you on undergraduate research, extracurricular data science projects, or new innovation ideas with the Wond'ry.

  29. Top 7 ESG certifications and courses to consider

    The course emphasizes the importance of sustainability today and introduces participants to the key bodies that have created ESG reporting standards and frameworks. Other topics include existing reporting requirements, key aspects of each area of ESG and the business case for implementing sustainable practices. 6.