Skip to content

Commit c579b9d

Browse files
committed
add courses
1 parent 818e2d8 commit c579b9d

18 files changed

Lines changed: 184 additions & 45 deletions

_config.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -142,7 +142,7 @@ newsletter:
142142
# -----------------------------------------------------------------------------
143143

144144
collections:
145-
books:
145+
courses:
146146
output: true
147147
news:
148148
defaults:
@@ -251,7 +251,7 @@ jekyll-archives:
251251
year: "/blog/:year/"
252252
tags: "/blog/:type/:name/"
253253
categories: "/blog/:type/:name/"
254-
books:
254+
courses:
255255
enabled: [year, tags, categories] # enables year, tag and category archives (remove if you need to disable one of them).
256256

257257
display_tags: ["formatting", "images", "links", "math", "code", "blockquotes"] # these tags will be displayed on the front page of your blog

_courses/comm_cs.md

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
---
2+
layout: course-page
3+
course_num: COMP_SCI 396
4+
title: COMP_SCI 396 - Communicating Computer Science
5+
cover: assets/img/course_logos/comm_cs.png
6+
#olid: OL43499941M # use Open Library ID to fetch cover (if no `cover` is provided)
7+
#isbn: 7539967447 # use ISBN to fetch cover (if no `olid` is provided, dashes are optional)
8+
#categories: classics crime historical-fiction mystery novels thriller
9+
tags: seminar majors
10+
#buy_link: https://www.amazon.com/Godfather-Deluxe-Mario-Puzo/dp/0593542592
11+
#date: 2024-08-23
12+
#started: 2024-08-23
13+
#finished: 2024-09-07
14+
#released: 1969
15+
#stars: 5
16+
#goodreads_review: 6318556633
17+
status: current
18+
---
19+
20+
In this class we will work together to a) examine how people in the real world communicate about computer science and b) practice how we might communicate computational ideas to various members of the public. The core idea is to explore cultural, practical, and policy-related roles of computer science communication in wider society.
21+
22+
We'll talk about how to communicate to various audiences (e.g. general public; press; policy makers; academics; etc.) and do a number of practical assignments that help us practice our communication skills in various formats (i.e. talks; classes; interviews; etc.). Much of the class will be centered on reading, watching, and critiquing existing computing-related materials (e.g. magazine/newspaper articles; TED Talks; media interviews; etc.). Other assignments will be more practice focused with idea that each student will be able to select both the types of communication (e.g. spoken; written; YouTube video; etc.) and content (e.g. cryptocurrency; quantum computing; etc.) that are of interest to them for most assignments.
23+
24+
## Course Goals
25+
26+
This course would be ideal for students interested in:
27+
28+
* Communicating your own research to both academic and non-academic audiences
29+
* Working in public outreach to spread awareness of CS
30+
* Thinking about how we might inform policymakers of ideas in CS that have cultural and legal significance

_courses/cs110.md

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
---
2+
layout: course-page
3+
course_num: COMP_SCI 110
4+
title: COMP_SCI 110 - Introduction to Computer Programming
5+
cover: assets/img/course_logos/cs110_logo.png
6+
#olid: OL43499941M # use Open Library ID to fetch cover (if no `cover` is provided)
7+
#isbn: 7539967447 # use ISBN to fetch cover (if no `olid` is provided, dashes are optional)
8+
#categories: classics crime historical-fiction mystery novels thriller
9+
tags: intro non-majors
10+
#buy_link: https://www.amazon.com/Godfather-Deluxe-Mario-Puzo/dp/0593542592
11+
#date: 2024-08-23
12+
#started: 2024-08-23
13+
#finished: 2024-09-07
14+
#released: 1969
15+
#stars: 5
16+
#goodreads_review: 6318556633
17+
status: current
18+
---
19+
20+
CS 110 is meant as an introduction to the key ideas of computer programming and assumes no prior programming knowledge. In this course, we’ll use the programming language Python with two goals: first, we want to give you a sense of the kinds of creative activities, both directed problem-solving and creative pursuits, that programming can support; and two, we want to introduce you to the fundamental constructs (and associated skills and techniques) of computer programming.
21+
22+
Programming is a powerful medium for creative expression: it can be a representational medium, a tool for thinking about problems, a way of amplifying and/or communicating ideas, a means of performing complex calculations over massive datasets, and more. Being a computer scientist is not a prerequisite for creating useful or advanced programs. In fact, most people who write computer programs are not computer scientists, but rather people who occupy a range of professions. Journalists, geographers, sociologists, scientists, artists, musicians, entrepreneurs, researchers, etc., use programming languages to accomplish diverse and specialized goals. And as data and computing increasingly influence and perfuse modern life, understanding the mechanisms (and risks!) that underlie these systems is a valuable modern literacy that is likely to serve you well.
23+
24+
The second goal of the course is to introduce you to the fundamental constructs of computer programming and how to apply these low-level constructs in creative and useful ways. Learning a programming language is not dissimilar to learning a new spoken/written language–first, you need to understand basic rules like grammar and syntax, then you need exemplar buildings blocks like adjectives, nouns, and prepositions, and only then can you use these ideas together to create computer programs. What this means is that you must dedicate enough time to practicing the basics in order to allow yourself to progressively move to more and more complex programming practice.
25+
26+
Taking this course means committing — for 10 weeks — to attending lectures, tutorials, and office hours, turning in assignments / projects, doing (lots of) practice problems, and most importantly, persevering when things get difficult. Asking questions throughout the class is not a sign of weakness–it shows that you are actively trying to understand what you know and what you do not know. We have an excellent staff of teaching assistants and peer mentors who are here to answer your questions, help you understand course material in different ways, and push you to your fullest learning potential. With your consistent and active participation in learning, you can navigate the material in the course and become a proficient programmer by the end of the quarter.

_courses/cs111.md

Lines changed: 48 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,48 @@
1+
---
2+
layout: course-page
3+
title: COMP_SCI 111 - Fundamentals of Computer Programming I
4+
cover: assets/img/course_logos/cs111_logo.png
5+
course_num: COMP_SCI 111
6+
#olid: OL43499941M # use Open Library ID to fetch cover (if no `cover` is provided)
7+
#isbn: 7539967447 # use ISBN to fetch cover (if no `olid` is provided, dashes are optional)
8+
#categories: classics crime historical-fiction mystery novels thriller
9+
tags: intro major
10+
#buy_link: https://www.amazon.com/Godfather-Deluxe-Mario-Puzo/dp/0593542592
11+
#date: 2024-08-23
12+
#started: 2024-08-23
13+
#finished: 2024-09-07
14+
#released: 1969
15+
#stars: 5
16+
#goodreads_review: 6318556633
17+
status: current
18+
---
19+
20+
21+
This is an introductory course on the fundamentals of computer science. This class is meant to allow students to explore many of the core concepts of computer science (CS) and serves as the first course in core sequence at Northwestern. It is specifically designed to be open to students of **all** backgrounds and does not expect **any** computer science knowledge or prior programming experience.
22+
23+
> **This is not a software engineering course.**
24+
>
25+
> Please note that if you are looking to learn a specific programming language (i.e. "learn how to code in Python"), please consider registering for [COMP_SCI 110](https://www.mccormick.northwestern.edu/computer-science/academics/courses/descriptions/110.html) instead. While this course is certainly "an introduction to programming", it is first and foremost an introduction to core CS concepts. We use programming as _a means to understand and implement these concepts_ rather than simply learning a single programming language. The ideas we talk about in this class apply to **all programming languages** and set the basis for you to be able to quickly pick up new programming languages throughout your future studies in CS.
26+
27+
This course uses the [Racket](https://racket-lang.org) programming language, specifically two dialects designed to help students learn to program called the Intermediate Student Language with Lambda (ISL+) and the Advanced Student Language (ASL), and its associated Integrated Development Environment (IDE) [DrRacket](https://docs.racket-lang.org/drracket/) as its main programming tools.
28+
29+
The main goal in this course is _to learn how to **design** and **reason** about programs_.
30+
31+
The **reasoning** part matters because programs never work the first time. So you need to be able to figure what it's really doing and why, then change it to do what you want. Programmers are first and foremost detectives and diagnosticians. We're doctors trying to understand why our patients are sick.
32+
33+
The **design** part matters because the only way you'll be able to reason about it is if you design it in a way that makes it easy for humans to understand, whether said human is your future self trying to add a new feature, or someone else who's taken over the project and is now trying to understand your code.
34+
35+
Beyond this main goal, the course has a number of interwoven learning objectives. Students will work to understand:
36+
37+
* **Composition** (literally "placing together"): algorithms and data are built up by joining simple components into more complex ones.
38+
* **Abstraction**: Complex arrangements can be reproduced and used as if they were simple components.
39+
* **Metaprogramming**: Programs can be used to aid the process of programming itself.
40+
* **Programmability and universality**: Computers are unique artifacts in that a single device can perform an infinite set of possible functions, including emulating other computers.
41+
* _Programming as a **psychological** discipline_: Programming is more about the limits of human intelligence than about memorizing bits of code.
42+
* _Programming as an **aesthetic** discipline_: Code can be beautiful; it can also be ugly. Those distinctions have real consequences in the world.
43+
44+
Programming is a powerful medium for creative expression. It can be a representational medium, a tool for thinking about problems, a way of amplifying and/or communicating ideas, a means of performing complex calculations over massive datasets, and more. Being a computer scientist is **not** a prerequisite for creating useful or advanced programs. In fact, most people who write computer programs are not computer scientists, but rather people who occupy a range of professions. Journalists, geographers, sociologists, scientists, artists, musicians, entrepreneurs, researchers, etc., use programming languages to accomplish diverse and specialized goals. And as data and computing increasingly influence and perfuse modern life, understanding the mechanisms (and risks!) that underlie these systems is a valuable modern literacy that is likely to serve you well.
45+
46+
Learning to program is not dissimilar to learning a new spoken/written language–first, you need to understand basic rules like grammar and syntax, then you need exemplar buildings blocks like adjectives, nouns, and prepositions, and only then can you use these ideas together to create computer programs. What this means is that you **must** dedicate enough time to practicing the basics in order to allow yourself to progressively move to more and more complex programming practice.
47+
48+
Taking this course means committing—for 11 weeks—to attending lectures, tutorials, and office hours, turning in assignments, practicing your programming skills, and most importantly, persevering when things get difficult. Asking questions throughout the class is not a sign of weakness. It shows that you are actively trying to understand what you know and what you do not know. We have an excellent staff of teaching assistants and peer mentors who are here to answer your questions, help you understand course material in different ways, and push you to your fullest learning potential. With your consistent and _active_ participation in learning, you can navigate the material in the course and become a proficient programmer by the end of the quarter.

_courses/cs372.md

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
---
2+
layout: course-page
3+
course_num: COMP_SCI + LRN_SCI 372/472
4+
title: COMP_SCI 372 - Designing and Constructing Models with Multi-agent Languages
5+
cover: assets/img/course_logos/cs372_logo.png
6+
#olid: OL43499941M # use Open Library ID to fetch cover (if no `cover` is provided)
7+
#isbn: 7539967447 # use ISBN to fetch cover (if no `olid` is provided, dashes are optional)
8+
#categories: classics crime historical-fiction mystery novels thriller
9+
tags: upper-level CS+LS modeling
10+
#buy_link: https://www.amazon.com/Godfather-Deluxe-Mario-Puzo/dp/0593542592
11+
#date: 2024-08-23
12+
#started: 2024-08-23
13+
#finished: 2024-09-07
14+
#released: 1969
15+
#stars: 5
16+
#goodreads_review: 6318556633
17+
status: current
18+
---
19+
20+
This course focuses on the exploration, construction and analysis of multi-agent models. Sample models from a variety of content domains are explored and analyzed. Spatial and network topologies are introduced. The prominent agent-based frameworks are covered as well as methodology for replicating, verifying and validating agent-based models. We use state of the art ABM and complexity science tools. This course can help satisfy the project course and artificial intelligence area course requirement for CS and CIS majors, and satisfy the breadth requirement in artificial intelligence for Ph.D. students in CS. It also satisfies a design course requirement for Learning Sciences graduate students, counts towards the Cognitive Science specialization and as an advanced elective for the Cognitive Science major.

_courses/teach_cs.md

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
---
2+
layout: course-page
3+
course_num: COMP_SCI 396/496
4+
title: COMP_SCI 396/496 - Pedagogical Design in CS
5+
cover: assets/img/course_logos/teach_cs.png
6+
#olid: OL43499941M # use Open Library ID to fetch cover (if no `cover` is provided)
7+
#isbn: 7539967447 # use ISBN to fetch cover (if no `olid` is provided, dashes are optional)
8+
#categories: classics crime historical-fiction mystery novels thriller
9+
tags: seminar CS+LS
10+
#buy_link: https://www.amazon.com/Godfather-Deluxe-Mario-Puzo/dp/0593542592
11+
#date: 2024-08-23
12+
#started: 2024-08-23
13+
#finished: 2024-09-07
14+
#released: 1969
15+
#stars: 5
16+
#goodreads_review: 6318556633
17+
status: current
18+
---
19+
20+
How do people learn? It’s a question we spend a surprisingly little amount of time interrogating given how much time we all spend learning. While we may be expert learners – how do these skills translate to creating learning experiences for others? Does the expertise we gain as learners assist and/or hinder our ability to design learning experiences for others?
21+
22+
In this course, we’ll learn, practice, and put into action the skills necessary to analyze, design, develop, implement, and evaluate instructional materials in computer science. We’ll explore theories of learning and pedagogy as well as in situ research from the learning sciences and computer science education to develop our own understanding of a powerful learning experience. The end goal of the course will be the design of your own learning experience for some computer science topic of your choosing. While these learning experiences will differ greatly based on student interest, all projects will engage in the design and implementation of 1. Synchronous activities (“in-class”); 2. Asynchronous activities (“Out-of-class”); 3. Assessment (e.g. auto graded activities); and 4. An Evaluation plan to assess the outcomes of the learning experience.
23+
24+
The course will be seminar style meaning students will need to prepare for class by either reading assigned articles, trying out various educational software, or perhaps reflecting on your own learning experiences. In-class time will be mostly spent on activities and discussions putting work from the readings / pre-class activities into practice. This means attendance is a crucial part of the course, with in-class activities being just as important as out-of-class work.
Lines changed: 1 addition & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -107,17 +107,15 @@ layout: default
107107
{% if page.cover %}
108108
<img class="empty-review-cover" alt="{{ page.title }} cover" src="{{ site.baseurl }}/{{ page.cover }}">
109109
<figcaption class="empty-review-caption">
110-
Cover of <em>{{ page.title }}</em>
110+
111111
</figcaption>
112112
{% elsif page.olid %}
113113
<img class="empty-review-cover" alt="{{ page.title }} cover" src="http://covers.openlibrary.org/b/olid/{{ page.olid }}-L.jpg?default=false">
114114
<figcaption class="empty-review-caption">
115-
Cover of <em>{{ page.title }}</em> on the <a href="https://openlibrary.org/olid/{{ page.olid }}">Open Library</a>.
116115
</figcaption>
117116
{% elsif page.isbn %}
118117
<img class="empty-review-cover" alt="{{ page.title }} cover" src="http://covers.openlibrary.org/b/isbn/{{ page.isbn }}-L.jpg?default=false">
119118
<figcaption class="empty-review-caption">
120-
Cover of <em>{{ page.title }}</em> on the <a href="https://openlibrary.org/isbn/{{ page.isbn }}">Open Library</a>.
121119
</figcaption>
122120
{% endif %}
123121
</figure>
@@ -130,17 +128,14 @@ layout: default
130128
{% if page.cover %}
131129
<img alt="{{ page.title }} cover" src="{{ site.baseurl }}/{{ page.cover }}">
132130
<figcaption>
133-
Cover of <em>{{ page.title }}</em>
134131
</figcaption>
135132
{% elsif page.olid %}
136133
<img alt="{{ page.title }} cover" src="http://covers.openlibrary.org/b/olid/{{ page.olid }}-L.jpg?default=false">
137134
<figcaption>
138-
Cover of <em>{{ page.title }}</em> on the <a href="https://openlibrary.org/olid/{{ page.olid }}">Open Library</a>.
139135
</figcaption>
140136
{% elsif page.isbn %}
141137
<img alt="{{ page.title }} cover" src="http://covers.openlibrary.org/b/isbn/{{ page.isbn }}-L.jpg?default=false">
142138
<figcaption>
143-
Cover of <em>{{ page.title }}</em> on the <a href="https://openlibrary.org/isbn/{{ page.isbn }}">Open Library</a>.
144139
</figcaption>
145140
{% endif %}
146141
</figure>
Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ layout: page
1313
</ul>
1414
{% endunless %}
1515
<h1 id="y{{item.date | date: "%Y"}}">
16-
<a href="{{ current_year | prepend: '/books/' | relative_url }}">{{ current_year }}</a>
16+
<!--<a href="{{ current_year | prepend: '/courses/' | relative_url }}">{{ current_year }}</a>-->
1717
</h1>
1818
<ul>
1919
{% assign year = current_year %}
@@ -34,10 +34,10 @@ layout: page
3434
{% if statuses contains status %}
3535
<figcaption class="{{ status | downcase }}">{{ status | upcase }}</figcaption>
3636
{% else %}
37-
<figcaption class="uncategorized">UNCATEGORIZED</figcaption>
37+
<figcaption class="uncategorized">{{ item.course_num }}</figcaption>
3838
{% endif %}
3939
{% else %}
40-
<figcaption class="uncategorized">UNCATEGORIZED</figcaption>
40+
<figcaption class="uncategorized">{{ item.course_num }}</figcaption>
4141
{% endif %}
4242
</a>
4343
</figure>

_pages/courses.md

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
---
2+
layout: course-shelf
3+
title: courses
4+
permalink: /courses/
5+
nav: true
6+
nav_order: 3
7+
collection: courses
8+
---

_pages/dropdown.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,8 @@ nav: false
55
nav_order: 8
66
dropdown: true
77
children:
8-
#- title: bookshelf
9-
# permalink: /books/
8+
- title: courses
9+
permalink: /courses/
1010
#- title: divider
1111
#- title: blog
1212
# permalink: /blog/

0 commit comments

Comments
 (0)