CSCE-315 Section 502: Programming Studio (Spring 2010)
Table of Contents
|Course||CSCE-315– Programming Studio, TR 12:45 pm – 02:00 pm, HRBB 126|
|Labs||TR 09:35 am – 10:25 am, RDMC 111C|
|Office hours||TA: Mon–Fri 2:00 pm – 3:00 pm, HRBB 339; Instructor: by appointment (HRBB 416)|
|Teaching Assistant||Tim Mann (firstname.lastname@example.org)|
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.
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.
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.
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.
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).
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.
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.
|Tue, Jan 19||Introduction. Style, Layout, and Naming.||introduction.pdf naming.pdf|
|Thu, Jan 21||Commenting code. Individual project assignment||Commenting.ppt|
|Tue, Jan 26||Introduction to databases||DBERmodel.ppt DBRelational.ppt|
|Thu, Jan 28||Guest Lecture (during Lab meeting time at 9:35!)||Lecture and Lab times swapped, both at RDMC 111C|
|Tue, Feb 2||SQL||DBSQL1.ppt DBSQL2.ppt|
|Thu, Feb 4||Discussion on the first team project|
|Tue, Feb 9||Implementing databases||DBImplement.ppt|
|Thu, Feb 11||No class|
|Tue, Feb 16||API design||API.ppt|
|Thu, Feb 18||About software design||Design.ppt|
|Tue, Feb 23||Testing||Testing.ppt|
|Thu, Feb 25||Project 2 introduction|
|Tue, Mar 2||No class|
|Thu, Mar 4||Debugging, Performance||Debugging.ppt Performance.ppt|
|Tue, Mar 9||Tuning code||Tuning.ppt (see also this)|
|Thu, Mar 11||About software development processes||Development.ppt|
|Tue, Mar 16||Spring break|
|Thu, Mar 18||Spring break|
|Tue, Mar 23||No class|
|Thu, Mar 25||No class|
|Tue, Mar 30||Agile processes||Agile.ppt Collaborative.ppt|
|Thu, Apr 1||The Race|
|Tue, Apr 6||Middleware, Data Exchange||XML.ppt Middleware.ppt|
|Thu, Apr 8||Guest Lecture: Allen Hurst|
|Tue, Apr 13||No class|
|Thu, Apr 15||No class|
|Tue, Apr 20||Design Patterns||DesignPatterns.ppt|
|Thu, Apr 22||No class|
|Tue, Apr 27||Guest lecture: Android development (Ronnie Ward)|
|Thu, Apr 29||Project demos|
Date: 2010-04-23 12:18:25 CDT
HTML generated by org-mode 6.34trans in emacs 22