Lower-Division

CSE 3 Computing Technology in a Changing Society

Introduction to computer hardware, software, and networking, with an emphasis on how these technologies impact society. Students learn key technical concepts and terminology and learn to modify and create programming code through making webpages and simple games. Students also gain hands-on experience using emerging technological tools such as 3D printing, laser-cutting, or 3D modeling software in virtual reality headsets. Course covers the history of computing, the early days of the internet, hardware fundamentals, accessibility tools, professional programming practices, open-source software, intellectual property concerns, networking, digital privacy, and cybersecurity. Designed for students with only basic, user-level computer experience. (Formerly offered as Personal Computer Concepts: Software and Hardware.)

Credits

5

General Education Code

PE-T

CSE 5J Introduction to Programming in Java

Introduces programming in Java for students who have no prior programming experience. Students learn programming and documentation skills, as well as algorithmic problem-solving, and programming methodologies. Introduces computers, compilers, and editors. Students write small to medium-sized programs. This course and CSE 5C and CSE 5P cover similar concepts, but use different programming languages. Because CSE 5J followed by CSE 11 is a two-quarter alternative to the accelerated course CSE 12A and CSE 12L, engineering majors and students planning on continuing the programming sequence are encouraged to take CSE 5J rather than CSE 5C or CSE 5P. Students may not receive credit for CSE 5J taken concurrently or subsequently to CSE 12A, CSE 12B, or Computer Engineering 13. (Formerly CMPS 5J.)

Credits

5

General Education Code

MF

CSE 10 Introduction to Computer Science

An overview of the theory, foundations, and practice of computer science with emphasis on what computers can and cannot do, now and in the future. Topics include algorithms and data, correctness and efficiency of algorithms, hardware, programming languages, limitations of computation, applications, and social issues. No programming skills are required as a prerequisite. Major concepts and open problems in computer science are presented without reliance on sophisticated mathematical tools. Students cannot receive credit for this course after completing CSE 15. (Formerly CMPS 10.)

Credits

5

General Education Code

MF

CSE 12 Computer Systems and Assembly Language and Lab

Introduction to computer systems and assembly language and how computers compute in hardware and software. Topics include digital logic, number systems, data structures, compiling/assembly process, basics of the system software, and computer architecture. Course is 7 credits with integrated laboratories illustrating concepts covered in lecture. Note that CSE 12 assumes some programming experience. Students can show programming experience by taking one of the courses listed in the prerequisite list below or by taking the CSE python Test-out Exam: https://undergrad.soe.ucsc.edu/cse-20-testout-exam (Formerly CSE 12 and CSE 12L)

Credits

7

Requirements

Prerequisite(s): CSE 5J, or CSE 20, or CSE 30, or BME 160, or equivalent.

CSE 13S Computer Systems and C Programming

Focuses on C programming, command line, shell programming, editors, debuggers, source code control, and other tools. Examines basic computer systems, algorithm design, and development, data types, and program structures. Develops understanding of process model, compile-link-execute build cycle, language-machine interface, memory, and data representation. Students cannot receive credit for both CSE 13S and CSE 13E. Course is 7 credits with integrated laboratory.

Credits

7

Requirements

Prerequisite(s): CSE 12 or BME 160.

CSE 16 Applied Discrete Mathematics

Introduction to applications of discrete mathematical systems. Topics include sets, functions, relations, graphs, predicate calculus, mathematical proof methods (induction, contraposition, contradiction), counting methods (permutations, combinations), and recurrences. Examples are drawn from computer science and computer engineering. Knowledge of computer programming is useful before taking this course. Students who do not have prior programming experience are strongly recommended to take CSE 20 or CSE 30 before taking this course.

Credits

5

Requirements

Prerequisite(s): MATH 19A or MATH 19B or MATH 11B or AM 11B or AM 15B or ECON 11B.

General Education Code

MF

CSE 20 Beginning Programming in Python

Provides students with Python programming skills and the ability to design programs and read Python code. Topics include data types, control flow, methods and advanced functions, built-in data structures, and introduction to OOP. No prior programming experience is required. Students may not receive credit for CSE 20 after receiving credit for CSE 30. Students with prior programming experience (especially in Python) are encouraged to take CSE Testout Exam to be evaluated for their readiness to take CSE 30 directly: https://undergrad.soe.ucsc.edu/cse-20-testout-exam.

Credits

5

Requirements

Antirequisite: Students cannot enroll in this class after receiving a C or better in CSE 30.

General Education Code

MF

CSE 30 Programming Abstractions: Python

Introduction to software development in Python focusing on structuring software in terms of objects endowed with primitive operations. Introduces concepts and techniques via a sequence of concrete case studies. Coursework consists of programming assignments and a final examination. Note that CSE 30 assumes some Python experience, students trained in a different language should self-study Python to prepare for CSE 30. See CSE Testout Exam for resources and further information.

Credits

7

Requirements

Prerequisite(s): CSE 20 or BME 160; and MATH 3 or MATH 11A or MATH 19A or AM 3 or AM 11A or ECON 11A, or a score of 400 or higher on the mathematics placement examination (MPE).

CSE 40 Machine Learning Basics: Data Analysis and Empirical Methods

Introduction to the basic mathematical concepts and programming abstractions required for modern machine learning, data science, and empirical science. The mathematical foundations include basic probability, linear algebra, and optimization. The programming abstractions include data manipulation and visualization. The principles of empirical analysis, evaluation, critique and reproducibility are emphasized. Mathematical and programming abstractions are grounded in empirical studies including data-driven evidential reasoning, predictive modeling, and causal analysis.

Credits

5

Requirements

Prerequisite(s): MATH 19B or MATH 20B, and CSE 30.

General Education Code

SR

CSE 80A Universal Access: Disability, Technology, and Society

Overview of human-centered technology and of its potential for increasing the quality of life and independence of disabled individuals. A substantial portion of the course is devoted to studying physical, psychological, and psychosocial aspects of disability. Topics include: diversity and integration, legislation, accessibility, and universal design. (Formerly Computer Engineering 80A.)

Credits

5

General Education Code

PE-T

CSE 80L Social Data Analytics and Visualization

Course examines: social data analytics--veracity, consistency, uncertainty, volume; statistical computation--misuse, bias, dispersion, correlation, regressions, differential scales, normal distributions, factor and cluster analysis, extrapolation, inference, simple programming; visual representations--communication, critique and design of infographics; applications--environment, energy, economics, education, empowerment. (Formerly Computer Science 80L.)

Credits

5

General Education Code

SR

CSE 80N Introduction to Networking and the Internet

Introduction to the evolution, technological basis, and services of the Internet, with descriptions of its underlying communications structure, routing algorithms, peer-to-peer hierarchy, reliability, and packet switching. Network security, mail, multimedia and data compression issues, HTML, and digital images. Students who have completed CSE 150 cannot receive credit for this course. (Formerly Computer Engineering 80N.)

Credits

5

General Education Code

PE-T

CSE 80S Social Networks

Introduction to social networks and game theory. Topics include the structure of social networks; the world wide web; the flow of information and behavior through networks; and the principles behind modern web search and search-ad placement. (Formerly Computer Science 17.)

Credits

5

Requirements

Prerequisite(s): MATH 3 or MATH 11A; or AM 3 or AM 6 or AM 11A or AM 15A; or AM 11B or ECON 11A; or score on math placement exam of 300 or higher.

General Education Code

SR

CSE 94 Group Tutorial

Provides a means for a small group of students to study a particular topic in consultation with a faculty sponsor. Students submit petition to sponsoring agency.

Credits

5

Repeatable for credit

Yes

CSE 94F Group Tutorial

Provides a means for a small group of students to study a particular topic in consultation with a faculty sponsor. Students submit petition to sponsoring agency.

Credits

2

Repeatable for credit

Yes

CSE 99 Tutorial

Students submit petition to sponsoring agency.

Credits

5

Repeatable for credit

Yes

CSE 99F Tutorial

Students submit petition to sponsoring agency.

Credits

2

Repeatable for credit

Yes