An introduction to neural networks from biological and machine learning perspectives. Focuses on neural networks for classification and regression involving large image and text datasets. Topics include fundamental design principles; supervised and unsupervised learning; fully connected and convolutional networks; transfer learning. Students obtain hands-on experience implementing and analyzing the neural networks covered each week in regular projects that explore different application areas.

Semester Fall 2023
Credits 4
Times & Locations

MW 2:30 - 3:45 pm
Davis 117

Instructor Oliver W. Layton
Office: Davis 115
Office hours: Here are my weekly office hours. Please reach out — I would like to get to know you!
  M  11:00am-12:00pm (Office)
  T   1:00pm-2:00pm (Office)
  W  11:00am-12:00pm (Office)
  W  4:00pm-5:00pm (Office)
  R  1:30pm-4:00pm (Davis 122)

For any Zoom office hours, use the link posted on Google Classroom.

Course Goals
  1. Students understand mathematical and/or computational neural models and can implement them to perform simulations.
  2. Students understand how to interpret and analyze the outputs of neural network model simulations.
  3. Students understand how different neural network architectures affect pattern processing, learning, and memory.
  4. Students appreciate the biological underpinnings of computational principles and their utility for machine learning.
  5. Students work together and solve problems in a team environment.
  6. Students present methods, algorithms, results, and designs in an organized and competently written manner.
  7. Students write, organize and manage a large software project.

There will be regular opportunities for you to practice what you have learned and to demonstrate your accomplishments.

The course grade will be determined as follows:

Projects (Team) 40% Hands-on opportunities to implement and explore concepts from lecture.
Assigned on average every 2 weeks, with weekly turn-in due dates.
Work in teams of two.
Team Participation (Individual) 20% Peer assessment from your team member on collaboration and balanced contributions.
Quizzes 10% Short weekly quizzes (given most Wednesdays in class)
Participation (Individual) 10% I expect you to be an active contributor in the classroom. This requires you to attend lectures. It is not a problem if you know that you will not be able to attend a lecture, but please email me in advance to let me know.
Final Exam 20% A 3-hour opportunity at the end of the semester to demonstrate your ability to answer questions about course material.

Work done in teams of two.

Projects are generally due on Thursdays (except for the first few weeks).

Check-in and final due dates

There are two types of project due dates:

  • Check-in submissions: Progress made on designated project tasks (ungraded).
    • Honest attempt is required to ultimately earn at least 26/30 on the final submission.
    • Each check-in is worth 1 point toward the final project grade. Absent check-in submissions will result in a maximum score of 26/30 (no extensions will be graded).
  • Final submissions: Updated version of check-in submission and remaining project tasks. Graded as follows:
    • 26/30: All tasks completed.
    • 27+: All tasks completed along with creative explorations beyond the scope of core tasks (extensions).
    • The above scenarios assume that a honest attempt was made at the check-in submission and the provided test code runs and returns the expected results.

Between check-in and final submissions, code is turned in weekly. The weekly deadline is Thursday at 11:59pm EST.

The check-in and final submission schedule depends on the project length:

  • 1 week project: Graded final submission only.
  • 2 week project: Check-in submission due one week after project assigned, final graded submission due the next week.
  • 3 week project: Check-in submissions due weekly during the first two weeks, final graded submission due on the third week.

Submitting a project

Check-in and final submissions should be submitted as a ZIP file to Google Classroom to the posted Project assignment there. Only one team member should do this.

The zip file should be named based on the submitting team member's Colby username (e.g. owlayton for me). You should also indicate whether it is a check-in or final submission:

  • For Project X Check-in Y I would name my zip file where X and Y are integers, Including the project number in the filename is not necessary since Google Classroom will automatically organize things based on the project assignment.
  • For Project X final, I would name my zip file
Project Late Policy

Projects are an important part of the learning experience in this course. I do not want you to get behind with the project workload. To encourage this, projects later than 1 week past the due date will not be accepted.

Late projects submitted within this 1 week grace period will not be eligible for extension credit and will be capped at a maximum of 26/30.

Please contact me immediately in the event of illness and other unforeseen circumstances, we will work out accommodations.

Project Freebee

Everyone gets one extended grace period to turn in a final or check-in project submission later than the due date. The freebee grants you additional time to work on extensions and have them graded or avoid the 1 point loss associated with a late check-in submission. To use the freebee, you must email me in advance of the due date.

If you use your freebee, you have until Monday 11:59pm of the following week to submit.

Team Participation

Group work is an important component of the learning experience in this course. You and your team member should feel empowered to contribute with your maximum potential and creativity so that everyone can learn effectively. This requires open communication and respect for each other's contributions and time.

To encourage everyone to reflect on this throughout the course, everyone will fill out a short form to evaluate the team experience when you submit each project. I understand that your workload outside of this course fluctuates during some weeks of the semester. The key is open communication and accountability with your team so that the workload can be distributed equitably and fairly. I expect you to reach out to your team member and me if this is not the case.

The team participation form is only filled out when turning in final submissions (not check-ins).

Generative AI

I strongly discourage the use of generative AI tools (e.g. ChatGPT) to complete CS343 projects. You are taking this course to learn how to build, analyze, and reason about neural networks. You are not taking this course to learn how to ask ChatGPT how to do these things for you. I want your skills and knowledge to grow, not ChatGPT's.

Weekly quizzes
  • There is a 10 minute quiz given most Wednesdays in class.
  • The quizzes let you show me what you have learned. These should be quick and straightforward if you participate in lecture and review lecture notes.
  • I understand that everyone has a bad day; the quiz with the lowest grade will be dropped.
  • Each quiz may be made up when a prior request is made or there is a documented health issue.
  • Please contact me immediately in the event of illness and other unforeseen circumstances, we will work out accommodations.
Class Participation
  • Your attendence is required. Your presence and participation matters for your learning experience! Everyone in the class benefits from your participation.
  • If you must miss a class for any reason (covid, illness, etc.), please email me in advance. I am happy to work with you.
  • When you have a question, ask it. It is highly likely that one of your classmates has the same question.
Final Exam

There will be a cumulative final exam on December 16 1:30pm-4:30pm. Its format will be announced later.


It should go without saying that you should back up any files related to this course. If the code you submit to us is somehow lost (through your fault or our fault), I must be able to get another copy from you. I suggest keeping your code on a cloud storage provider (shared with your team member) Google Drive, Dropbox, or Microsoft OneDrive. That way, you have a backup stored in the cloud.

A private GitHub repository (with your team member set as a collaborator) is another good backup option.

If you use filer, be aware that off campus you need VPN access, which could be unreliable. Also, you must store data in either your Personal folder or a Private folder in Courses.

Team Collaboration

Here are the expectations for collaboration on projects in a team-based environment:

  • You are free to share, exchange, and jointly write code, solve problems, and answer project questions within your team.
  • You may discuss problems and solutions with other teams in English, but you must NOT see, share, or exchange code or responses to written project questions.
Collaboration, Academic honesty

Computer science, both academically and professionally, is a collaborative discipline. In any collaboration, however, all parties are expected to make their own contributions and to generously credit the contributions of others. In our class, therefore, collaboration on assignments is encouraged, but you as an individual are responsible for understanding all the material in the assignment and doing your own work. The following rules are intended to help you get the most out of your education and to clarify the line between honest and dishonest work:

  • For collaboration on projects, see Team Collaboration.
  • Always strive to do your best.
  • Cite and give generous credit to others. If you have had a substantive discussion of any homework or programming solution with a classmate, then be sure to cite them in your write-up. If you are unsure of what constitutes "substantive", then ask me or err on the side of caution.
  • Start early.
  • Seek help early from both your professors and classmates.
  • You must not copy answers or code from another student outside of your team either by hand or electronically. Another way to think about it is that you should communicate with one another in natural human sentences, not in lines of code from a programming language.
  • I reserve the right to ask you to verbally explain the reasoning behind any answer or code that you turn in and to modify your project grade based on your answers. It is vitally important that you turn in work that is your own.

I do use automated plagiarism detection software, so please be sure to abide by these, rather minimal, rules. Reports of academic dishonesty are handled by an academic review board and a finding of academic dishonesty may result in significant sanctions. For more details on Colby's Academic Integrity policies and procedures, see

The Colby Affirmation

Colby College is a community dedicated to learning and committed to the growth and well-being of all its members.

As a community devoted to intellectual growth, we value academic integrity. We agree to take ownership of our academic work, to submit only work that is our own, to fully acknowledge the research and ideas of others in our work, and to abide by the instructions and regulations governing academic work established by the faculty.

As a community built on respect for ourselves, each other, and our physical environment, we recognize the diversity of people who have gathered here and that genuine inclusivity requires active, honest, and compassionate engagement with one another. We agree to respect each other, to honor community expectations, and to comply with College policies.

As a member of this community, I pledge to hold myself and others accountable to these values. More ...

Academic Accommodations

I am available to discuss academic accommodations that any student with a documented disability may require. Please note that you’ll need to provide a letter from the Dean of Studies Office documenting your approved accommodations. Please meet with me to make a request for accommodations at the beginning of the semester--and at a minimum two weeks before any key due dates--so that we can work together with the College to make the appropriate arrangements for you.

Sexual Misconduct
(Title IX Statement)

Colby College prohibits and will not tolerate sexual misconduct or gender-based discrimination of any kind. Colby is legally obligated to investigate sexual misconduct (including, but not limited to, sexual assault and sexual harassment) and other specific forms of behavior that violate federal and state laws (Title IX and Title VII, and the Maine Human Rights Act). Such behavior also requires the College to fulfill certain obligations under two other federal laws, the Violence Against Women Act (VAWA) and the Jeanne Clery Disclosure of Campus Security Policy and Campus Statistics Act (Clery Act).

To learn more about what constitutes sexual misconduct or to report an incident, see:

If you wish to speak confidentially about an incident of sexual misconduct, you may contact:

  • Counseling Center: 207-859-4490
  • Title IX coordinator: Meg Hatch
  • Gender and Sexual Diversity Program: Director Emily Schusterbauer (207-859-4093)
  • Office of Religious & Spiritual Life: Dean of Religious & Spiritual Life Kate Smanik (207-859-4272)

Students should be aware that faculty members are considered "responsible employees"; as such, if you disclose an incident of sexual misconduct to a faculty member, they have an obligation to report it to Colby's Title IX Coordinator. "Disclosure" may include communication in-person, via email/phone/text, or through class assignments.

Observance of Religious holidays

Colby College supports the religious practices of students, faculty, and staff, but we don't always know which people will observe which holidays. Since I need to plan course activities in advance, I need to know in advance, if you need to miss a class or have a deadline adjusted in order to observe a holiday. Please notify me by e-mail at least 14 days in advance of any religious holiday that will affect your ability to participate in this course.

© 2023 Oliver Layton