elizabrock / NSS-Syllabus-Spring-2013

The syllabus and slides for the Spring 2013 Software Development Fundamentals course at Nashville Software School
8 stars 4 forks source link

NSS Software Development Fundamentals - Spring 2013

The syllabus and slides for the Spring 2013 Software Development Fundamentals course at Nashville Software School.

Full Course Calendar:

http://planbookedu.com/s/RQLTP

Courseware:

https://canvas.instructure.com/courses/790528

Volunteer/Mentor Schedule:

Sign up to mentor through VolunteerSpot:

Course Goals and Expected Outcomes

Starting Point:

25 students with a wide variety of experiences and education levels.

Our students currently have some skills with HTML/CSS/Javascript and have, to some extent, been exposed to client work and wordpress/php.

Rumour has it that this class has knowledge of git and unix as well.

The students have a strong focus on the end-result of being professional software developers.

Goal:

To produce hirable Junior Developers. As such, they should be able to:

Instructors

Primary Instructor

Eliza Brock, owner of Eliza Brock Software. Eliza has written web applications that span from boutique e-commerce sites to web services that support hundreds of thousands of mobile devices. She is returning to teach Software Development Fundamentals for a second time.

Assistant Instructor

Ben Bridges, former NSS student and current developer at Zeumo. Ben will be leading lab hours and assisting in class instruction. Ben brings his recent experience with the class and an uplifting attitude to help keep the students from panicking at the pace of the class. Go, Ben!

Schedule

4 units over 12 weeks

Instructional time from 9AM to 12PM, daily.

Lab time from 1PM to 4PM, daily.

Each day starts with standup and then continues of ~3 30-minute lecture topics with attendant discussion and breaks.

After a lunch break, students work on individual assignments and research.

1. TDD of Ruby Data Structures

Goal: Demonstrate competence in standard-library Ruby

Capstone: Implement a variant of cal

2. Exploring the Ruby Ecosystem

Goal: Demonstrate mastery of git, project documentation (README, comments), writing unit tests, basic Ruby

Capstone: TDD Command-line Ruby Application

(This will deviate from the previous course, allowing students to use ActiveRecord as a data store. Otherwise, it will be pure standard-library)

3. Developing a simple Rails application

Goal: Students develop an awareness of how the components of Rails interoperate and the basics of developing a Rails Application.

Capstone: This has no capstone, as the goal is to prepare for the final capstone project.

4. Advanced Topics and Career Prep.

Goal: Students form an understanding of the depth and breadth of the field while meeting many of the practicing developers in Nashville.

Capstone: Develop a decent-sized resume-worthy Rails app using TDD

Lectures in this final portion of the class will be delivered primarily by mentors and community members on their individual areas of expertise.

Lecture topics are determined in large part by student interest and mentor availability.

Topics for this class session have not yet been arranged. However, the previous class covered such topics as: