Skip to content

Commit

Permalink
Merge pull request #104 from CurricularAnalytics/development
Browse files Browse the repository at this point in the history
additional tests, learning outcomes graph & example
  • Loading branch information
haydenfree committed Apr 1, 2021
2 parents cd53d84 + 27e7ad7 commit 68dccdd
Show file tree
Hide file tree
Showing 21 changed files with 1,091 additions and 61 deletions.
3 changes: 0 additions & 3 deletions .travis.yml
Expand Up @@ -9,9 +9,6 @@ os:
- linux

julia:
- 1.0.5
- 1.1
- 1.2
- 1.3
- 1.4
- 1.5
Expand Down
127 changes: 90 additions & 37 deletions Manifest.toml
@@ -1,42 +1,54 @@
# This file is machine-generated - editing it directly is not advised

[[ArnoldiMethod]]
deps = ["DelimitedFiles", "LinearAlgebra", "Random", "SparseArrays", "StaticArrays", "Test"]
git-tree-sha1 = "2b6845cea546604fb4dca4e31414a6a59d39ddcd"
deps = ["LinearAlgebra", "Random", "StaticArrays"]
git-tree-sha1 = "f87e559f87a45bece9c9ed97458d3afe98b1ebb9"
uuid = "ec485272-7323-5ecc-a04f-4719b315124d"
version = "0.0.4"
version = "0.1.0"

[[Artifacts]]
deps = ["Pkg"]
git-tree-sha1 = "c30985d8821e0cd73870b17b0ed0ce6dc44cb744"
uuid = "56f22d72-fd6d-98f1-02f0-08ddc0907c33"
version = "1.3.0"

[[Base64]]
uuid = "2a0f44e3-6c83-55bd-87e4-b1978d98bd5f"

[[CSV]]
deps = ["CategoricalArrays", "DataFrames", "Dates", "Mmap", "Parsers", "PooledArrays", "SentinelArrays", "Tables", "Unicode"]
git-tree-sha1 = "a390152e6850405a48ca51bd7ca33d11a21d6230"
git-tree-sha1 = "b1f60ea404dc40a76e7f539672ce651079a5a190"
uuid = "336ed68f-0bac-5ca0-87d4-7b16caf5d00b"
version = "0.7.7"
version = "0.7.10"

[[CategoricalArrays]]
deps = ["DataAPI", "Future", "JSON", "Missings", "Printf", "Statistics", "Unicode"]
git-tree-sha1 = "a6c17353ee38ddab30e73dcfaa1107752de724ec"
deps = ["DataAPI", "Future", "JSON", "Missings", "Printf", "Statistics", "StructTypes", "Unicode"]
git-tree-sha1 = "2ac27f59196a68070e132b25713f9a5bbc5fa0d2"
uuid = "324d7699-5711-5eae-9e2f-1d82baa6b597"
version = "0.8.1"
version = "0.8.3"

[[CodecZlib]]
deps = ["TranscodingStreams", "Zlib_jll"]
git-tree-sha1 = "ded953804d019afa9a3f98981d99b33e3db7b6da"
uuid = "944b1d66-785c-5afd-91f1-9de20f533193"
version = "0.7.0"

[[Compat]]
deps = ["Base64", "Dates", "DelimitedFiles", "Distributed", "InteractiveUtils", "LibGit2", "Libdl", "LinearAlgebra", "Markdown", "Mmap", "Pkg", "Printf", "REPL", "Random", "SHA", "Serialization", "SharedArrays", "Sockets", "SparseArrays", "Statistics", "Test", "UUIDs", "Unicode"]
git-tree-sha1 = "a6a8197ae253f2c1a22b2ae17c2dfaf5812c03aa"
git-tree-sha1 = "919c7f3151e79ff196add81d7f4e45d91bbf420b"
uuid = "34da2185-b29b-5c13-b0c7-acf172513d20"
version = "3.13.0"
version = "3.25.0"

[[DataAPI]]
git-tree-sha1 = "176e23402d80e7743fc26c19c681bfb11246af32"
git-tree-sha1 = "dfb3b7e89e395be1e25c2ad6d7690dc29cc53b1d"
uuid = "9a962f9c-6df0-11e9-0e5d-c546b8b5ee8a"
version = "1.3.0"
version = "1.6.0"

[[DataFrames]]
deps = ["CategoricalArrays", "Compat", "DataAPI", "Future", "InvertedIndices", "IteratorInterfaceExtensions", "Missings", "PooledArrays", "Printf", "REPL", "Reexport", "SortingAlgorithms", "Statistics", "TableTraits", "Tables", "Unicode"]
git-tree-sha1 = "4fe99dbfb5201c5766d20d32a65209434347fd58"
git-tree-sha1 = "ecd850f3d2b815431104252575e7307256121548"
uuid = "a93c6f00-e57d-5684-b7b6-d8193f3e46c0"
version = "0.21.6"
version = "0.21.8"

[[DataStructures]]
deps = ["InteractiveUtils", "OrderedCollections"]
Expand All @@ -63,9 +75,9 @@ uuid = "8ba89e20-285c-5b6f-9357-94700520ee1b"

[[DocStringExtensions]]
deps = ["LibGit2", "Markdown", "Pkg", "Test"]
git-tree-sha1 = "c5714d9bcdba66389612dc4c47ed827c64112997"
git-tree-sha1 = "9d4f64f79012636741cf01133158a54b24924c32"
uuid = "ffbed154-4ef7-542d-bbb7-c09d3a79fcae"
version = "0.8.2"
version = "0.8.4"

[[Documenter]]
deps = ["Base64", "Dates", "DocStringExtensions", "InteractiveUtils", "JSON", "LibGit2", "Logging", "Markdown", "REPL", "Test", "Unicode"]
Expand Down Expand Up @@ -97,11 +109,22 @@ git-tree-sha1 = "a3f24677c21f5bbe9d2a714f95dcd58337fb2856"
uuid = "82899510-4779-5014-852e-03e436cf321d"
version = "1.0.0"

[[JLD2]]
deps = ["CodecZlib", "DataStructures", "MacroTools", "Mmap", "Pkg", "Printf", "Requires", "UUIDs"]
git-tree-sha1 = "9f2f2f24e60305feb6ae293a617ddf06f429efc3"
uuid = "033835bb-8acc-5ee8-8aae-3f567f8a3819"
version = "0.4.3"

[[JLLWrappers]]
git-tree-sha1 = "a431f5f2ca3f4feef3bd7a5e94b8b8d4f2f647a0"
uuid = "692b3bcd-3c85-4b1f-b108-f13ce0eb3210"
version = "1.2.0"

[[JSON]]
deps = ["Dates", "Mmap", "Parsers", "Unicode"]
git-tree-sha1 = "b34d7cef7b337321e97d22242c3c2b91f476748e"
git-tree-sha1 = "81690084b6198a2e1da36fcfda16eeca9f9f24e4"
uuid = "682c06a0-de6a-54ab-a142-c8b1cf79cde6"
version = "0.21.0"
version = "0.21.1"

[[LibGit2]]
deps = ["Printf"]
Expand All @@ -112,9 +135,9 @@ uuid = "8f399da3-3557-5675-b5ff-fb832c97cbdb"

[[LightGraphs]]
deps = ["ArnoldiMethod", "DataStructures", "Distributed", "Inflate", "LinearAlgebra", "Random", "SharedArrays", "SimpleTraits", "SparseArrays", "Statistics"]
git-tree-sha1 = "6f85a35d2377cb2db1bc448ed0d6340d2bb1ea64"
git-tree-sha1 = "432428df5f360964040ed60418dd5601ecd240b6"
uuid = "093fc24a-ae57-5d10-9952-331d41423f4d"
version = "1.3.3"
version = "1.3.5"

[[LinearAlgebra]]
deps = ["Libdl"]
Expand All @@ -125,33 +148,39 @@ uuid = "56ddb016-857b-54e1-b83d-db4d58db5568"

[[MacroTools]]
deps = ["Markdown", "Random"]
git-tree-sha1 = "f7d2e3f654af75f01ec49be82c231c382214223a"
git-tree-sha1 = "6a8a2a625ab0dea913aba95c11370589e0239ff0"
uuid = "1914dd2f-81c6-5fcd-8719-6d5c9610ff09"
version = "0.5.5"
version = "0.5.6"

[[Markdown]]
deps = ["Base64"]
uuid = "d6f4376e-aef5-505a-96c1-9c027394607a"

[[MetaGraphs]]
deps = ["JLD2", "LightGraphs", "Random"]
git-tree-sha1 = "9cc756ced4fc5ecfff62605462c1001eec1cf324"
uuid = "626554b9-1ddb-594c-aa3c-2596fe9399a5"
version = "0.6.7"

[[Missings]]
deps = ["DataAPI"]
git-tree-sha1 = "de0a5ce9e5289f27df672ffabef4d1e5861247d5"
git-tree-sha1 = "f8c673ccc215eb50fcadb285f522420e29e69e1c"
uuid = "e1d29d7a-bbdc-5cf2-9ac0-f12de2c33e28"
version = "0.4.3"
version = "0.4.5"

[[Mmap]]
uuid = "a63ad114-7e13-5084-954f-fe012c677804"

[[OrderedCollections]]
git-tree-sha1 = "293b70ac1780f9584c89268a6e2a560d938a7065"
git-tree-sha1 = "4fa2ba51070ec13fcc7517db714445b4ab986bdf"
uuid = "bac558e1-5e72-5ebc-8fee-abe8a469f55d"
version = "1.3.0"
version = "1.4.0"

[[Parsers]]
deps = ["Dates", "Test"]
git-tree-sha1 = "10134f2ee0b1978ae7752c41306e131a684e1f06"
deps = ["Dates"]
git-tree-sha1 = "c8abc88faa3f7a3950832ac5d6e690881590d6dc"
uuid = "69de0a69-1ddd-5017-9359-2bf0b02dc9f0"
version = "1.0.7"
version = "1.1.0"

[[Pkg]]
deps = ["Dates", "LibGit2", "Libdl", "Logging", "Markdown", "Printf", "REPL", "Random", "SHA", "UUIDs"]
Expand Down Expand Up @@ -181,14 +210,20 @@ git-tree-sha1 = "7b1d07f411bc8ddb7977ec7f377b97b158514fe0"
uuid = "189a3867-3050-52da-a836-e630ba90ab69"
version = "0.2.0"

[[Requires]]
deps = ["UUIDs"]
git-tree-sha1 = "4036a3bd08ac7e968e27c203d45f5fff15020621"
uuid = "ae029012-a4dd-5104-9daa-d747884805df"
version = "1.1.3"

[[SHA]]
uuid = "ea8e919c-243c-51af-8825-aaa63cd721ce"

[[SentinelArrays]]
deps = ["Dates", "Random"]
git-tree-sha1 = "7871163033b83a0d08bb601af56488c6f642a113"
git-tree-sha1 = "6ccde405cf0759eba835eb613130723cb8f10ff9"
uuid = "91c51154-3ec4-41a3-a24f-3f23e20d615c"
version = "1.2.10"
version = "1.2.16"

[[Serialization]]
uuid = "9e88b42a-f829-5b0c-bbe9-9e923198166b"
Expand All @@ -199,9 +234,9 @@ uuid = "1a1011a3-84de-559e-8e89-a11a2f7dc383"

[[SimpleTraits]]
deps = ["InteractiveUtils", "MacroTools"]
git-tree-sha1 = "2ee666b24ab8be6a922f9d6c11a86e1a703a7dda"
git-tree-sha1 = "daf7aec3fe3acb2131388f93a4c409b8c7f62226"
uuid = "699a6c99-e7fa-54fc-8d76-47d257e15c1d"
version = "0.9.2"
version = "0.9.3"

[[Sockets]]
uuid = "6462fe0b-24de-5631-8697-dd941f90decc"
Expand All @@ -218,14 +253,20 @@ uuid = "2f01184e-e22b-5df5-ae63-d93ebab69eaf"

[[StaticArrays]]
deps = ["LinearAlgebra", "Random", "Statistics"]
git-tree-sha1 = "016d1e1a00fabc556473b07161da3d39726ded35"
git-tree-sha1 = "2f01a51c23eed210ff4a1be102c4cc8236b66e5b"
uuid = "90137ffa-7385-5640-81b9-e52037218182"
version = "0.12.4"
version = "1.1.0"

[[Statistics]]
deps = ["LinearAlgebra", "SparseArrays"]
uuid = "10745b16-79ce-11e8-11f9-7d13ad32a3b2"

[[StructTypes]]
deps = ["Dates", "UUIDs"]
git-tree-sha1 = "89b390141d2fb2ef3ac2dc32e336f7a5c4810751"
uuid = "856f2bd8-1eba-4b0a-8007-ebc267875bd4"
version = "1.5.0"

[[TableTraits]]
deps = ["IteratorInterfaceExtensions"]
git-tree-sha1 = "b1ad568ba658d8cbb3b892ed5380a6f3e781a81e"
Expand All @@ -234,17 +275,29 @@ version = "1.0.0"

[[Tables]]
deps = ["DataAPI", "DataValueInterfaces", "IteratorInterfaceExtensions", "LinearAlgebra", "TableTraits", "Test"]
git-tree-sha1 = "b7f762e9820b7fab47544c36f26f54ac59cf8abf"
git-tree-sha1 = "a9ff3dfec713c6677af435d6a6d65f9744feef67"
uuid = "bd369af6-aec1-5ad0-b16a-f7cc5008161c"
version = "1.0.5"
version = "1.4.1"

[[Test]]
deps = ["Distributed", "InteractiveUtils", "Logging", "Random"]
uuid = "8dfed614-e22c-5e08-85e1-65c5234f0b40"

[[TranscodingStreams]]
deps = ["Random", "Test"]
git-tree-sha1 = "7c53c35547de1c5b9d46a4797cf6d8253807108c"
uuid = "3bb67fe8-82b1-5028-8e26-92a6c54297fa"
version = "0.9.5"

[[UUIDs]]
deps = ["Random", "SHA"]
uuid = "cf7118a7-6976-5b1a-9a39-7adc72f591a4"

[[Unicode]]
uuid = "4ec0a83e-493e-50e2-b9ac-8f72acf5a8f5"

[[Zlib_jll]]
deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"]
git-tree-sha1 = "320228915c8debb12cb434c59057290f0834dbf6"
uuid = "83775a58-1f1d-513f-b197-d71354ab007a"
version = "1.2.11+18"
5 changes: 3 additions & 2 deletions Project.toml
@@ -1,7 +1,7 @@
name = "CurricularAnalytics"
uuid = "593ffa3d-269e-5d81-88bc-c3b6809c35a6"
authors = ["Greg Heileman <gregheileman@gmail.com>", "Hayden Free <hayden.free@uky.edu>", "Orhan Abar <orhan.abar@uky.edu>", "Will Thompson <wgthompson@uky.edu>"]
version = "1.1.0"
version = "1.1.1"

[deps]
CSV = "336ed68f-0bac-5ca0-87d4-7b16caf5d00b"
Expand All @@ -12,6 +12,7 @@ Documenter = "e30172f5-a6a5-5a46-863b-614d45cd2de4"
LightGraphs = "093fc24a-ae57-5d10-9952-331d41423f4d"
LinearAlgebra = "37e2e46d-f89d-539d-b4ee-838fcccc9c8e"
Markdown = "d6f4376e-aef5-505a-96c1-9c027394607a"
MetaGraphs = "626554b9-1ddb-594c-aa3c-2596fe9399a5"
Printf = "de0858da-6303-5e67-8744-51eddeeeb8d7"
Test = "8dfed614-e22c-5e08-85e1-65c5234f0b40"

Expand All @@ -21,4 +22,4 @@ DataFrames = "0.21.0"
DataStructures = "0.17.0"
Documenter = "0.24.0"
LightGraphs = "1.3.0"
julia = "1.0.5, 1.1, 1.2, 1.3, 1.4, 1.5"
julia = "1.3, 1.4, 1.5"
4 changes: 2 additions & 2 deletions README.md
Expand Up @@ -33,8 +33,8 @@ For more information about installing the toolbox, including the steps neccessar

## Supported Versions
* CurricularAnalytics master will be maintained/enhanced to work with the latest stable version of Julia.
* Julia 1.0.5, 1.2, 1.3, 1.4: CurricularAnalytics v1.0.0 is the latest version guaranteed to work with Julia 1.0.5 to version 1.4.
* Later versions: Some functionality might not work with prerelease / unstable / nightly versions of Julia. If you run into a problem, please file an issue.
* Julia 1.3, 1.4, & 1.5: CurricularAnalytics v1.1.1 is the latest version guaranteed to work with Julia 1.3 to version 1.5.
* Later versions: Some functionality might not work with older / prerelease / unstable / nightly versions of Julia. If you run into a problem, please file an issue.

# Contributing and Reporting Bugs
We welcome contributions and bug reports! Please see [CONTRIBUTING.md](https://github.com/CurricularAnalytics/CurricularAnalytics.jl/blob/master/CONTRIBUTING.md)
Expand Down
Binary file added examples/Introduction/Circuits-pattern-LOs.pdf
Binary file not shown.
65 changes: 65 additions & 0 deletions examples/Introduction/Example_C3.jl
@@ -0,0 +1,65 @@
using CurricularAnalytics
# # create learning outcomes
l = Array{LearningOutcome}(undef, 12)
l[1] = LearningOutcome("Conceptualize engineering problems as computational problems","L1_task",3)
l[2] = LearningOutcome("Design computer programs using modular programming","L2_task",3)
l[3] = LearningOutcome("Understand the basics of data structures","L3_task",3)
l[4] = LearningOutcome("Solve a resistive network that is excited by an AC or a DC source","L4_task",3)
l[5] = LearningOutcome("Solve first-order circuits involving resistors and a capacitor or an inductor","L5_task",3)
l[6] = LearningOutcome("Derive the complex impedance associated with a resistive, inductive and capacitive load","L6_task",3)
l[7] = LearningOutcome("Apply knowledge of mathematics, science and engineering","L7_task",3)
l[8] = LearningOutcome("Design and conduct experiments, as well as analyze and interpret data","L8_task",3)
l[9] = LearningOutcome("Identify, formulate and solve engineering problems","L9_task",3)
l[10] = LearningOutcome("Know how to construct basic gates (inverter, AND, OR) using NMOS and PMOS switches","L10_task",3)
l[11] = LearningOutcome("Know the cause of delays associated with logic gates","L11_task",3)
l[12] = LearningOutcome("Know number representations in different bases, and methods for converting from one base to another","L12_task",3)
# learning_outcomes of course 1
add_lo_requisite!(l[1],l[2],pre)
add_lo_requisite!(l[1],l[3],pre)
# learning_outcomes of course 2
add_lo_requisite!(l[4],l[5],pre)
add_lo_requisite!(l[4],l[6],pre)
# learning_outcomes of course 3
add_lo_requisite!(l[7],l[8],pre)
add_lo_requisite!(l[7],l[9],pre)
# learning_outcomes of course 4
add_lo_requisite!(l[10],l[11],pre)
add_lo_requisite!(l[10],l[12],pre)
# create the courses
c = Array{Course}(undef, 4)
# term 1
c[1] = Course("Computer Programming for Engineering Applications", 3, prefix = "ECE ", learning_outcomes = [l[1],l[2],l[3]],num = "175")
# term 2
c[2] = Course("Elements of Electrical Engineering", 3, prefix = "ECE", learning_outcomes = [l[4],l[5],l[6]],num ="207")
c[3] = Course("Basic Circuits", 3, prefix = "ECE", learning_outcomes = [l[7],l[8],l[9]], num = "220" )
#test1
# term 3
c[4] = Course("Digital Logic", 3, prefix = "ECE", learning_outcomes = [l[10],l[11],l[12]], num = "274A")
# term 1
add_requisite!(c[1],c[2],pre)
add_requisite!(c[1],c[3],pre)
# term 2
add_requisite!(c[2],c[4],pre)
curric = Curriculum("Example Curricula c1", c, learning_outcomes = l)
print(curric.courses)
# print(curric.learning_outcomes)
# print(curric.graph)
# print(curric.lo_graph)
# errors = IOBuffer()
# if isvalid_curriculum(curric, errors)
# println("Curriculum $(curric.name) is valid")
# println(" delay factor = $(delay_factor(curric))")
# println(" blocking factor = $(blocking_factor(curric))")
# println(" centrality factor = $(centrality(curric))")
# println(" curricular complexity = $(complexity(curric))")
# else
# println("Curriculum $(curric.name) is not valid:")
# print(String(take!(errors)))
# end
# terms = Array{Term}(undef, 3)
# terms[1] = Term([c[1]])
# terms[2] = Term([c[2],c[3]])
# terms[3] = Term([c[4]])
# dp = DegreePlan("Example Curricula c1", curric, terms)
# basic_metrics(dp)
# dp.metrics

2 comments on commit 68dccdd

@haydenfree
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@JuliaRegistrator
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Registration pull request created: JuliaRegistries/General/33371

After the above pull request is merged, it is recommended that a tag is created on this repository for the registered package version.

This will be done automatically if the Julia TagBot GitHub Action is installed, or can be done manually through the github interface, or via:

git tag -a v1.1.1 -m "<description of version>" 68dccdd758cc8d167d7f415ea0caaf9016d69651
git push origin v1.1.1

Please sign in to comment.