CSCI 252: Neuromorphic Computing

CSCI 252: Neuromorphic Computing


General Information


 

Textbook: There is no required textbook for this course. In my experience, textbooks on this topic are either (1) very expensive; (2) unnecessarily mathematical; (3) incomplete; or (4) some combination of the above. We will rely instead on primary source material – both classic and contemporary – available online.

For those interested in a lively introduction to neuroscience, I recommend David E. Presti’s book. The lecture notes on Self-Organizing Maps and the Hopfield Network come from Judith Dayhoff’s excellent (but unfortunately out-of-print) introductory textbook. For the final topic in our course (biologically realistic modeling) I will be drawing heavily from Chris Eliasmith’s How to Build a Brain.


Course Objectives

By the end of the course you will be able to

    1. Explain the history of neural network research and critique arguments for and against neural networks, both practical and theoretical.
    2. Implement popular neural-network algorithms in Python.
    3. Look at a computational problem and determine whether / which one of these approaches is appropriate for solving it.
    4. Describe the goals of neuromorphic hardware movement and write programs for simple neuromorphic devices.

We will take an “architecture-of-the-week” survey approach to the material, attempting to cover one kind of neural net each week.

CSCI 252 will not cover the currently hot field of Deep Learning, for which we offer another course. CSCI 252 will however serve as excellent preparation in the skills and concepts used in the more advanced course.


Professionalism

At this point in your CS career you probably realize that what matters most is the quality of the work (software) you create and the impression you make as a serious student and software professional. Hence:

  • If your code produces a syntax error or fatal runtime error in Python you’ll get a zero on that part of the assignment, as well as any other parts that depend on that program.
  • No late work will be accepted, or make-up exams given, without a note from the Dean’s office. You will get no credit for an assignment emailed to me, or submitted through anything other than github.

The best way to avoid the “But the program worked when I ran it!” problem is to submit your code early to github, clone it from github into an empty folder, and run it yourself.


Policy on use of AI

Please don’t use ChatGPT or other AI tools for completing the assignments in this course.  You are welcome to use standard pro-tip sites like stackoverflow.com; better yet, ask me for help.


Grading

  • Programming assignments, submitted through github. Though there is no official lab for this course, you will spend much of your time programming (50%).
  • Two one-hour in-class exams (30%).
  • Comprehensive final exam, during exam week (20%)

These percentages are flexible. If you have a bad day and don’t do well on an exam or assignment, I will try and weight your other work more heavily.

The grading scale will be 93-100 A; 90-92 A-; 87-89 B+; 83-86 B; 80-82 B-; 77-79 C+; 73-76 C; 70-72 C-; 67-69 D+; 63-66 D; 60-62 D-; below 60 F.


Honor System

The exams will be done without books or notes and without assistance from other people. You can discuss your programming assignments with other students in the class, but you should not share code. Talk to me before asking another student for help!


Final Exam

The final exam for this course will be given during the final exam week. The exam will be distributed electronically for you to complete in no more than three hours. You can return the exam to me via github


Accommodations

Washington and Lee University makes reasonable academic accommodations for qualified students with disabilities. All undergraduate accommodations must be approved through the Title IX Coordinator and Director of Disability Resources, Elrod Commons 212, (540) 458-4055. Students requesting accommodations for this course should present an official accommodation letter within the first two weeks of the term and schedule a meeting outside of class time to discuss accommodations. It is the student’s responsibility to present this paperwork in a timely fashion and to follow up about accommodation arrangements. Accommodations for test-taking must be arranged with the professor at least a week before the date of the test or exam, including finals.


Programming assignments

Programming assignments should be submitted to the private repository I have set up for you on github, using a separate folder for each assignment.  Your repository name  is https://github/com/simondlevy/<username>, where <username> is your W&L network user name (for example, smithj22).  Each assignment is due 11:59 PM on the day posted in the schedule below.

The computers in the CS Department should all have NumPy and matplotlib installed, but I encourage you install them your laptop or home computer and work on these assignments anywhere you like. Experience has taught me that the students who do best in this course are the ones who start the assignments early and take advantage of office hours for help.


Policy on use of AI

Please don’t use ChatGPT or other AI tools for completing the assignments in this course.  You are welcome to use standard pro-tip sites like stackoverflow.com; better yet, ask me for help.


Tentative Schedule of Lectures and Exams

Monday

Tuesday

Wednesday

Thursday

Friday

3-5 Sep
Week 0
Introductory VideoCourse Overview;
Philosophical FoundationsReading: Dragonfly Brains (2021)
10-12 Sep
Week 1
Reading: The Appeal of Parallel Distributed Processing (1986)Lecture Notes Dot Product Lecture Notescosine.pyeucdist.py
17-19 Sep Week 2 Architecture #1: Kohonen’s Self-Organizing MapDue: Assignment #1Guest lecture by Dr. Catherine Schuman Lecture notesReading: Törmä 1994Kohonen SOM, continuedReading: Zhao, Li, Kohonen 2010Lecture notes
24-26-Sep
Week 3
Architecture #2: The Hopfield NetworkLecture notesReading: Hopfield 1982 Reading: Hopfield & Tank 1985

Hopfield Networks is All You Need

Due: Assignment #2
1-3 Oct
Week 4
Architecture #3: Sparse Distributed MemoryLecture notesReading: Denning 1989 Lecture notesReading: Denning 1989Pre-exam review
8-10 Oct
Week 5
  In-class Exam #1 Reading Day; no class
15-17 Oct
Week 6
Post-exam review Architecture #5: Latent Semantic AnalysisLecture NotesReading: Landauer & Dumais (1997) Due: Assignment #3
22-24  Oct
Week 7
Architecture #6: Tensor ProductsReading: Smolensky 1990Lecture Notes Tensor Products (continued)Reading: Gayler (2003)
29-31 Oct
Week 8
  Tensor Products IIReading: Kanerva 2008Due: Assignment #4 Quantum Computing guest lecture by Tom Marcais
5-7  Nov
Week 9
In-class Exam #2 Architecture #7: Biologically realistic neural networksReadings:Eliasmith et al. 2012Stewart 2012NEF Lecture notes Due: Assignment #5
12-14 Nov
Week 10
NEF NEF
19-21  Nov
Week 11
SPA: Lecture notes
3-5 Dec
Week 12
Group Exercise: Nengo Group Exercise:            Event Cameradvs-client.zipReview for final exam