├── Course Notes ├── README.md ├── Week 1 │ ├── L9W1_Functions1.pdf │ ├── L5W1_StringLiterals.pdf │ ├── L8W1_DataContainers1.pdf │ ├── L3W1_ErrorsAndDebugging.pdf │ ├── L7W1_StringInterpolation.pdf │ ├── L1W1_MinimalWorkingExample.pdf │ ├── L6W1_StringEscapeSequences.pdf │ ├── L2W1_DeconstructingTheMinimalExample.pdf │ ├── L4W1_ProgrammingIsAppliedFormalLogic.pdf │ └── README.md ├── Week 2 │ ├── L1W2_Arithmetict.pdf │ ├── L2W2_NumberTypes.pdf │ ├── L4W2_GenericFunctions.pdf │ ├── L6W2_ScopeOfFunctions.pdf │ ├── L3W2_UserDefinedFunctions.pdf │ ├── L5W2_TypeSystemAndMultipleDispatch.pdf │ └── README.md ├── Week 4 │ ├── L3W4_PlayingWithText.pdf │ ├── L1W4_TextFileInputOutput.pdf │ ├── L4W4_LookingBackLookingForward.pdf │ ├── L2W4_ManipulatingWordsFromTextFile.pdf │ └── README.md └── Week 3 │ ├── L3W3_The_while_end_Structure.pdf │ ├── L4W3_The_for_end_Structure.pdf │ ├── L1W3_ComparisonAndLogicalOperators.pdf │ ├── L5W3_AnonymousFunctionsAndIteration.pdf │ ├── L2W3_The_if_elseif_else_end_Structure.pdf │ └── README.md ├── .github └── FUNDING.yml ├── BeforeYouStartThisCourse.pdf ├── IfYouWantToContribute ├── Week 1 │ ├── L9W1_Functions1.pdf │ ├── L5W1_StringLiterals.pdf │ ├── L8W1_DataContainers1.pdf │ ├── L3W1_ErrorsAndDebugging.pdf │ ├── L7W1_StringInterpolation.pdf │ ├── L1W1_MinimalWorkingExample.pdf │ ├── L6W1_StringEscapeSequences.pdf │ ├── L2W1_DeconstructingTheMinimalExample.pdf │ └── L4W1_ProgrammingIsAppliedFormalLogic.pdf └── README.md └── README.md /Course Notes/README.md: -------------------------------------------------------------------------------- 1 | # Course notes 2 | ## (for Julia Programming for Nervous Beginners) 3 | 4 | -------------------------------------------------------------------------------- /.github/FUNDING.yml: -------------------------------------------------------------------------------- 1 | # These are supported funding model platforms 2 | 3 | github: [JuliaLang] 4 | open_collective: julialang 5 | -------------------------------------------------------------------------------- /BeforeYouStartThisCourse.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JuliaAcademy/JuliaProgrammingForNervousBeginners/HEAD/BeforeYouStartThisCourse.pdf -------------------------------------------------------------------------------- /Course Notes/Week 1/L9W1_Functions1.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JuliaAcademy/JuliaProgrammingForNervousBeginners/HEAD/Course Notes/Week 1/L9W1_Functions1.pdf -------------------------------------------------------------------------------- /Course Notes/Week 2/L1W2_Arithmetict.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JuliaAcademy/JuliaProgrammingForNervousBeginners/HEAD/Course Notes/Week 2/L1W2_Arithmetict.pdf -------------------------------------------------------------------------------- /Course Notes/Week 2/L2W2_NumberTypes.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JuliaAcademy/JuliaProgrammingForNervousBeginners/HEAD/Course Notes/Week 2/L2W2_NumberTypes.pdf -------------------------------------------------------------------------------- /Course Notes/Week 1/L5W1_StringLiterals.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JuliaAcademy/JuliaProgrammingForNervousBeginners/HEAD/Course Notes/Week 1/L5W1_StringLiterals.pdf -------------------------------------------------------------------------------- /Course Notes/Week 1/L8W1_DataContainers1.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JuliaAcademy/JuliaProgrammingForNervousBeginners/HEAD/Course Notes/Week 1/L8W1_DataContainers1.pdf -------------------------------------------------------------------------------- /Course Notes/Week 4/L3W4_PlayingWithText.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JuliaAcademy/JuliaProgrammingForNervousBeginners/HEAD/Course Notes/Week 4/L3W4_PlayingWithText.pdf -------------------------------------------------------------------------------- /Course Notes/Week 1/L3W1_ErrorsAndDebugging.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JuliaAcademy/JuliaProgrammingForNervousBeginners/HEAD/Course Notes/Week 1/L3W1_ErrorsAndDebugging.pdf -------------------------------------------------------------------------------- /Course Notes/Week 2/L4W2_GenericFunctions.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JuliaAcademy/JuliaProgrammingForNervousBeginners/HEAD/Course Notes/Week 2/L4W2_GenericFunctions.pdf -------------------------------------------------------------------------------- /Course Notes/Week 2/L6W2_ScopeOfFunctions.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JuliaAcademy/JuliaProgrammingForNervousBeginners/HEAD/Course Notes/Week 2/L6W2_ScopeOfFunctions.pdf -------------------------------------------------------------------------------- /Course Notes/Week 1/L7W1_StringInterpolation.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JuliaAcademy/JuliaProgrammingForNervousBeginners/HEAD/Course Notes/Week 1/L7W1_StringInterpolation.pdf -------------------------------------------------------------------------------- /Course Notes/Week 2/L3W2_UserDefinedFunctions.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JuliaAcademy/JuliaProgrammingForNervousBeginners/HEAD/Course Notes/Week 2/L3W2_UserDefinedFunctions.pdf -------------------------------------------------------------------------------- /Course Notes/Week 4/L1W4_TextFileInputOutput.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JuliaAcademy/JuliaProgrammingForNervousBeginners/HEAD/Course Notes/Week 4/L1W4_TextFileInputOutput.pdf -------------------------------------------------------------------------------- /IfYouWantToContribute/Week 1/L9W1_Functions1.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JuliaAcademy/JuliaProgrammingForNervousBeginners/HEAD/IfYouWantToContribute/Week 1/L9W1_Functions1.pdf -------------------------------------------------------------------------------- /Course Notes/Week 1/L1W1_MinimalWorkingExample.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JuliaAcademy/JuliaProgrammingForNervousBeginners/HEAD/Course Notes/Week 1/L1W1_MinimalWorkingExample.pdf -------------------------------------------------------------------------------- /Course Notes/Week 1/L6W1_StringEscapeSequences.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JuliaAcademy/JuliaProgrammingForNervousBeginners/HEAD/Course Notes/Week 1/L6W1_StringEscapeSequences.pdf -------------------------------------------------------------------------------- /Course Notes/Week 3/L3W3_The_while_end_Structure.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JuliaAcademy/JuliaProgrammingForNervousBeginners/HEAD/Course Notes/Week 3/L3W3_The_while_end_Structure.pdf -------------------------------------------------------------------------------- /Course Notes/Week 3/L4W3_The_for_end_Structure.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JuliaAcademy/JuliaProgrammingForNervousBeginners/HEAD/Course Notes/Week 3/L4W3_The_for_end_Structure.pdf -------------------------------------------------------------------------------- /IfYouWantToContribute/Week 1/L5W1_StringLiterals.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JuliaAcademy/JuliaProgrammingForNervousBeginners/HEAD/IfYouWantToContribute/Week 1/L5W1_StringLiterals.pdf -------------------------------------------------------------------------------- /Course Notes/Week 4/L4W4_LookingBackLookingForward.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JuliaAcademy/JuliaProgrammingForNervousBeginners/HEAD/Course Notes/Week 4/L4W4_LookingBackLookingForward.pdf -------------------------------------------------------------------------------- /IfYouWantToContribute/Week 1/L8W1_DataContainers1.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JuliaAcademy/JuliaProgrammingForNervousBeginners/HEAD/IfYouWantToContribute/Week 1/L8W1_DataContainers1.pdf -------------------------------------------------------------------------------- /IfYouWantToContribute/Week 1/L3W1_ErrorsAndDebugging.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JuliaAcademy/JuliaProgrammingForNervousBeginners/HEAD/IfYouWantToContribute/Week 1/L3W1_ErrorsAndDebugging.pdf -------------------------------------------------------------------------------- /IfYouWantToContribute/Week 1/L7W1_StringInterpolation.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JuliaAcademy/JuliaProgrammingForNervousBeginners/HEAD/IfYouWantToContribute/Week 1/L7W1_StringInterpolation.pdf -------------------------------------------------------------------------------- /Course Notes/Week 2/L5W2_TypeSystemAndMultipleDispatch.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JuliaAcademy/JuliaProgrammingForNervousBeginners/HEAD/Course Notes/Week 2/L5W2_TypeSystemAndMultipleDispatch.pdf -------------------------------------------------------------------------------- /Course Notes/Week 3/L1W3_ComparisonAndLogicalOperators.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JuliaAcademy/JuliaProgrammingForNervousBeginners/HEAD/Course Notes/Week 3/L1W3_ComparisonAndLogicalOperators.pdf -------------------------------------------------------------------------------- /Course Notes/Week 3/L5W3_AnonymousFunctionsAndIteration.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JuliaAcademy/JuliaProgrammingForNervousBeginners/HEAD/Course Notes/Week 3/L5W3_AnonymousFunctionsAndIteration.pdf -------------------------------------------------------------------------------- /Course Notes/Week 4/L2W4_ManipulatingWordsFromTextFile.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JuliaAcademy/JuliaProgrammingForNervousBeginners/HEAD/Course Notes/Week 4/L2W4_ManipulatingWordsFromTextFile.pdf -------------------------------------------------------------------------------- /IfYouWantToContribute/Week 1/L1W1_MinimalWorkingExample.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JuliaAcademy/JuliaProgrammingForNervousBeginners/HEAD/IfYouWantToContribute/Week 1/L1W1_MinimalWorkingExample.pdf -------------------------------------------------------------------------------- /IfYouWantToContribute/Week 1/L6W1_StringEscapeSequences.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JuliaAcademy/JuliaProgrammingForNervousBeginners/HEAD/IfYouWantToContribute/Week 1/L6W1_StringEscapeSequences.pdf -------------------------------------------------------------------------------- /Course Notes/Week 1/L2W1_DeconstructingTheMinimalExample.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JuliaAcademy/JuliaProgrammingForNervousBeginners/HEAD/Course Notes/Week 1/L2W1_DeconstructingTheMinimalExample.pdf -------------------------------------------------------------------------------- /Course Notes/Week 1/L4W1_ProgrammingIsAppliedFormalLogic.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JuliaAcademy/JuliaProgrammingForNervousBeginners/HEAD/Course Notes/Week 1/L4W1_ProgrammingIsAppliedFormalLogic.pdf -------------------------------------------------------------------------------- /Course Notes/Week 3/L2W3_The_if_elseif_else_end_Structure.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JuliaAcademy/JuliaProgrammingForNervousBeginners/HEAD/Course Notes/Week 3/L2W3_The_if_elseif_else_end_Structure.pdf -------------------------------------------------------------------------------- /IfYouWantToContribute/Week 1/L2W1_DeconstructingTheMinimalExample.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JuliaAcademy/JuliaProgrammingForNervousBeginners/HEAD/IfYouWantToContribute/Week 1/L2W1_DeconstructingTheMinimalExample.pdf -------------------------------------------------------------------------------- /IfYouWantToContribute/Week 1/L4W1_ProgrammingIsAppliedFormalLogic.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JuliaAcademy/JuliaProgrammingForNervousBeginners/HEAD/IfYouWantToContribute/Week 1/L4W1_ProgrammingIsAppliedFormalLogic.pdf -------------------------------------------------------------------------------- /Course Notes/Week 4/README.md: -------------------------------------------------------------------------------- 1 | ## Week 4 2 | 3 | In this final week, you get to see some creativity and play in action, as promissed in Lesson 4 of Week 1. 4 | 5 | That takes up the first three lessons, and then there's a fourth lesson with no new Julia material, but rather just offering a moment of reflection. 6 | 7 | ## Lesson videos for Week 4 8 | 9 | [Lesson 1](https://www.youtube.com/watch?v=1U3h6Tb0i78&list=PLP8iPy9hna6Qpx0MgGyElJ5qFlaIXYf1R&index=22) 10 | 11 | [Lesson 2](https://www.youtube.com/watch?v=PerqyXWdRJQ&list=PLP8iPy9hna6Qpx0MgGyElJ5qFlaIXYf1R&index=23) 12 | 13 | [Lesson 3](https://www.youtube.com/watch?v=Z43TRLsWRs8&list=PLP8iPy9hna6Qpx0MgGyElJ5qFlaIXYf1R&index=24) 14 | 15 | [Lesson 4](https://www.youtube.com/watch?v=v3aPcIrXWZQ&list=PLP8iPy9hna6Qpx0MgGyElJ5qFlaIXYf1R&index=25) 16 | -------------------------------------------------------------------------------- /Course Notes/Week 2/README.md: -------------------------------------------------------------------------------- 1 | ## Week 2 Notes 2 | 3 | This week has six lessons. The material is still very basic, in line with the slogans "Small Steps" and "Nothing Left Out", but the special features of Julia will be clearly revealed. 4 | 5 | ### Links to week 2 lesson videos 6 | 7 | [Lesson 1](https://www.youtube.com/watch?v=Ums8TvvBd48&list=PLP8iPy9hna6Qpx0MgGyElJ5qFlaIXYf1R&index=11) 8 | 9 | [Lesson 2](https://www.youtube.com/watch?v=GHWfIz5s7uY&list=PLP8iPy9hna6Qpx0MgGyElJ5qFlaIXYf1R&index=12) 10 | 11 | [Lesson 3](https://www.youtube.com/watch?v=wVSoKw3abaU&list=PLP8iPy9hna6Qpx0MgGyElJ5qFlaIXYf1R&index=13) 12 | 13 | [Lesson 4](https://www.youtube.com/watch?v=D9zqoB2b1SI&list=PLP8iPy9hna6Qpx0MgGyElJ5qFlaIXYf1R&index=14) 14 | 15 | [Lesson 5](https://www.youtube.com/watch?v=ULgawRM-4nU&list=PLP8iPy9hna6Qpx0MgGyElJ5qFlaIXYf1R&index=15) 16 | 17 | [Lesson 6](https://www.youtube.com/watch?v=ZLACmxWXiy8&list=PLP8iPy9hna6Qpx0MgGyElJ5qFlaIXYf1R&index=16) 18 | -------------------------------------------------------------------------------- /Course Notes/Week 3/README.md: -------------------------------------------------------------------------------- 1 | ## Week 3 2 | 3 | The five lessons of this week complete your study of basic Julia. At the end of it, you should have the basics of functions, multiple dispatch, branching, and iteration. These should give you an excellenyt starting platform for writing Julia code. 4 | 5 | 6 | #### Of course, this is in addition to being able to write valid expressions in Julia, write your code in plain text files and run them, and debugging your code. 7 | 8 | ## Links the Week 3 lesson videos 9 | 10 | [Lesson 1](https://www.youtube.com/watch?v=ICMWs31Ky80&list=PLP8iPy9hna6Qpx0MgGyElJ5qFlaIXYf1R&index=17) 11 | 12 | [Lesson 2](https://www.youtube.com/watch?v=CTscZ5zEfQM&list=PLP8iPy9hna6Qpx0MgGyElJ5qFlaIXYf1R&index=18) 13 | 14 | [Lesson 3](https://www.youtube.com/watch?v=IciH1VQquzA&list=PLP8iPy9hna6Qpx0MgGyElJ5qFlaIXYf1R&index=19) 15 | 16 | [Lesson 4](https://www.youtube.com/watch?v=Xdu7g-Jx_08&list=PLP8iPy9hna6Qpx0MgGyElJ5qFlaIXYf1R&index=20) 17 | 18 | [Lesson 5](https://www.youtube.com/watch?v=jQnMrZGWeQA&list=PLP8iPy9hna6Qpx0MgGyElJ5qFlaIXYf1R&index=21) 19 | -------------------------------------------------------------------------------- /IfYouWantToContribute/README.md: -------------------------------------------------------------------------------- 1 | # Welcome, potential contributor! 2 | 3 | Three kinds of contributions are needed: 4 | 5 | 1. Exercises 6 | 2. Self-assessments 7 | 3. Ancillary materials 8 | 9 | ## Contributing exercises 10 | 11 | Please keep in mind the target audience: people who are hesitant about learning to program. Each exercise must be short, doable, and appropriate. 12 | 13 | That said, any and all suggestions will be considered. Please do not be offended if your pull request is not added! 14 | 15 | ## Self-assessments 16 | 17 | After each lesson (well, except those that do not teach any new Julia programming), a short self-assessment in the form of a few multiple-choice questions is required. There could even be several of these per lesson; each student will decide for themselves how many to do, after all. 18 | 19 | ## Ancillary materials 20 | 21 | * Cheat sheets are usually very condensed. We are really unsure what sort of cheat sheet would work best for code-hesitant people, so your ideas would be welcome. 22 | * Short projects appropriate at various stages. Please keep these text-focussed, if possible. 23 | * Something like an ANKI deck (or several) would be a very interesting contribution. 24 | * And of course ideas we've missed. 25 | -------------------------------------------------------------------------------- /Course Notes/Week 1/README.md: -------------------------------------------------------------------------------- 1 | ## Week 1 Notes 2 | 3 | Start of the course! 4 | 5 | There are nine lesson pdfs, and all are essential. We strongly recommend that you do them in order (`L1W1_MinimalWorkingExample.pdf` is the first). 6 | 7 | At the end of this week (which of course might take you longer or shorter than a calendar week to work through) you should have a working knowledge of the Julia REPL, an understanding that programming is *expressive use* of a *formal language* via *applied formal logic*, and be well placed for starting to code in Julia. 8 | 9 | ### Video links to lessons 10 | [Lesson 1](https://www.youtube.com/watch?v=L0TDqQCHigg&list=PLP8iPy9hna6Qpx0MgGyElJ5qFlaIXYf1R&index=2) 11 | 12 | [Lesson 2](https://www.youtube.com/watch?v=60pReAo0kL0&list=PLP8iPy9hna6Qpx0MgGyElJ5qFlaIXYf1R&index=3) 13 | 14 | [Lesson 3](https://www.youtube.com/watch?v=fSxJ0rdrpeY&list=PLP8iPy9hna6Qpx0MgGyElJ5qFlaIXYf1R&index=4) 15 | 16 | [Lesson 4](https://www.youtube.com/watch?v=ZuALresPQY4&list=PLP8iPy9hna6Qpx0MgGyElJ5qFlaIXYf1R&index=5) 17 | 18 | [Lesson 5](https://www.youtube.com/watch?v=JuJGBx1EBkQ&list=PLP8iPy9hna6Qpx0MgGyElJ5qFlaIXYf1R&index=6) 19 | 20 | [Lesson 6](https://www.youtube.com/watch?v=dJ4PnBXkzXI&list=PLP8iPy9hna6Qpx0MgGyElJ5qFlaIXYf1R&index=7) 21 | 22 | [Lesson 7](https://www.youtube.com/watch?v=LLpeFe0OaiY&list=PLP8iPy9hna6Qpx0MgGyElJ5qFlaIXYf1R&index=8) 23 | 24 | [Lesson 8](https://www.youtube.com/watch?v=plSsEoRojr0&list=PLP8iPy9hna6Qpx0MgGyElJ5qFlaIXYf1R&index=9) 25 | 26 | [Lesson 9](https://www.youtube.com/watch?v=xIJJ-dcVBpQ) 27 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Julia Programming for Nervous Beginners 2 | 3 | A course for people who have never programmed and who are unsure whether they are suited to programming. 4 | 5 | We are guided by three slogans: 6 | 7 | - #### Small Steps 8 | - #### No Gaps (Nothing Left Out) 9 | - #### Everything Makes Sense 10 | 11 | ### Why Julia? 12 | 13 | Mainly because we love it, but we also think that Julia is well suited to the very slow exposition we use. On this course, we want to be as explicit as possible (hence, the slogan "Nothing Left Out") and also as reasonable as possible ("Everything Makes Sense"). Julia allows one to write code that is easily understood but also powerful (in the sense of very few lines of code per useful outcome) AND it also allows one to write code that is very detailed (that is, you aren't forced to use high-level functions that cannot be inspected). This makes it easy to give simple examples -- note that our examples are primarily text rather than arithmetic -- while at times delving into details. 14 | 15 | Of course, this ability to combine powerful and compact code with high levels of detailed programming is one of the reasons why Julia can be used for development as well as production. Put another way, it can be used for rapid prototyping and then deployed in very large projects with little or no change to the code. Perhaps, even more important is the high frequency of code re-use all over Julia, even across apparently unrelated projects, but that is an advanced topic beyond the scope of this course. 16 | 17 | For now, the course consists of two sources: the [video material on YouTube](https://www.youtube.com/playlist?list=PLP8iPy9hna6Qpx0MgGyElJ5qFlaIXYf1R) 18 | and the lesson notes in the Course Notes folder. Four weeks of lessons, one video and one pdf per lesson. Of course, you do not need to do the whole course in exactly four weeks; take more or less time, as you prefer or need to. 19 | 20 | In due course, we also hope to make available exercises and other materials (assessments? ANKI decks?). 21 | 22 | ## BEFORE YOU START 23 | 24 | We are aware that nervous beginners might not be confident they can dive right in. To make sure that you are ready to start Lesson 1 of Week 1, we have included `BeforeYouStartThisCourse.pdf` here (that is, it is not part of Course Material) and of course [it has a video also](https://www.youtube.com/watch?v=ub3tqCWZmo4&list=PLP8iPy9hna6Qpx0MgGyElJ5qFlaIXYf1R). Even if you are confidently ready to do this course, it would be a good idea to open the document (it's in the list at the top of this screen) as well as the video, so that you can see how we coordinate the text and the video presentations on this course. 25 | 26 | 27 | ### COLLABORATION 28 | 29 | We would love your participation (see IfYouWantToContribute subdirectory). If you have any suggestions, just submit a pull request! 30 | --------------------------------------------------------------------------------