Spring 2025

For: CS Students with CS 152 or later

Prof. Calvin

13 November 2024

CS 261: Software Development

  • Pre-reqs:
  • Counts for:
  • Time:
  • Instructor:

CS 152
CS advanced elective (need 2)
MW 13:10-14:40
Prof. Haiyan Cheng

As a simulated development team,use a "content project" to focus our investigations into tools and practices

  • Real-world development environment
  • Basic tool and process concepts will be introduced during weekly scheduled discussion hours
  • Make presentations and to participate in team meetings


CS 262: Web Development

  • Pre-reqs:
  • Counts for:
  • Time:
  • Instructor:

CS 152
CS advanced elective (need 2)
MW 14:50-16:20
Prof. Fred Agbo

This is a hands-on, project-based course that delves into both frontend and backend development technologies to create fully functional data-driven websites.

  • Introduction to web architectures
  • Responsive frontend design frameworks
  • Backend technologies (web APIs, data modeling)
  • Testing frameworks, and deployment strategies


NEW CS 276: Cryptographic Systems

  • Pre-reqs:
  • Counts for:
  • Time:
  • Instructor:

CS 152
CS advanced elective (need 2)
TTh 14:50-16:20
Prof. Calvin Deutschbein

Systems programming with the motivating example of blockchain as implemented by Satoshi Nakamoto for Bitcoin

  • Dockerized Dev Environments
  • Compilers and the C language
  • RSA and SHA Hashing Algorithms
  • Memory allocation and management
  • Blockchain/Merkle Tree recursive data structures
  • Distributed Consensus algorithms


About Me

Name
Calvin Deutschbein
Refer to me as:
Professor Calvin
they/them
Responsibilities:
Computer Science Professor
CS/DS Adviser
Email:
ckdeutschbein@willamette.edu
Website:
cd-public.github.io
Second Favorite Alien Film:
Alien: Romulus (2024)

Registration opens 11/18 (5 days)

  • Peep these dates:
  • Year Credits Reg. Date Reg. Day
    4 92+ 11/18 Monday
    3 60+ 11/19 Tuesday
    2 28+ 11/21 Thursday
    1 Any 11/25 Monday
    Open 12/02 Monday
  • Registration loosely follows what year you are.

We want you to take classes you want to take and to graduate on time.

Undeclared?

  • So you want to major in Computer Science or Data Science?
    • Email registrar@willamette.edu.
    • Copy me.
    • Include your ID #
    • Say which major(s) you want to declare.
      • You can add and/or drop majors and advisers anytime.
    • I will approve then check your student progress on SAGE.
Subject: Major Declaration

Dear Registrar,

I hope this email finds you well. My name is [Your First Name] [Your Last Name], and I am writing to formally declare my intent to major in Computer Science. My seven-digit student ID number is [Your Student ID Number].

I have also copied Prof. Calvin, at ckdeutschbein@willamette.edu, who has offered to be my in-major adviser.

Please let me know if there are any additional steps or requirements I need to complete to formalize my major declaration.

Thank you for your time and support.

Sincerely,

[Your First Name] [Your Last Name]

If you are considering a double major, just declare it so it's easier to keep track.

I do a lot of email/discord, and I meet in person MWF PM, and by Zoom TTh all day.

Advising Process

  • Are you sure there aren't *any* other advisers?
    • Click me!
    • Good choices:
      • Jed Rembold,
      • Lucas Cordova,
      • Fred Agbo
    • As a rule, plan on meeting your adviser in person unless they say otherwise.

Requirements:

Maybe this CS thing isn't so bad. What should I take next semester?

  • CS requirement:
    MATH 251W
        MW_ 1310-1440
    
  • CS distribution, 2 of these:
    CS   261 Software
        MW_ 1310-1440
    CS   262 Web Dev
        MW_ 1450-1620
    CS   276 Crypto
        TTh 1450-1620
    
    • MATH-251W will likely fill with a large waitlist.
    • I will not cap CS 276 so it's there if you need it.
    • CS 261 and CS 262 are likely to offered yearly
    • CS 276 1-3 years

For Fun:

In addition to requirements, have a bit of fun.

    CS   370 Python for Data Science
        MW_ 0840-1010
        MW_ 1020-1150
    DATA 275 Data in the Cosmos
        TTh 1310-1440
    MATH 352 Linear Algebra
        TTh  0940-1110
    MATH 476 Modern Geometry
        TTh  1310-1440
    
  • CS/DATA classes require CS/DATA 151 (either).
  • MATH classes require MATH 251.

Requirements:

What's up with the 3+1 BS/MS.

  • Basically, it's the same for the first few years, just don't take DATA-351.
    • Or do, but you want grad-level SQL
  • Talk to me or your advisor ASAP.
  • BS/MS Data Science is an established program in Salem or Portland.
  • BS/MS Computer Science is an established program in Portland and nascent program in Salem.
    The M.S. is a PROFESSIONAL and TERMINAL degree. It is not a research degree, does not have a thesis component, and is not intended to prepare students for doctoral (Ph.D.) study and students interested in graduate school with a research focus should consult their advisor before committing to the program. As a professional degree, the M.S. is tuition-funded, rather than grant-funded, though undergraduate financial aid agreements apply.
    
    Students are considered undergraduates for three years of two semesters, then graduate/professional students for one year of three semesters.
    
    Students must ensure they meet the undergraduate credit requirement to graduate on time. In practice, this means taking four full courses (16 credit hours) every semester during the three undergraduate years, and an additional course over the three years, usually by taking two half-courses (2 credit hours each) to avoid additional tuition costs. I recommend MATH 102X, MATH 153, and ARTH 10X classes.
    
    There are a few courses that Dual Degree students should not take because they are redundant with graduate level coursework:
    
        DATA 252 : Models and Machine Learning
        DATA 351 : Data Management with SQL
        DATA 352W: Ethics, Teamwork, Communications 
  • Be advised of the tuition for the BS/MS - one semester at graduate/professional rates. Click me!

Graduation Requirements

Besides a major, you have general education and credit hour requirements to graduate:

  • 5x General Education
    • 2x AH (Arts & Humanities)
    • 3x Sciences
      • 1x MS (Mathematical)
      • 1x NS (Natural)
      • 1x SS (Social)
  • 4x WE
    • 2x NEL (Non-English Language)
    • 2x Any WE, from any of
      • NEL
      • CEL (Community Engaged Learning)
      • CV (Cultural Values)
  • 2x W
    • 1x 300+ W
    • 1x ANY W
  • 1x PDE

Graduation Requirements

DATA majors only worry about these ones:

  • 4x General Education
    • 2x AH (Arts & Humanities)
    • 2x Sciences
      • 1x NS (Natural)
      • 1x SS (Social)
  • 4x WE
    • 2x NEL (Non-English Language)
    • 2x Any WE, from any of
      • NEL
      • CEL (Community Engaged Learning)
      • CV (Cultural Values)
  • 1x ANY W
  • 1x PDE

Building a Good Schedule

Here is my algorithm.

  1. Schedule all major-required courses
    • Tie-break by scheduling pressure
    • CS-351 is offered ANNUALLY and have prereqs.
    • MATH-280 usually has a waitlist.
  2. Schedule elective requirements and graduation requirements by preference.
  3. Reach a minimum of 17 (!!!) credits to avoid "bad" outcomes
    • ARTH-10X ??? (2 Credits)
    • Use X-suffixed classes, like MATH 102X, to exceed 18 for extra safety.

In general, I approve via email any 4-course schedule with 1+ major requirement and 3+ graduation requirement courses.

Summary

Do this.

  1. If you want to major in CS/DS, email me before your registration deadline.
    • Don't stress, but sooner is better.
    • If you aren't sure, you can add me just for now - I won't be offended.
  2. CS majors should take upper-division electives next term: 261, 262, 276
    • 261-Software, 262-Web, 276-Crypto
  3. CS majors would enjoy in-program electives next term:
    • DATA 275-Cosmos, CS 370-Data Sci
  4. MATH-251 if you haven't
  5. You have more options if take 4+ classes.

We want to help you have a good semester.