The Minor in Computer Science
Course Requirements for the Minor: 24 units
The following courses, or their approved transfer equivalents, are required of all candidates for this minor.
Lower-Division Requirements: 11 units
2 courses required:
SUBJ NUM |
Title |
Sustainable |
Units |
Semester Offered |
Course Flags |
CSCI 111
|
Programming and Algorithms I
|
|
4.0
|
FS
|
|
Prerequisite: MATH 109, MATH 119 (or high school equivalent), or MATH 120; or a passing score on the Math department administered calculus readiness exam.
A first-semester programming course, providing an overview of computer systems and an introduction to problem solving and software design using procedural object-oriented programming languages. Coverage includes the software life cycle, as well as algorithms and their role in software design. Students are expected to design, implement, and test a number of programs. 3 hours lecture, 2 hours activity.
|
CSCI 211
|
Programming and Algorithms II
|
|
4.0
|
FS
|
|
Prerequisite: CSCI 111 with a grade of C or higher.
A second semester object-oriented programming course in computer science that emphasizes problem solving. This course continues the study of software specification, design, implementation, and debugging techniques while introducing abstract data types, fundamental data structures and associated algorithms. Coverage includes dynamic memory, file I/O, linked lists, stacks, queues, trees, recursion, and an introduction to the complexity of algorithms. Students are expected to design, implement, test, and analyze a number of programs. 3 hours lecture, 2 hours activity.
|
1 course selected from:
SUBJ NUM |
Title |
Sustainable |
Units |
Semester Offered |
Course Flags |
CSCI 217
|
Discrete Mathematics
|
|
3.0
|
FS
|
|
Prerequisites: GE Mathematics/Quantitative Reasoning Ready, CSCI 111 with a grade of C or higher (may be taken concurrently), MATH 119 (or equivalent).
This course is also offered as
MATH 217.
Offers an intensive introduction to discrete mathematics as used in computer science. Topics include sets, relations, propositional and predicate logic, basic proof methods including mathematical induction, digital logic circuits, complexity of algorithms, elementary combinatorics, and solving linear recurrence relations. 3 hours discussion.
|
MATH 217
|
Discrete Mathematics
|
|
3.0
|
FS
|
|
Prerequisites: GE Mathematics/Quantitative Reasoning Ready, CSCI 111 with a grade of C or higher (may be taken concurrently), MATH 119 (or equivalent).
This course is also offered as
CSCI 217.
Offers an intensive introduction to discrete mathematics as used in computer science. Topics include sets, relations, propositional and predicate logic, basic proof methods including mathematical induction, digital logic circuits, complexity of algorithms, elementary combinatorics, and solving linear recurrence relations. 3 hours discussion.
|
Upper-Division Requirements: 13 units
2 courses required:
SUBJ NUM |
Title |
Sustainable |
Units |
Semester Offered |
Course Flags |
CSCI 311
|
Algorithms and Data Structures
|
|
4.0
|
FS
|
|
Prerequisites: CSCI 211; CSCI 217 or MATH 217, all with a grade of C or higher.
This course focuses on object-oriented methodologies in designing and implementing a variety of data structures and algorithms. Coverage includes recursion, trees, search structures, hashing, heaps, sorting algorithms, and graph algorithms. Data structure and algorithm combinations will be studied and analyzed along with their relative merits using both mathematical and empirical measurements. The course includes a number of large programming assignments focusing on object-oriented software engineering and algorithm development. Students will be required to design, implement, test, and analyze their programs in at least one object-oriented language. 3 hours lecture, 2 hours activity.
|
CSCI 430
|
Software Engineering
|
|
3.0
|
FS
|
|
Prerequisite: CSCI 311 with a grade of C or higher.
An overview of software engineering principles, practice, and tools. Topics include: agile software engineering methodologies, requirements engineering, test-driven development, software design patterns, MVC architecture, version control, software metrics, and static analysis. Students work in groups to design and implement a semester-long open source software project. 2 hours discussion, 2 hours activity.
|
2 courses selected from:
Any upper-division Computer Science (CSCI) or Computer Information Systems (CINS) courses except CINS 490, CSCI 301, CSCI 344, CSCI 398, CSCI 399, CSCI 400, CSCI 444, CSCI 490, CSCI 498, CSCI 499, and CSCI 598. One course may be from another department as long as the course has significant computational content, as determined by the Chair of the Department of Computer Science. Courses must be taken for a letter grade.