You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: _courses/cs110.md
+1-1Lines changed: 1 addition & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -23,4 +23,4 @@ Programming is a powerful medium for creative expression: it can be a representa
23
23
24
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
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.
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.
Copy file name to clipboardExpand all lines: _courses/cs111.md
+6-7Lines changed: 6 additions & 7 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -17,7 +17,6 @@ tags: intro major
17
17
status: current
18
18
---
19
19
20
-
21
20
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
21
23
22
> **This is not a software engineering course.**
@@ -34,12 +33,12 @@ The **design** part matters because the only way you'll be able to reason about
34
33
35
34
Beyond this main goal, the course has a number of interwoven learning objectives. Students will work to understand:
36
35
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.
36
+
-**Composition** (literally "placing together"): algorithms and data are built up by joining simple components into more complex ones.
37
+
-**Abstraction**: Complex arrangements can be reproduced and used as if they were simple components.
38
+
-**Metaprogramming**: Programs can be used to aid the process of programming itself.
39
+
-**Programmability and universality**: Computers are unique artifacts in that a single device can perform an infinite set of possible functions, including emulating other computers.
40
+
-_Programming as a **psychological** discipline_: Programming is more about the limits of human intelligence than about memorizing bits of code.
41
+
-_Programming as an **aesthetic** discipline_: Code can be beautiful; it can also be ugly. Those distinctions have real consequences in the world.
43
42
44
43
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.
Copy file name to clipboardExpand all lines: _pages/about.md
+2-2Lines changed: 2 additions & 2 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -29,8 +29,8 @@ latest_posts:
29
29
30
30
Hello world! I'm a Teaching Professor in the Department of Computer Science at Northwestern University.
31
31
32
-
My research lies at the intersection of computer science and the learning sciences and focuses on 1. cognitive studies of computer science learners; 2. teacher learning and practice (specifically pedagogical content knowledge); 3. agent-based modeling in educational contexts. I often advise undergraduate, masters, and doctoral research projects adjacent to these areas in addition to those focused on computer science education, teacher professional development, and AI in education.
32
+
My research lies at the intersection of computer science and the learning sciences and focuses on 1. cognitive studies of computer science learners; 2. teacher learning and practice (specifically pedagogical content knowledge); 3. agent-based modeling in educational contexts. I often advise undergraduate, masters, and doctoral research projects adjacent to these areas in addition to those focused on computer science education, teacher professional development, and AI in education.
33
33
34
-
In the CS Department at NU, I teach both at the intro and upper-level but specialize in large course coordination. My COMP_SCI 111 Fundamentals of Computer Programming I course routinely has 400+ engineering and other STEM major students enrolled while COMP_SCI 110 Introduction to Computer Programming usually has around 300 students from majors across the university. My upper-level seminar courses tend to focus on CS Pedagogy, communication, and cognitive aspects of computer science education. As a CS+LS Affiliate faculty member, I often teach courses cross listed in both departments like COMP_SCI & LRN_SCI 372/472.
34
+
In the CS Department at NU, I teach both at the intro and upper-level but specialize in large course coordination. My COMP_SCI 111 Fundamentals of Computer Programming I course routinely has 400+ engineering and other STEM major students enrolled while COMP_SCI 110 Introduction to Computer Programming usually has around 300 students from majors across the university. My upper-level seminar courses tend to focus on CS Pedagogy, communication, and cognitive aspects of computer science education. As a CS+LS Affiliate faculty member, I often teach courses cross listed in both departments like COMP_SCI & LRN_SCI 372/472.
35
35
36
36
Since 2025, I've also served as the Faculty Chair of Willard Residential College (Northwestern's largest and most storied residential college).
0 commit comments