Introduction to Software Development

This course introduces the software engineering process for individual software development projects. The course covers software development methodologies, project planning and management, requirements gathering and analysis, design and implementation, testing, and maintenance. The course will also cover key tools and technologies that are used in software development projects. 

2025 Fall Semester Details

Instructor(s)

Instructor

Vidya Gaddy

Office

CS Building 246

Email

vidya.gaddy@colostate.edu

Office Hours

Tues/Thurs 2:30-4:30

Class Schedule

Section

Schedule

Location

Instructor

001

T/R 5:00p – 5:50p

Yates 104

Vidya Gaddy

801

Async

Online

Vidya Gaddy

TA Information
Name Role Initials 
Erfan Mirhaji GTA EM 
Nuwan Jayawardene GTA NJ 
Hasan Mahmud GTA HM 
Jason Curcio GTA JC 
Tyler Malone UTA TM 
Mia Palmer UTA MP 
Cameron Mordini UTA CM 
Morgan Mitchell UTA MM 
Nathan Stucke UTA NS 
Ashton Jane UTA AJ 

Help Desk

All times in Mountain Standard Time

To get in contact with the TAs attend their Help Desk hours.

If the TAs receive a question in the Help Desk channel outside of their scheduled hours, they will respond when they’re next available. To receive help during these hours, post to the channel and a TA will reach out to you via message or video chat.

An asterisk (*) denotes times the TAs are only available online (MS Teams). Otherwise the TAs are available in person (CSB 120) and online (MS Teams).

Time Sun Mon Tue Wed Thu Fri Sat 
  *MP     
10  CM *MP MM  *MP  
11  TM TM  TM   
12  CM    CM  
 *MP  *AJ  MM NJ HM 
*TM *MP 
NS 
NS NS *AJ NS MM NS 
NJ 
  
   AJ   JC 
      JC 
 HM NJ MM EM   JC 
   EM    
   EM    

Lab Schedule

Time Recitation Room TA 
9am R01 CSB 315 HM EM 
10am R02 CSB 315 EM CM 
10am R03 CSB 215 MM TM 
11am R04 CSB 315 NS EM 
11am R05 CSB 215 TM AJ 
12pm R06 CSB 315 NS MM 
1pm R08 CSB 315 EM JC 
2pm R09 CSB 315 JC AJ 
3pm R10 CSB 315 NJ AJ 

Course Learning Objectives

  1. Use Git tools for version control
  2. Use JUnit for unit testing
  3. Use Gradle for build automation
  4. Use Agile project planning
  5. Gather requirements for development
  6. Recognize and understand functional programming
  7. Refactor code
  8. Debug using IDE and other tools
  9. Design software based on coding standards
  10. Use Test Driven Development
  11. Develop time/memory efficient software
  12. Document and manage artifacts