BYU CS Logo
Computing That Serves

CS 240

Course Offerings

Section # Semester Instructor Website Description
1 Fall 2017 Cory Barker
2 Fall 2017 Cory Barker
3 Fall 2017 Ken Rodham https://students.cs.byu.edu/~cs240ta/
4 Fall 2017 Ken Rodham https://students.cs.byu.edu/~cs240ta/
Section # Semester Instructor Website Description
1 Winter 2018 Frank Jones
2 Winter 2018 Frank Jones
3 Winter 2018 Ken Rodham
4 Winter 2018 Ken Rodham
1 Fall 2017 Cory Barker
2 Fall 2017 Cory Barker
3 Fall 2017 Ken Rodham https://students.cs.byu.edu/~cs240ta/
4 Fall 2017 Ken Rodham https://students.cs.byu.edu/~cs240ta/
1 Spring-Summer 2017 Scott Woodfield
1 Spring-Summer 2017 Ken Rodham https://students.cs.byu.edu/~cs240ta/
1 Winter 2017 Scott Woodfield https://students.cs.byu.edu/~cs240ta/winter2017/
2 Winter 2017 Scott Woodfield https://students.cs.byu.edu/~cs240ta/winter2017/
3 Winter 2017 Ken Rodham https://students.cs.byu.edu/~cs240ta/
4 Winter 2017 Ken Rodham https://students.cs.byu.edu/~cs240ta/
1 Fall 2016 Scott Woodfield https://students.cs.byu.edu/~cs240ta/fall2016/
2 Fall 2016 Scott Woodfield https://students.cs.byu.edu/~cs240ta/fall2016/
3 Fall 2016 Frank Jones https://students.cs.byu.edu/~cs240ta/fall2016
4 Fall 2016 Frank Jones https://students.cs.byu.edu/~cs240ta/fall2016
5 Fall 2016 Scott Woodfield https://students.cs.byu.edu/~cs240ta
1 Spring-Summer 2016 Scott Woodfield
2 Spring-Summer 2016 Ken Rodham
1 Winter 2016 Scott Woodfield https://students.cs.byu.edu/~cs240ta/
2 Winter 2016 Scott Woodfield https://students.cs.byu.edu/~cs240ta/
3 Winter 2016 Ken Rodham https://students.cs.byu.edu/~cs240ta/
4 Winter 2016 Ken Rodham https://students.cs.byu.edu/~cs240ta/
1 Fall 2015 Scott Woodfield https://students.cs.byu.edu/~cs240ta/
2 Fall 2015 Scott Woodfield https://students.cs.byu.edu/~cs240ta/
3 Fall 2015 Ken Rodham https://students.cs.byu.edu/~cs240ta/
4 Fall 2015 Ken Rodham https://students.cs.byu.edu/~cs240ta/
1 Spring-Summer 2015 Ken Rodham http://students.cs.byu.edu/~cs240ta/
2 Spring-Summer 2015 Scott Woodfield http://students.cs.byu.edu/~cs240ta/
1 Winter 2015 Scott Woodfield
2 Winter 2015 Scott Woodfield
3 Winter 2015 Ken Rodham https://students.cs.byu.edu/~cs240ta/
4 Winter 2015 Ken Rodham https://students.cs.byu.edu/~cs240ta/
1 Fall 2014 Scott Woodfield http://students.cs.byu.edu/~cs240ta
2 Fall 2014 Scott Woodfield http://students.cs.byu.edu/~cs240ta
3 Fall 2014 Ken Rodham http://students.cs.byu.edu/~cs240ta/fall2014/
4 Fall 2014 Ken Rodham http://students.cs.byu.edu/~cs240ta/fall2014/
1 Spring-Summer 2014 Ken Rodham http://students.cs.byu.edu/~cs240ta/spring2014/
2 Spring-Summer 2014 http://students.cs.byu.edu/~cs240ta
1 Winter 2014 Scott Woodfield http://students.cs.byu.edu/~cs240ta
2 Winter 2014 Scott Woodfield http://students.cs.byu.edu/~cs240ta
3 Winter 2014 Ken Rodham http://students.cs.byu.edu/~cs240ta/winter2014/
4 Winter 2014 Ken Rodham http://students.cs.byu.edu/~cs240ta/winter2014/
1 Fall 2013 Scott Woodfield
2 Fall 2013 Scott Woodfield
3 Fall 2013 Ken Rodham
4 Fall 2013 Ken Rodham
1 Summer 2013 Ken Rodham http://students.cs.byu.edu/~cs240ta/
1 Winter 2013 Scott Woodfield http://students.cs.byu.edu/~cs240ta
2 Winter 2013 Scott Woodfield http://students.cs.byu.edu/~cs240ta
3 Winter 2013 Ken Rodham http://students.cs.byu.edu/~cs240ta/
4 Winter 2013 Ken Rodham http://students.cs.byu.edu/~cs240ta/
1 Fall 2012 Scott Woodfield http://students.cs.byu.edu/~cs240ta/
2 Fall 2012 Scott Woodfield http://students.cs.byu.edu/~cs240ta
3 Fall 2012 Ken Rodham http://students.cs.byu.edu/~cs240ta/
4 Fall 2012 Ken Rodham http://students.cs.byu.edu/~cs240ta/
1 Spring 2012 Ken Rodham http://students.cs.byu.edu/~cs240ta/spring2012/
1 Winter 2012 Ken Rodham http://students.cs.byu.edu/~cs240ta/
2 Winter 2012 Ken Rodham http://students.cs.byu.edu/~cs240ta/
3 Winter 2012 Ken Rodham http://students.cs.byu.edu/~cs240ta/
1 Fall 2011 Cory Barker
2 Fall 2011 Cory Barker
3 Fall 2011 Ken Rodham http://students.cs.byu.edu/~cs240ta/
4 Fall 2011 Ken Rodham http://students.cs.byu.edu/~cs240ta/
1 Summer 2011 Ken Rodham http://students.cs.byu.edu/~cs240ta/
1 Winter 2011 Ken Rodham http://students.cs.byu.edu/~cs240ta/
2 Winter 2011 Ken Rodham http://students.cs.byu.edu/~cs240ta/
3 Winter 2011 Ken Rodham http://students.cs.byu.edu/~cs240ta/
1 Fall 2010 Cory Barker http://students.cs.byu.edu/~cs240ta/
2 Fall 2010 Ken Rodham http://students.cs.byu.edu/~cs240ta/
3 Fall 2010 Ken Rodham http://students.cs.byu.edu/~cs240ta/
1 Summer 2010 Ken Rodham http://students.cs.byu.edu/~cs240ta/
1 Winter 2010 Ken Rodham http://students.cs.byu.edu/~cs240ta/
2 Winter 2010 Ken Rodham http://students.cs.byu.edu/~cs240ta/
1 Fall 2009 Cory Barker http://students.cs.byu.edu/~cs240ta/fall2009
2 Fall 2009 Ken Rodham http://students.cs.byu.edu/~cs240ta/
3 Fall 2009 Ken Rodham http://students.cs.byu.edu/~cs240ta/
1 Summer 2009 Ken Rodham http://students.cs.byu.edu/~cs240ta/
1 Winter 2009 Ken Rodham http://students.cs.byu.edu/~cs240ta/
2 Winter 2009 Ken Rodham http://students.cs.byu.edu/~cs240ta/
1 Fall 2008 Cory Barker http://students.cs.byu.edu/~cs240ta/fall2008/
2 Fall 2008 Ken Rodham http://students.cs.byu.edu/~cs240ta/
3 Fall 2008 Ken Rodham http://students.cs.byu.edu/~cs240ta/
1 Summer 2008 Ken Rodham http://students.cs.byu.edu/~cs240ta/
1 Winter 2008 Parris Egbert http://students.cs.byu.edu/~cs240ta/
2 Winter 2008 Ken Rodham http://students.cs.byu.edu/~cs240ta/
3 Winter 2008 Ken Rodham http://students.cs.byu.edu/~cs240ta/
1 Fall 2007 Cory Barker http://faculty.cs.byu.edu/~rodham/cs240
2 Fall 2007 Ken Rodham http://faculty.cs.byu.edu/~rodham/cs240/
3 Fall 2007 Ken Rodham http://faculty.cs.byu.edu/~rodham/cs240/
1 Spring 2007 Ken Rodham http://faculty.cs.byu.edu/~rodham/cs240/
1 Winter 2007 Parris Egbert http://faculty.cs.byu.edu/~rodham/cs240/
2 Winter 2007 Ken Rodham http://faculty.cs.byu.edu/~rodham/cs240/
3 Winter 2007 Ken Rodham http://faculty.cs.byu.edu/~rodham/cs240/
1 Fall 2006 Cory Barker http://faculty.cs.byu.edu/~rodham/cs240/
2 Fall 2006 Ken Rodham http://faculty.cs.byu.edu/~rodham/cs240/
3 Fall 2006 Ken Rodham http://faculty.cs.byu.edu/~rodham/cs240/
1 Summer 2006 Ken Rodham http://faculty.cs.byu.edu/~rodham/cs240/
1 Winter 2006 Parris Egbert http://faculty.cs.byu.edu/~rodham/cs240/
2 Winter 2006 Ken Rodham http://faculty.cs.byu.edu/~rodham/cs240/
3 Winter 2006 Ken Rodham http://faculty.cs.byu.edu/~rodham/cs240/
1 Fall 2005 Ken Rodham http://faculty.cs.byu.edu/~rodham/cs240/
2 Fall 2005 Ken Rodham http://faculty.cs.byu.edu/~rodham/cs240/
3 Fall 2005 Ken Rodham http://faculty.cs.byu.edu/~rodham/cs240/

Short Summary: 

Advanced Programming Concepts

Credits: 

4

Prerequisites: 

Platform: 

Linux

Language: 

Java

Advanced Programming Concepts

 

Advanced software development with an object-oriented focus. Design, implementation, and testing of several large programs in a Java and Linux environment using current technologies.

 

CS 240 Objectives and Topics

This document is not a syllabus. Instead, for ALL offerings of this course, this document states the purpose, expected objectives, and topics for the course. Faculty members teaching this course should adhere to these objectives and topics. Students taking this course can expect to achieve the objectives and cover the topics specified, and faculty members teaching follow-on courses can expect students to have been appropriately exposed to the prerequisite material as stated.  The “hours” for topics listed below reflect the approximate number of 50-minute class periods (or equivalent) devoted to each topic.

Purpose

This course helps students learn a variety of computer programming skills that are essential in developing software systems.

Learning Outcomes

At the end of this course, students should be able to:
1.  Apply problem solving techniques to large programs (at least two programs, each with ~2500
lines of code).
a.  Use coding, testing, and debugging strategies.
b.  Follow basic object-oriented design concepts.
2.  Write programs in the Java programming language, including: separate compilation and 
linking of modules, pointers, manual dynamic memory management, and writing correct Java 
classes.
3.  Use the Linux programming environment to execute basic commands and to run the compiler,
linker, debugger, memory checker, and profiler.
4.  Demonstrate the aptitude and work ethic necessary to succeed in computer science.

Topics

Introduction to Java and the Linux Programming Environment    (12 hours)
•    The Java Memory Model and Pointers
•    Java Strings and Stream I/O
•    Java References and Parameter Passing
•    Java Classes
•    Multi-File Projects and Make

Principles of Software Design                    (7 hours)
•    Design Principles
•    Project I Overview & Design
•    Project II Overview & Design

Principles of Software Implementation                (17 hours)
•    Memory Management
•    Unit Testing
•    Debugging
•    Error Handling and Defensive Programming
•    Operator Overloading and Templates
•    Standard Template Library
•    Inheritance and Polymorphism in Java
•    Code Tuning