CSCE-315 Section 502: Programming Studio (Spring 2010)

Course Essentials

CourseCSCE-315– Programming Studio, TR 12:45 pm – 02:00 pm, HRBB 126
LabsTR 09:35 am – 10:25 am, RDMC 111C
InstructorJaakko Järvi
Course pageshttp://courses.cse.tamu.edu/jarvi/2010/CSCE-315
Contactjarvi@cse.tamu.edu
Office hoursTA: Mon–Fri 2:00 pm – 3:00 pm, HRBB 339; Instructor: by appointment (HRBB 416)
PrerequisiteCSCE-314.
Teaching AssistantTim Mann (mann23@neo.tamu.edu)

Topics and Goals

This course is intended as an intensive programming experience that integrates core concepts in Computer Science and familiarizes students with a variety of programming/development tools and techniques. Students will primarily work in small teams on month-long projects that emphasize different specializations within computer science. The course focuses on good programming practices and techniques that ease code integration, reuse, and clarity.

The primary goal for this class is to help students acquire strong programming skills and abilities to address both individual and team programming challenges competently. The primary means to achieve this goal is through practice—students are to complete several programming projects.

Among the topics to be covered in lecture periods are:

  • Style considerations in writing code
  • Design of software sytems and APIs
  • Coding beyond the single component
  • Basic collaborative software coding practices
  • Design for portability, performance, testability
  • Specification and documentation
  • Basic software developemnt tools and their use
  • Subject-specific topics related to the team projects

Many topics in this class will overlap with those of a standard software engineering course. This course is not, however, intended to be as in-depth or comprehensive in those topics. Students may take the software engineering class after completing Prorgramming Studio.

Note: You should expect to spend a significant amount of time (>10 hours/week) outside of class time on programming projects. This may require meeting with team members outside of the class/lab periods.

Prerequisites

This class is intended for students who have completed CPSC 314 -- Programming Languages, and are concurrently taking CPSC 313 – Intro to Computer Systems. The class is meant to be somewhat of a ``capstone'' course for the lower-level computer science courses, before courses in the upper-level tracks.

Class Meetings

This class is scheduled as a 2 hour lecture/2 hour lab class each week. As the lecture period is the normal twice a week schedule, we will have approximately 20 lectures of the 28 normally scheduled classes. Most of the lectures will be scheduled towards the start of the semester so the material can be used in your projects. Specific dates of "no class" will be announced as the class progresses.

There is a final exam time reserved for this class. The plan is to wrap up the course before this time, but students should leave the final exam time available, since it may be used for project presentations. In any case, there is no final exam in the course.

Grading

Current grades

There will be three major projects in the course, each counting for 28% of the overall grade. Specific grading practices for each project will be announced when that project is given out, but the grade may include factors such as evaluation of code clarity, teamwork, etc. Peer evaluation may be used as a significant contributing factor to these grades. The remaining 16% of the grade will be an individual grade based on an individual project and assignments, exercises, quizzes, and on instructor's judgement of class participation and effort.

A grade of 90% or above guarantees an A, 80% or above a B, 70% or above a C, and 60% or above a D.

Recourses

Required Textbooks

We will be using the following textbook:

  • Code Complete, 2nd edition, by Steve McConnell, Microsoft Press, 2004.

Other books that may be drawn from, and that might be useful references include both the first edition of Code Complete, as well as:

  • The Practice of Programming, by Brian W. Kernighan and Rob Pike, Addison Wesley, 1999.
  • Code Craft, by Pete Goodliffe, No Starch, 2007. (Note: this book is available to read online for free through TAMU).

Policies

Honesty

Academic Integrity Policy: An Aggie does not lie, cheat, or steal or tolerate those who do. The Honor Council Rules and Procedures are available on the web http://www.tamu.edu/aggiehonor.

ADA Statement

Americans with Disabilities Act (ADA) Policy: The Americans with Disabilities Act (ADA) is a federal anti-discrimination statute that provides comprehensive civil rights protection for persons with disabilities. Among other things, this legislation requires that all students with disabilities be guaranteed a learning environment that provides for reasonable accommodation of their disabilities. If you believe you have a disability requiring an accommodation, please contact the Department of Student Life, Services for Students with Disabilities, in Room 126 of the Koldus Building or call 845-1637.

Schedule and Material

This is the official schedule that is kept up to date as the class progresses. A tentative schedule that gives a rough idea of the class activities can be found here.

DateTopicsComments
Tue, Jan 19Introduction. Style, Layout, and Naming.introduction.pdf naming.pdf
Thu, Jan 21Commenting code. Individual project assignmentCommenting.ppt
Tue, Jan 26Introduction to databasesDBERmodel.ppt DBRelational.ppt
Thu, Jan 28Guest Lecture (during Lab meeting time at 9:35!)Lecture and Lab times swapped, both at RDMC 111C
Tue, Feb 2SQLDBSQL1.ppt DBSQL2.ppt
Thu, Feb 4Discussion on the first team project
Tue, Feb 9Implementing databasesDBImplement.ppt
Thu, Feb 11No class
Tue, Feb 16API designAPI.ppt
Thu, Feb 18About software designDesign.ppt
Tue, Feb 23TestingTesting.ppt
Thu, Feb 25Project 2 introduction
Tue, Mar 2No class
Thu, Mar 4Debugging, PerformanceDebugging.ppt Performance.ppt
Tue, Mar 9Tuning codeTuning.ppt (see also this)
Thu, Mar 11About software development processesDevelopment.ppt
Tue, Mar 16Spring break
Thu, Mar 18Spring break
Tue, Mar 23No class
Thu, Mar 25No class
Tue, Mar 30Agile processesAgile.ppt Collaborative.ppt
Thu, Apr 1The Race
Tue, Apr 6Middleware, Data ExchangeXML.ppt Middleware.ppt
Thu, Apr 8Guest Lecture: Allen Hurst
Tue, Apr 13No class
Thu, Apr 15No class
Tue, Apr 20Design PatternsDesignPatterns.ppt
Thu, Apr 22No class
Tue, Apr 27Guest lecture: Android development (Ronnie Ward)
Thu, Apr 29Project demos

Projects

  • Project 1, Individual, due date Tuesday, February 2nd.
  • Project 2, Team project, due dates within the project specification.
  • Project 3, Team project, due before the race, which is on Tuesday, March 30th.
  • Project 4, Team project, due Thursday, April 29th.

Author: jarvi <jarvi@cse.tamu.edu>

Date: 2010-04-23 12:18:25 CDT

HTML generated by org-mode 6.34trans in emacs 22