Welcome to Information Systems 403! This is the home location of the course syllabus, assignments, and information.
== Class Learning Objectives ==
After completing this course, you should be able to:
* ”’Create clear and elegant programs to solve IS problems.”’ As the primary programming class in the Information Systems program, you’ll practice your programming skills this semester. We’ll focus on efficient, clear, and elegant solutions to the problems.
* ”’Read current events and think critically about them as an IS professional.”’ You’ll be given a weekly quiz on current events, and we’ll routinely discuss them in class.
* ”’Become proficient in using Internet resources to solve development problems.”’ One of the most important skills in Information Systems is knowing how to find solutions in Internet groups, discussion boards, blogs, tutorials, and other online documentation sources. We’ll practice this skill throughout the semester.
* ”’Learn object-oriented programming principles, data structures, and libraries.”’ The subject matter of the course is object-oriented programming in the Java language. Java is an excellent teaching/learning language because it’s compiler is picky and its language constructs are common in many other languages.
* ”’Understand how to read and effectively use technical documentation.”’ We’ll explore the Javadoc documentation for the Java libraries.
In the context of these objectives, we’ll discuss topics such as the following:
* Three parts of an object (data, methods, identity),
* Inheritance, polymorphism, encapsulation
* Different types of methods: accessors, constructors, etc…
* Object construction and destruction, heap, stack, memory management, garbage collection
* Inheritance vs. composition
* I/O libraries in Java
* Data structures, specifically lists and maps/dictionaries. Different types of these two base data structures.
* Debugging, compile vs. runtime errors
* Reading and writing documentation (Javadoc)
* Event-based programming (GUI)
* try/catch
== Assignments ==
This class is made up primarily of programming projects. I firmly believe that the only way to learn programming is to practice, practice, practice (oh, and practice). So rather than filling up the semester with topic lectures, I’ll be focusing class time on assignments. We’ll spend some time discussing concepts in each assignment, some time in group work, and some time in help sessions.
See the schedule below for links to individual assignments. Assignments are due at 8:00am on the day indicated in my dropbox at http://warp.byu.edu/cgi-bin/dropbox.py. Please do not submit assignments via Blackboard.
Assignments that you score at least a 1/5 on on can be turned in a second time for additional credit. You can turn it in (the second time) anytime up to the last day of official classes. If you turn in an assignment again, I’ll regrade it from scratch and average your two scores. Note that you must turn the first version in on time and receive at least a 1/5 on it on that version. Then you have until the last day of class to raise your score. When you turn it in, prepare a new readme called README_RESUBMIT.TXT that explains how to fixed your code and what score you should now get.
The projects for the course are as follows:
* [[ISys 403: Bank Objects]]
* [[ISys 403: Today's News]]
* [[ISys 403: Bank GUI]]
* [[ISys 403: Benford's Law]]
* [[ISys 403: Manager's Miner]]
* [[ISys 403: Chatter]]
All projects will be graded according to the [[ISys 403: Grading Policy]]. This document outlines a 0-5 scale that includes an extra feature on each project for full credit.
== Dropbox ==
Please place your assignments in my dropbox at:
http://warp.byu.edu/cgi-bin/dropbox.py
== Current Events Quizzes ==
You are required to take a current events quiz each week. This will count for 5 percent of your grade.
== Schedule ==
See the shared Google spreadsheet (URL given in class) for the combined core schedule.
== Course Evaluation ==
The grade allocation in the course is as follows:
The assignments, grade breakdown, and schedule may change during the semester depending upon class needs.
== Instructor ==
<br> Dr. Conan C. Albrecht
<br> http://warp.byu.edu/
<br> conan@warp.byu.edu
<br> 780 TNRB
<br> 805-1615
<br> Office Hours: Anytime I’m not teaching on class days (MW)
== Island ==
One of the most important things you’ll do in the class is sign up for Island. I will send important announcements, assignment hints, and schedule changes out to you in the ISys Core group on Island.
Please be wise in what you post to the site. Legitimate questions and legitimate answers are fully legal. Please don’t post verbatim assignment answers or quiz or test information to the list. I trust each of you knows where the fine line is.
Sign up for the ISys Core group at http://island.byu.edu/ on your account settings page.
== Computers ==
I expect every student to have exclusive access to a laptop computer. The last class period each week (i.e. every other class period) will be a lab day. We will meet in the regular classroom, and Dr. Albrecht and the TAs will walk around and help students and groups with assignments. Lab time has proved invaluable in past semesters. It is an acceptance requirement for the ISys program that you have a laptop computer.
On a personal note, I know a computer is a major purchase for most of you. For this reason I haven’t required you to buy a $100 book for the class (or for 403). Please consider the amount of money you have spent on school throughout the years and make the investment in yourself.
I don’t care whether you buy a Windows, Linux, BSD, or Mac-based machine. In fact, I encourage each of you to try an operating system you haven’t used before, such as Linux or Mac. Linux can be installed side by side with Windows. When purchasing a computer, you may want to investigate leasing, renting, refurbished models, and other discount options. During the year, I hope your laptop becomes your ’sidekick’ that you know well and depend upon. It should be as important to you and as personal as a baseball glove is to a professional MLB player or a favorite blanket is to a child.
== Frequently Asked Questions ==
;I lost my homework. My computer crashed. My disk was corrupted. My dog ate it!
:Keep backups. I am generally unforgiving to these circumstances because we are Information Systems professionals. Clients will not accept these excuses. Keep regular backups. Print your source code out if you’re really worried about losing it. Do it early enough that crashes can be redone. Did I mention to keep regular backups (i.e. multiple copies)? Backups are also a good idea. One thing I’ve found very useful in the past is to keep good, multiple-level backups of my work. Another useful thing is to keep good backups. Finally, don’t forget to back up your work. And keep your dog away from your computer in the future.
;I couldn’t turn the assignment in (or take the test or quiz) because I was out of town for business, an interview, athletics, or any other reason.
:Please make arrangements before the assignment is due. Do them early enough that you can get them turned in before you leave. I will not accept late assignments unless you have a really, really, really good reason. Otherwise, please don’t ask.
;Is there a TA that can help me?
:Yes. Please email one to meet with you individually or set up a help session.
;Can I work with other students on assignments?
:Yes, please do! You have many students around you who know how to do the project you’re working on. Please ask their help. You are even welcome to partner with another student and complete projects in parallel. However, you need to do your own work. You need to have your own copy. It is cheating to simply copy code directly from another student. If you work together, please sit at computers next to each other and type everything in yourselves. Your code should not be exactly the same when you turn it in. There will be differences in spacing, tabbing, variable names, etc. On tests and quizzes, please do not work together.
;Can I use something besides NetBeans?
:Please use NetBeans for the Core. It is too difficult to have students using different platforms for development. We need to maintain consistency within the class. After the core, please experiment with the different environments and pick the one you like best.
; I use a Mac. I use Unix. I use VMS. I use Linux. Will I have problems in the course?
: Good for you! You can likely run NetBeans on it. I encourage diversity and openness in systems. Get to know all of these operating systems and use them regularly.
== Additional Policies ==
I support and enforce the Marriott School general classroom policies found at http://marriottschool.byu.edu/classroompolicies/.
| Welcome to Information Systems 403! This is the home location of the course syllabus, assignments, and information.
== Class Learning Objectives ==
After completing this course, you should be able to:
* ”’Create clear and elegant programs to solve IS problems.”’ As the primary programming class in the Information Systems program, you’ll practice your programming skills this semester. We’ll focus on efficient, clear, and elegant solutions to the problems.

Welcome to Information Systems 413! This is the home location of the course syllabus, assignments, and information.

Class Learning Objectives

After completing this course, you should be able to:

  • Read current events and think critically about them as an IS professional.  You’ll be given a weekly quiz on current events, and we’ll routinely discuss them in class.
  • Learn to develop information systems within group settings.  The entire semester is based around INTEX II, an intense, group project.  You’ll need to develop a complex information system clear through implementation and testing.
  • Work as leaders and as group members in development teams. You should have opportunity during the semester to work as leader of your team as well as a regular group member.  For each phase of the project, pick a leader who will make sure things happen as they should.
  • Develop time management expertise within intense development projects. The project this semester will be intense — just like projects are in the real world.  The semester will give you a chance to further develop your time management skills.
  • Learn enterprise system development principles and patterns. We’ll use best practices models and methods of enterprise development, such as business objects, data layers, and object-relational mappings to develop the project.

Final Exam

The final exam will be posted later in the semester.

Dropbox

Please place your projects/exams in my dropbox at: http://warp.byu.edu/cgi-bin/dropbox.py

Group Presentations

Each group needs to give a presentation during the second half of the semester.  The presentation lasts 30 minutes and should be in depth and well done.  The following is an example format for your presentation:

  1. History
  2. Background – why was it invented?  (what itch did it scratch?)
  3. Benefits and limitations
  4. Example or Tutorial (with actual code) – this is the major portion of your presentation!
  5. Competitors and Future

Your group needs to choose one of the following topics for your presentation.  Each group must do a different topic, so sign up early!

Topics:

  • .NET (architecture, GUI apps, web apps)
  • J2EE EJBs  (architecture, GUI apps, web apps)
  • Mail servers (anatomy of email, sending mail from Java programs)
  • Flex and Flash (Actionscript examples)
  • Search Engine Optimization for web sites
  • Linux, Unix, SSH, etc.
  • Apache, IIS web servers, modules and plugins
  • Developing Facebook Applications
  • XML, XSL, XPath, Schema, XQuery (go beyond basic XML)
  • ebXML (what is it, how does it work, relation to EDI)
  • Web frameworks: Ruby on Rails and Django (others are fair game as well)
  • AJAX (show the DOM in Firebug, Javascript language, CSS, toolkits like JQuery)
  • Service Oriented Architectures and Web Services (relation to CORBA, security, how it works)
  • Graphics (web formats, Photoshop and other programs, creating/modifying graphics from Java)

Course Evaluation

The following table shows the grade breakdown:

Percentage Grade
93 A
90 A-
87 B+
83 B
80 B-
77 C+
73 C
70 C-
67 D+
63 D
60 D-

The assignments, grade breakdown, and schedule may change during the semester depending upon class needs.

Instructor

Dr. Conan C. Albrecht

http://warp.byu.edu/

conan@warp.byu.edu

780 TNRB

805-1615

Office Hours: Anytime I’m not teaching on class days (MW)

Island

One of the most important things you’ll do in the class is sign up for Island. I will send important announcements, assignment hints, and schedule changes out to you in the ISys Core group on Island.

Please be wise in what you post to the site. Legitimate questions and legitimate answers are fully legal. Please don’t post verbatim assignment answers or quiz or test information to the list. I trust each of you knows where the fine line is.

Sign up for the ISys Core group at http://island.byu.edu/ on your account settings page.

Computers

I expect every student to have exclusive access to a laptop computer. The last class period each week (i.e. every other class period) will be a lab day. We will meet in the regular classroom, and Dr. Albrecht and the TAs will walk around and help students and groups with assignments. Lab time has proved invaluable in past semesters. It is an acceptance requirement for the ISys program that you have a laptop computer.

On a personal note, I know a computer is a major purchase for most of you. For this reason I haven’t required you to buy a $100 book for the class (or for 403). Please consider the amount of money you have spent on school throughout the years and make the investment in yourself.

I don’t care whether you buy a Windows, Linux, BSD, or Mac-based machine. In fact, I encourage each of you to try an operating system you haven’t used before, such as Linux or Mac. Linux can be installed side by side with Windows. When purchasing a computer, you may want to investigate leasing, renting, refurbished models, and other discount options. During the year, I hope your laptop becomes your ’sidekick’ that you know well and depend upon. It should be as important to you and as personal as a baseball glove is to a professional MLB player or a favorite blanket is to a child.

Frequently Asked Questions

I lost my homework. My computer crashed. My disk was corrupted. My dog ate it!

Keep backups. I am generally unforgiving to these circumstances because we are Information Systems professionals. Clients will not accept these excuses. Keep regular backups. Print your source code out if you’re really worried about losing it. Do it early enough that crashes can be redone. Did I mention to keep regular backups (i.e. multiple copies)? Backups are also a good idea. One thing I’ve found very useful in the past is to keep good, multiple-level backups of my work. Another useful thing is to keep good backups. Finally, don’t forget to back up your work. And keep your dog away from your computer in the future.

I couldn’t turn the assignment in (or take the test or quiz) because I was out of town for business, an interview, athletics, or any other reason.

Please make arrangements before the assignment is due. Do them early enough that you can get them turned in before you leave. I will not accept late assignments unless you have a really, really, really good reason. Otherwise, please don’t ask.

Is there a TA that can help me?

Yes. Please email one to meet with you individually or set up a help session.

Can I work with other students on assignments?

Yes, please do! You have many students around you who know how to do the project you’re working on. Please ask their help. You are even welcome to partner with another student and complete projects in parallel. However, you need to do your own work. You need to have your own copy. It is cheating to simply copy code directly from another student. If you work together, please sit at computers next to each other and type everything in yourselves. Your code should not be exactly the same when you turn it in. There will be differences in spacing, tabbing, variable names, etc. On tests and quizzes, please do not work together.

Can I use something besides NetBeans?

Please use NetBeans for the Core. It is too difficult to have students using different platforms for development. We need to maintain consistency within the class. After the core, please experiment with the different environments and pick the one you like best.

I use a Mac. I use Unix. I use VMS. I use Linux. Will I have problems in the course?

Good for you! You can likely run NetBeans on it. I encourage diversity and openness in systems. Get to know all of these operating systems and use them regularly.

Additional Policies

I support and enforce the Marriott School general classroom policies found athttp://marriottschool.byu.edu/classroompolicies/.