Skip to content

Commit a443949

Browse files
committed
add core flag to Course type
1 parent 8d22dbd commit a443949

3 files changed

Lines changed: 18 additions & 0 deletions

File tree

src/data/courses.json

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
[
22
{
33
"code": "COMP 1405",
4+
"core": true,
45
"title": "Introduction to Computer Science I",
56
"credits": 0.5,
67
"description": "Introduction to computer science and programming, for computer science students. Topics include: algorithm design; control structures; variables and types; linear collections; functions; debugging and testing. Special attention is given to procedural programming in a modern language, computational thinking skills, and problem decomposition.",
@@ -21,6 +22,7 @@
2122
},
2223
{
2324
"code": "COMP 1406",
25+
"core": true,
2426
"title": "Introduction to Computer Science II",
2527
"credits": 0.5,
2628
"description": "A second course in programming for BCS students, emphasizing problem solving and computational thinking in an object-oriented language. Topics include abstraction, mutable data structures, methods, inheritance, polymorphism, recursion, program efficiency, testing and debugging.",
@@ -57,6 +59,7 @@
5759
},
5860
{
5961
"code": "COMP 1805",
62+
"core": true,
6063
"title": "Discrete Structures I",
6164
"credits": 0.5,
6265
"description": "Introduction to discrete mathematics and discrete structures. Topics include: propositional logic, predicate calculus, set theory, complexity of algorithms, mathematical reasoning and proof techniques, recurrences, induction, finite automata and graph theory. Material is illustrated through examples from computing.",
@@ -108,6 +111,7 @@
108111
},
109112
{
110113
"code": "COMP 2401",
114+
"core": true,
111115
"title": "Introduction to Systems Programming",
112116
"credits": 0.5,
113117
"description": "Introduction to system-level programming with fundamental OS concepts, procedures, primitive data types, user-defined types. Topics may include process management, memory management, process coordination and synchronization, inter-process communication, file systems, networking, pointers, heap and stack memory management, and system/library calls.",
@@ -123,6 +127,7 @@
123127
},
124128
{
125129
"code": "COMP 2402",
130+
"core": true,
126131
"title": "Abstract Data Types and Algorithms",
127132
"credits": 0.5,
128133
"description": "Introduction to the design and implementation of abstract data types and to complexity analysis of data structures. Topics include: stacks, queues, lists, trees and graphs. Special attention is given to abstraction, interface specification and hierarchical design using an object-oriented programming language.",
@@ -138,6 +143,7 @@
138143
},
139144
{
140145
"code": "COMP 2404",
146+
"core": true,
141147
"title": "Introduction to Software Engineering",
142148
"credits": 0.5,
143149
"description": "Introduction to object-oriented software development, with emphasis on the design and implementation of maintainable, reusable software. Topics include abstraction, modularity, encapsulation, and an introduction to design patterns.",
@@ -147,6 +153,7 @@
147153
},
148154
{
149155
"code": "COMP 2406",
156+
"core": true,
150157
"title": "Fundamentals of Web Applications",
151158
"credits": 0.5,
152159
"description": "Introduction to Internet application development; emphasis on computer science fundamentals of technologies underlying web applications. Topics include: scripting and functional languages, language-based virtual machines, database query languages, remote procedure calls over the Internet, and performance and security concerns in modern distributed applications.",
@@ -207,6 +214,7 @@
207214
},
208215
{
209216
"code": "COMP 2804",
217+
"core": true,
210218
"title": "Discrete Structures II",
211219
"credits": 0.5,
212220
"description": "A second course in discrete mathematics and discrete structures. Topics include: counting, sequences and sums, discrete probability, basic statistics, recurrence relations, randomized algorithms. Material is illustrated through examples from computing.",
@@ -225,6 +233,7 @@
225233
},
226234
{
227235
"code": "COMP 3000",
236+
"core": true,
228237
"title": "Operating Systems",
229238
"credits": 0.5,
230239
"description": "Operating system implementation course stressing fundamental issues in design and how they relate to modern computer architectures. Assignments involve the modification and extension of a multitasking operating system.",
@@ -249,6 +258,7 @@
249258
},
250259
{
251260
"code": "COMP 3004",
261+
"core": true,
252262
"title": "Object-Oriented Software Engineering",
253263
"credits": 0.5,
254264
"description": "Development of object-oriented software systems: theory and practice. Topics include: Computer ethics, software development processes, requirement specification, class and scenario modeling, state modeling, UML, design patterns, traceability. Students are to complete a team project.",
@@ -278,6 +288,7 @@
278288
},
279289
{
280290
"code": "COMP 3005",
291+
"core": true,
281292
"title": "Database Management Systems",
282293
"credits": 0.5,
283294
"description": "Introduction to the concepts of database management systems and database design. Topics may include: entity-relationship modelling, normalization, reduction to relational schemas, SQL, file and data organization, indexing, hash tables, join algorithms, query processing, query optimization, and concurrency control.",
@@ -305,6 +316,7 @@
305316
},
306317
{
307318
"code": "COMP 3007",
319+
"core": true,
308320
"title": "Programming Paradigms",
309321
"credits": 0.5,
310322
"description": "An introduction to alternative programming paradigms such as functional, constraint-based, concurrent, and logic programming.",
@@ -487,6 +499,7 @@
487499
},
488500
{
489501
"code": "MATH 1007",
502+
"core": true,
490503
"title": "Elementary Calculus I",
491504
"credits": 0.5,
492505
"description": "Limits. Differentiation of the elementary functions, including trigonometric functions. Rules of differentiation. Applications of differentiation: max-min problems, curve sketching, approximations. Introduction to integration: definite and indefinite integrals, areas under curves, fundamental theorem of calculus.",
@@ -507,6 +520,7 @@
507520
},
508521
{
509522
"code": "MATH 1104",
523+
"core": true,
510524
"title": "Linear Algebra for Engineering or Science",
511525
"credits": 0.5,
512526
"description": "Systems of linear equations. Matrix algebra. Determinants. Invertible matrix theorem. Cramer’s rule. Vector space R^n; subspaces, bases. Eigenvalues, diagonalization. Linear transformations, kernel, range. Complex numbers (including De Moivre’s theorem). Inner product spaces and orthogonality. Applications.",

src/data/loadCourses.ts

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,9 @@ export const courses: Map<string, Course> = new Map(
99
courseList.map((c) => [c.code, c]),
1010
);
1111

12+
// Core/required CS-program courses — the Explorer's default (non-overwhelming) view.
13+
export const coreCourseList: Course[] = courseList.filter((c) => c.core);
14+
1215
// prereqEdges: one edge per leaf `course` node in each prereq AST.
1316
// Convention: { from: requirer, to: required } — "from" depends on "to".
1417
// `credits` and `raw` nodes are skipped here (TODO: handle when those prereq

src/types/course.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,4 +13,5 @@ export interface Course {
1313
prereq: Prereq | null;
1414
prereqRaw: string | null; // raw string from calendar; null for hand-crafted entries
1515
precludes: string[]; // course codes
16+
core?: boolean; // true for core/required CS-program courses; drives the Explorer default view
1617
}

0 commit comments

Comments
 (0)