• Skip to main content

Shawna Thomas

Texas A&M University College of Engineering
  • Home
  • Research
  • Publications
  • Teaching
  • CV

CSCE 331 – Foundations of Software Engineering

Previously CSCE 315: Programming Studio.

Course Information

The course syllabus is posted on Howdy.

Course Description:

Intensive programming experience and provision of the fundamentals needed for larger-scale software development; integration of concepts in computer science and familiarization with a variety of programming and development tools and techniques; team projects each with an emphasis on a different specialization within computer science; emphasis on programming techniques to ease code integration and clarity; practical exposure to software-engineering processes through large-scale projects and specification and documentation.

Credits: 4 (3 Lecture Hours, 1 Lab Hour)

Special Designation: W (writing course)
As a writing course, you will receive instruction on writing and complete writing assignments so you can master writing related to the major.  You must pass the writing components to earn a grade in the course.

Prerequisites: CSCE 312 and CSCE 314; or CSCE 350/ECEN 350

Corequisite: CSCE 313

Learning Outcomes:

This course is an introduction to software engineering. It will familiarize you with a variety of software development methodologies. We will cover many topics including software system design for portability, performance, and testability, coding layout and style, programming specifications and documentation, software tools and API usage, databases, and interface design. You will practice these concepts primarily through small team projects to help you grow in your programming and software design skills. Many students discover a new topic area they enjoy, whether that be front-end development, back-end development, project management, or a particular technology.

Upon completion of this course, you will be able to:

  • Explain the need for software engineering through industry examples and personal experience
  • Exercise the fundamental concepts of software construction (including managing requirements, design, implementation, testing, and deployment)
  • Design and develop software that is clearer, more maintainable, and integrates current software technologies (some that are new to you)
  • Collaborate and communicate effectively in small teams
  • Recognize and apply characteristics of effective technical writing

Required Textbooks:

Code Complete, 2nd edition by Steve McConnell (Microsoft Press, 2004).
(Code Complete PDF)

Database Design, 2nd edition by Adrienne Watt (BCcampus Open Education, 2014).
(Database Design PDF)

Other supplementary material as needed will be supplied electronically.

Why I Teach This Course

This course is offers you a unique learning experience.  I am always especially excited to teach this course, and here is why:

  • Building software is fun and rewarding
    You get many opportunities to “learn by doing” this course
  • There’s more to software than coding
    You will get a taste of software engineering
  • Working on teams can be messy, but it’s worth it
    You will be amazed at what you can accomplish together, so much more than on your own

© 2016–2026 Shawna Thomas Log in

Texas A&M Engineering Experiment Station Logo
  • College of Engineering
  • Facebook
  • Twitter
  • State of Texas
  • Open Records
  • Risk, Fraud & Misconduct Hotline
  • Statewide Search
  • Site Links & Policies
  • Accommodations
  • Environmental Health, Safety & Security
  • Employment