Skip to main content

CSC321.01 2018S, Class 01: An introduction to the course


  • Preliminaries.
    • Admin
    • Upcoming Work
    • Questions
  • What is this course?
  • Course goals
  • Why this course?
  • Work time (possibly)



  • Welcome back! I think I know most of you, and I’m happy to be able to teach you again.
  • But I’m still taking attendance.
  • The course site for CSC 321 may be more ready than it’s ever been. Cross your fingers that it stays that way. Let me know when things don’t work.
    • For example, we had a configuration screwup that made some pages unavailable. Let me know if you find such pages.
  • There will probably not be a separate CSC 322 next year. If you are taking CSC 321 this semester, please enroll in CSC 322.
  • Please fill out the Data Buddies survey that you received over break. Surveys are more meaningful if we get higher participation.
  • After today, I’ll plan to have a cart of laptops in this classroom.

Upcoming work

Good things to do (Academic)

  • CS table tomorrow: Plan topics
  • MLK day (+ 1 week + 1 day) event, Tuesday, 7:00 pm, JRC 101
  • CS extras Thursday: Summer research opportunities in CS.


What is CSC 321?

  • A course in software design - How you build medium to large-scale
    projects in a team using some consistent methodologies and approaches
    • We will focus on agile methodologies
  • An introduction to or extension of a variety of tools you will use as you build software.
    • Ruby on Rails
    • Version control software (Git)
    • Task management (Trello)
    • Cloud development (c9)
    • Application deployment (Heroku)
    • Also some things CS students should know, but don’t necessarily know (HTML, CSS, Web struture)
  • Preparation for CSC 322, the practicum part of our software design curriculum
  • Also some opportunity to deal with uncertainty. Not all of the answers will be in the readings; you’ll have to do some Web searches, particularly when things go wrong.

Course goals

Given that overall structure, what do you expect to see covered in this course? What do you want to see covered in this course?

Modified “think->pair->share”

  • Make a list of five topics.
  • In groups of approximately three, share your answers with each other.
    • This is an opportunity to make sure that all of you talk.
    • This is an opportunity to make sure that we get a variety of ideas heard.
  • We will then share with the larger course.

“Soft skills”

  • How to work with a client. Done in CSC 322.
  • Collaboration: How do you work with a group of people.
    • Consistent formatting of code.
    • Communication.
    • Divide tasks.
    • And more.

Key ideas

  • Version control
    • To share code with teammates and other people.
    • To allow you to safely make changes
    • To keep track of your work and why you made the changes you did
  • User interfaces
    • How to design them and make them meaningful
    • User interaction, too
    • Maybe a bit about accessibility
    • At least a bit about making things “pretty”
    • No deep UI stuff, though. We have a separate course
  • Test-driven design
    • You should not be confident in your code unless you test it
    • You should probably write the tests first
  • Dealing with structured data and the use of databases to organize those data.
  • How do you deal with legacy code.
  • Good documentation practices.
    • Look back to 151 for individual procedures.
    • Most people challenge that approach.


  • What Sam said about struggling through situations in which there isn’t a clear answer.
  • Dealing with legacy code. (in CSC 322)

Why this course?

Why are you taking this course?

  • Same process, slightly faster.

Course structure

  • Seven week course, three days per week.
  • During this half of the semester, you are expected to do about twelve hours per week on this class.
  • That’s about nine hours outside of class.
    • Assignments (mostly programming). Mostly Rails, all from Hartl (The Rails Tutorial). Five hours
    • Readings (mostly from the SaaSbook). Required journals due the night before class at 8 pm. Four hours
  • You may timebox!

Work time (if there’s time)

Start the Codecademy Ruby Tutorial.