Size: px
Start display at page:

Download ""

Transcription

1

2

3

4 / WordFriday

5 enterprise, noun

6

7

8

9

10 enterprise, noun a project or undertaking that is especially bold, complicated or arduous readiness to engage in undertakings of difficulty, risk, danger or daring a design of which the execution is attempted a commercial or industrial undertaking a firm, company or business a unit of economic organisation or activity Concise Oxford English Dictionary Oxford English Dictionary Merriam-Webster's Collegiate Dictionary

11 enterprise, noun a project or undertaking that is especially bold, complicated or arduous readiness to engage in undertakings of difficulty, risk, danger or daring a design of which the execution is attempted a commercial or industrial undertaking a firm, company or business a unit of economic organisation or activity Concise Oxford English Dictionary Oxford English Dictionary Merriam-Webster's Collegiate Dictionary

12 code, noun a set of instructions for a computer a computer program, or a portion thereof a system of words, figures or symbols used to represent others, especially for the purposes of secrecy a set of conventions or principles governing behaviour or activity in a particular domain Concise Oxford English Dictionary Oxford English Dictionary Merriam-Webster's Collegiate Dictionary

13 Fizz buzz is a group word game for children to teach them about division.

14 Players generally sit in a circle. The player designated to go first says the number "1", and each player thenceforth counts one number in turn. However, any number divisible by three is replaced by the word fizz and any divisible by five by the word buzz. Numbers divisible by both become fizz buzz. A player who hesitates or makes a mistake is eliminated from the game.

15 Players generally sit in a circle. The player designated to go first says the number "1", and each player thenceforth counts one number in turn. However, any number divisible by three is replaced by the word fizz and any divisible by five by the word buzz. Numbers divisible by both become fizz buzz. A player who hesitates or makes a mistake is eliminated from the game.

16 Players generally sit in a circle. The player designated to go first says the number "1", and each player thenceforth counts one number in turn. However, any number divisible by three is replaced by the word fizz and any divisible by five by the word buzz. Numbers divisible by both become fizz buzz. A player who hesitates or makes a mistake is eliminated from the game.

17 Adults may play Fizz buzz as a drinking game, where making a mistake leads to the player having to make a drinking-related forfeit. [citation needed]

18 Fizz buzz has been used as an interview screening device for computer programmers.

19 FizzBuzz was invented to avoid the awkwardness of realising that nobody in the room can binary search an array.

20

21 I have yet to see any problem, however complicated, which, when you looked at it in the right way, did not become still more complicated. Anderson's Law

22

23

24 Architecture is the art of how to waste space. Philip Johnson

25

26

27

28

29 / WordFriday

30 bi-quinary coded decimal, noun A system of representing numbers based on counting in fives, with an additional indicator to show whether the count is in the first or second half of the decimal range, i.e., whether the number represented is in the range 0 4 or 5 9. This system is found in many abacus systems, with paired columns of counters (normally aligned) representing each bi-quinary range. The Roman numeral system is also a form of biquinary coded decimal.

31

32

33

34

35 Signal-to-noise ratio (often abbreviated SNR or S/N) is a measure used in science and engineering that compares the level of a desired signal to the level of background noise. Signal-to-noise ratio is sometimes used informally to refer to the ratio of useful information to false or irrelevant data in a conversation or exchange.

36

37

38

39 OBJECT-ORIENTED VenetianBlind Door Television Glass Picture Peephole TelevisionRemoteControl Sofa

40

41

42 public interface BookEntity... public interface BookEntityFactory... public interface ISBNValidator... public interface CatalogueRepository... public interface CatalogueRepositoryProvider... public abstract class AbstractBookEntity implements BookEntity public class BookEntityImpl extends AbstractBookEntity... public class BookEntityFactoryImpl implements BookEntityFactory... public class ISBNValidatorImpl implements ISBNValidator... public class CatalogueRepositoryImpl implements CatalogueRepository... public class CatalogueRepositoryProviderImpl implements CatalogueRepositoryProvider...

43 public interface Book... public final class ISBN... public interface Catalogue... public class DescriptionOfCatalogueImplementation implements Catalogue...

44 Naomi Epel The Observation Deck

45

46 People will be using the words you choose in their conversation for the next 20 years. You want to be sure you do it right.

47 package com.sun...;

48 Public APIs, like diamonds, are forever. Joshua Bloch "Bumper-Sticker API Design"

49 People will be using the words you choose in their conversation for the next 20 years. You want to be sure you do it right. Unfortunately, many people get all formal [...]. Just calling it what it is isn't enough.

50 They have to tack on a flowery, computer science-y, impressive sounding, but ultimately meaningless word, like Object, Thing, Component, Part, Manager, Entity, or Item.

51 public class ConfigurationManager...

52 public class Configuration...

53 public interface ConditionChecker boolean checkcondition();

54 public interface Condition boolean istrue();

55

56 Connection Factory Connection Connection Impl

57 Connection Pool Connection Pooled Connection

58 Parser Builder Tree

59 Parser Builder Tree BuilderImpl

60 Parser ParserListener Tree Builder

61 Parser ParserListener Builder Tree

62 Cargo cult programming is a style of computer programming characterized by the ritual inclusion of code or program structures that serve no real purpose.

63

64 Cargo cult programming is a style of computer programming characterized by the ritual inclusion of code or program structures that serve no real purpose. Cargo cult programming can also refer to the results of applying a design pattern or coding style blindly without understanding the reasons behind that design principle.

65

66 Rien n'est plus dangereux qu'une idée, quand on n'a qu'une idée. Émile-Auguste Chartier

67 Nothing is more dangerous than an idea, when you have only one idea. Émile-Auguste Chartier

68 Nothing is more dangerous than an IDE, when you have only one IDE.

69 I currently have an average of imports in each source file, which is seriously making my code mixed-up and confusing. Is too many imports in your code a bad thing? Is there any way around this?

70 It's normal in Java world to have a lot of imports. Not importing whole packages is good practice. It's a good practice to import class by class instead of importing whole packages.

71 Why?

72 It is not a problem. Any IDE will manage imports and show them to you only when needed. Most IDEs support code folding where all the imports are folded down to one line. I rarely even see my imports these days as the IDE manages them and hides them as well. Any good IDE, such as Eclipse, will collapse the imports in one line, and you can expand them when needed, so they won't clutter your view.

73

74 It is not a problem. Any IDE will manage imports and show them to you only when needed. Most IDEs support code folding where all the imports are folded down to one line. I rarely even see my imports these days as the IDE manages them and hides them as well. Any good IDE, such as Eclipse, will collapse the imports in one line, and you can expand them when needed, so they won't clutter your view.

75 It is not a problem. Any IDE will manage imports and show them to you only when needed. Most IDEs support code folding where all the imports are folded down to one line. I rarely even see my imports these days as the IDE manages them and hides them as well. Any good IDE, such as Eclipse, will collapse the imports in one line, and you can expand them when needed, so they won't clutter your view.

76 What is the Matrix? Control. The Matrix is a computer-generated dream world built to keep us under control in order to change a human being into this. Warner Bros.

77 I currently have an average of imports in each source file, which is seriously making my code mixed-up and confusing. Is too many imports in your code a bad thing? Is there any way around this? Yes? Yes. Yes!

78

79 Avoid Long Import Lists by Using Wildcards Long lists of imports are daunting to the reader. We don't want to clutter up the tops of our modules with 80 lines of imports. Rather we want the imports to be a concise statement about which packages we collaborate with.

80 import java.util.arraylist; import java.util.collection; import java.util.hashmap; import java.util.hashset; import java.util.linkedhashmap; import java.util.linkedhashset; import java.util.linkedlist; import java.util.list; import java.util.map; import java.util.navigablemap; import java.util.navigableset; import java.util.set; import java.util.sortedmap; import java.util.sortedset; import java.util.treemap; import java.util.treeset;

81 import java.util.*;

82 import java.beans.introspector; import java.lang.reflect.array; import java.lang.reflect.constructor; import java.lang.reflect.method; import java.lang.reflect.modifier; import java.lang.reflect.proxy; import java.util.arrays; import java.util.collection; import java.util.collections; import java.util.hashmap; import java.util.hashset; import java.util.iterator; import java.util.linkedhashset; import java.util.map; import java.util.set;

83 import java.beans.*; import java.lang.reflect.*; import java.util.*;

84 import java.awt.*; import java.util.*; List?

85 import java.awt.*; import java.util.*; import java.util.list;

86

87 Connection * CreateServerConnection() // Declarations char buffer[1024]; std::string cfgaddress; unsigned long address; std::string cfgport; unsigned short port; Connection * result; // Get address and check that its OK (throw an exception if its not) cfgaddress = ConfigurationManager::Instance().GetValue("address"); if(cfgaddress.empty()) sprintf(buffer, "Configuration value missing: %s", "address"); Log::Instance().Write(buffer); throw ConnectionException(buffer); // Convert adress to bytes and check that its OK (throw an exception if its not) address = inet_addr(cfgaddress.data()); if(address == -1) sprintf(buffer, "Invalid address: %s", cfgaddress.data()); Log::Instance().Write(buffer); throw ConnectionException(buffer); // Get port and check that its OK (throw an exception if its not) cfgport = ConfigurationManager::Instance().GetValue("port"); if(cfgport.empty()) sprintf(buffer, "Configuration value missing: %s", "port"); Log::Instance().Write(buffer); throw ConnectionException(buffer); // Convert port too bytes port = htons(atoi(cfgport.data())); // Creation connection and check that its OK (throw an exception if its not) result = new Connection(address, port); if(!result!result->isok()) sprintf(buffer, "Failed to connect: %s:%s", cfgaddress.data(), cfgport.data()); Log::Instance().Write(buffer); throw ConnectionException(buffer); // Return the connection return result;

88 Connection * CreateServerConnection() // Declarations char buffer[1024]; std::string cfgaddress; unsigned long address; std::string cfgport; unsigned short port; Connection * result;...

89 Connection * CreateServerConnection()... // Get address and check that its OK (throw an exception if its not) cfgaddress = ConfigurationManager::Instance().GetValue("address"); if(cfgaddress.empty()) sprintf(buffer, "Configuration value missing: %s", "address"); Log::Instance().Write(buffer); throw ConnectionException(buffer);...

90 Connection * CreateServerConnection()... // Convert adress to bytes and check that its OK (throw an exception if its not) address = inet_addr(cfgaddress.data()); if(address == -1) sprintf(buffer, "Invalid address: %s", cfgaddress.data()); Log::Instance().Write(buffer); throw ConnectionException(buffer);...

91 Connection * CreateServerConnection()... // Get port and check that its OK (throw an exception if its not) cfgport = ConfigurationManager::Instance().GetValue("port"); if(cfgport.empty()) sprintf(buffer, "Configuration value missing: %s", "port"); Log::Instance().Write(buffer); throw ConnectionException(buffer);...

92 Connection * CreateServerConnection()... // Convert port too bytes port = htons(atoi(cfgport.data()));...

93 Connection * CreateServerConnection()... // Creation connection and check that its OK (throw an exception if its not) result = new Connection(address, port); if(!result!result->isok()) sprintf(buffer, "Failed to connect: %s:%s", cfgaddress.data(), cfgport.data()); Log::Instance().Write(buffer); throw ConnectionException(buffer);...

94 Connection * CreateServerConnection()... // Return the connection return result;

95 Connection * CreateServerConnection() // Declarations... // Get address and check that its OK (throw an exception if its not)... // Convert adress to bytes and check that its OK (throw an exception if its not)... // Get port and check that its OK (throw an exception if its not)... // Convert port too bytes... // Creation connection and check that its OK (throw an exception if its not)... // Return the connection...

96 Connection * CreateServerConnection() // Declarations... // Get address and check that it's OK (throw an exception if it's not)... // Convert address to bytes and check that it's OK (throw an exception if it's not)... // Get port and check that it's OK (throw an exception if it's not)... // Convert port to bytes... // Creation connection and check that it's OK (throw an exception if it's not)... // Return the connection...

97 Connection * CreateServerConnection()

98 Connection * CreateServerConnection() char buffer[1024]; std::string cfgaddress; unsigned long address; std::string cfgport; unsigned short port; Connection * result; cfgaddress = ConfigurationManager::Instance().GetValue("address"); if(cfgaddress.empty()) sprintf(buffer, "Configuration value missing: %s", "address"); Log::Instance().Write(buffer); throw ConnectionException(buffer); address = inet_addr(cfgaddress.data()); if(address == -1) sprintf(buffer, "Invalid address: %s", cfgaddress.data()); Log::Instance().Write(buffer); throw ConnectionException(buffer); cfgport = ConfigurationManager::Instance().GetValue("port"); if(cfgport.empty()) sprintf(buffer, "Configuration value missing: %s", "port"); Log::Instance().Write(buffer); throw ConnectionException(buffer); port = htons(atoi(cfgport.data())); result = new Connection(address, port); if(!result!result->isok()) sprintf(buffer, "Failed to connect: %s:%s", cfgaddress.data(), cfgport.data()); Log::Instance().Write(buffer); throw ConnectionException(buffer); return result;

99 Connection * CreateServerConnection() char buffer[1024]; std::string cfgaddress = ConfigurationManager::Instance().GetValue("address"); if(cfgaddress.empty()) sprintf(buffer, "Configuration value missing: %s", "address"); Log::Instance().Write(buffer); throw ConnectionException(buffer); unsigned long address = inet_addr(cfgaddress.data()); if(address == -1) sprintf(buffer, "Invalid address: %s", cfgaddress.data()); Log::Instance().Write(buffer); throw ConnectionException(buffer); std::string cfgport = ConfigurationManager::Instance().GetValue("port"); if(cfgport.empty()) sprintf(buffer, "Configuration value missing: %s", "port"); Log::Instance().Write(buffer); throw ConnectionException(buffer); unsigned short port = htons(atoi(cfgport.data())); Connection * result = new Connection(address, port); if(!result!result->isok()) sprintf(buffer, "Failed to connect: %s:%s", cfgaddress.data(), cfgport.data()); Log::Instance().Write(buffer); throw ConnectionException(buffer); return result;

100 Connection * CreateServerConnection() char buffer[1024]; auto cfgaddress = ConfigurationManager::Instance().GetValue("address"); if(cfgaddress.empty()) sprintf(buffer, "Configuration value missing: %s", "address"); Log::Instance().Write(buffer); throw ConnectionException(buffer); auto address = inet_addr(cfgaddress.data()); if(address == -1) sprintf(buffer, "Invalid address: %s", cfgaddress.data()); Log::Instance().Write(buffer); throw ConnectionException(buffer); auto cfgport = ConfigurationManager::Instance().GetValue("port"); if(cfgport.empty()) sprintf(buffer, "Configuration value missing: %s", "port"); Log::Instance().Write(buffer); throw ConnectionException(buffer); auto port = htons(atoi(cfgport.data())); Connection * result = new Connection(address, port); if(!result!result->isok()) sprintf(buffer, "Failed to connect: %s:%s", cfgaddress.data(), cfgport.data()); Log::Instance().Write(buffer); throw ConnectionException(buffer); return result;

101 Connection * CreateServerConnection()... Connection * result = new Connection(address, port); if(!result!result->isok()) sprintf(buffer, "Failed to connect: %s:%s", cfgaddress.data(), cfgport.data()); Log::Instance().Write(buffer); throw ConnectionException(buffer); return result;

102 Connection * CreateServerConnection()... Connection * result = new Connection(address, port); if(!result->isok()) sprintf(buffer, "Failed to connect: %s:%s", cfgaddress.data(), cfgport.data()); Log::Instance().Write(buffer); throw ConnectionException(buffer); return result;

103 std::auto_ptr<connection> CreateServerConnection()... std::auto_ptr<connection> result(new Connection(address, port)); if(!result->isok()) sprintf(buffer, "Failed to connect: %s:%s", cfgaddress.data(), cfgport.data()); Log::Instance().Write(buffer); throw ConnectionException(buffer); return result;

104 std::unique_ptr<connection> CreateServerConnection()... auto result = std::make_unique<connection>(address, port); if(!result->isok()) sprintf(buffer, "Failed to connect: %s:%s", cfgaddress.data(), cfgport.data()); Log::Instance().Write(buffer); throw ConnectionException(buffer); return result;

105 Connection * CreateServerConnection()... auto result = std::make_unique<connection>(address, port); if(!result->isok()) sprintf(buffer, "Failed to connect: %s:%s", cfgaddress.data(), cfgport.data()); Log::Instance().Write(buffer); throw ConnectionException(buffer); return result.release();

106 Connection * CreateServerConnection() char buffer[1024]; auto cfgaddress = ConfigurationManager::Instance().GetValue("address"); if(cfgaddress.empty()) sprintf(buffer, "Configuration value missing: %s", "address"); Log::Instance().Write(buffer); throw ConnectionException(buffer); auto address = inet_addr(cfgaddress.data()); if(address == -1) sprintf(buffer, "Invalid address: %s", cfgaddress.data()); Log::Instance().Write(buffer); throw ConnectionException(buffer); auto cfgport = ConfigurationManager::Instance().GetValue("port"); if(cfgport.empty()) sprintf(buffer, "Configuration value missing: %s", "port"); Log::Instance().Write(buffer); throw ConnectionException(buffer); auto port = htons(atoi(cfgport.data())); auto result = std::make_unique<connection>(address, port); if(!result->isok()) sprintf(buffer, "Failed to connect: %s:%s", cfgaddress.data(), cfgport.data()); Log::Instance().Write(buffer); throw ConnectionException(buffer); return result.release();

107 Connection * CreateServerConnection() char buffer[1024]; auto cfgaddress = ConfigurationManager::Instance().GetValue("address"); if(cfgaddress.empty()) sprintf(buffer, "Configuration value missing: %s", "address"); Log::Instance().Write(buffer); throw ConnectionException(buffer); auto address = inet_addr(cfgaddress.data()); if(address == -1) sprintf(buffer, "Invalid address: %s", cfgaddress.data()); Log::Instance().Write(buffer); throw ConnectionException(buffer); auto cfgport = ConfigurationManager::Instance().GetValue("port"); if(cfgport.empty()) sprintf(buffer, "Configuration value missing: %s", "port"); Log::Instance().Write(buffer); throw ConnectionException(buffer); auto port = htons(atoi(cfgport.data())); auto result = std::make_unique<connection>(address, port); if(!result->isok()) sprintf(buffer, "Failed to connect: %s:%s", cfgaddress.data(), cfgport.data()); Log::Instance().Write(buffer); throw ConnectionException(buffer); return result.release();

108 Connection * CreateServerConnection() char buffer[1024]; auto cfgaddress = ConfigurationManager::Instance().GetValue("address"); if(cfgaddress.empty()) sprintf(buffer, "Configuration value missing: %s", "address"); Log::Instance().Write(buffer); throw ConnectionException(buffer); auto address = inet_addr(cfgaddress.c_str()); if(address == -1) sprintf(buffer, "Invalid address: %s", cfgaddress.c_str()); Log::Instance().Write(buffer); throw ConnectionException(buffer); auto cfgport = ConfigurationManager::Instance().GetValue("port"); if(cfgport.empty()) sprintf(buffer, "Configuration value missing: %s", "port"); Log::Instance().Write(buffer); throw ConnectionException(buffer); auto port = htons(atoi(cfgport.c_str())); auto result = std::make_unique<connection>(address, port); if(!result->isok()) sprintf(buffer, "Failed to connect: %s:%s", cfgaddress.c_str(), cfgport.c_str()); Log::Instance().Write(buffer); throw ConnectionException(buffer); return result.release();

109 Connection * CreateServerConnection() char buffer[1024]; auto cfgaddress = ConfigurationManager::Instance().GetValue("address"); if(cfgaddress.empty()) sprintf(buffer, "Configuration value missing: %s", "address"); Log::Instance().Write(buffer); throw ConnectionException(buffer); auto address = inet_addr(cfgaddress.c_str()); if(address == -1) sprintf(buffer, "Invalid address: %s", cfgaddress.c_str()); Log::Instance().Write(buffer); throw ConnectionException(buffer); auto cfgport = ConfigurationManager::Instance().GetValue("port"); if(cfgport.empty()) sprintf(buffer, "Configuration value missing: %s", "port"); Log::Instance().Write(buffer); throw ConnectionException(buffer); auto port = htons(stoi(cfgport)); auto result = std::make_unique<connection>(address, port); if(!result->isok()) sprintf(buffer, "Failed to connect: %s:%s", cfgaddress.c_str(), cfgport.c_str()); Log::Instance().Write(buffer); throw ConnectionException(buffer); return result.release();

110 Connection * CreateServerConnection() char buffer[1024]; auto cfgaddress = ConfigurationManager::Instance().GetValue("address"); if(cfgaddress.empty()) sprintf(buffer, "Configuration value missing: %s", "address"); Log::Instance().Write(buffer); throw ConnectionException(buffer); auto address = inet_addr(cfgaddress.c_str()); if(address == -1) sprintf(buffer, "Invalid address: %s", cfgaddress.c_str()); Log::Instance().Write(buffer); throw ConnectionException(buffer); auto cfgport = ConfigurationManager::Instance().GetValue("port"); if(cfgport.empty()) sprintf(buffer, "Configuration value missing: %s", "port"); Log::Instance().Write(buffer); throw ConnectionException(buffer); auto port = htons(stoi(cfgport)); auto result = std::make_unique<connection>(address, port); if(!result->isok()) sprintf(buffer, "Failed to connect: %s:%s", cfgaddress.c_str(), cfgport.c_str()); Log::Instance().Write(buffer); throw ConnectionException(buffer); return result.release();

111 Connection * CreateServerConnection() char buffer[1024]; auto cfgaddress = ConfigurationManager::Instance().GetValue("address"); if(cfgaddress.empty()) snprintf(buffer, sizeof buffer, "Configuration value missing: %s", "address"); Log::Instance().Write(buffer); throw ConnectionException(buffer); auto address = inet_addr(cfgaddress.c_str()); if(address == -1) snprintf(buffer, sizeof buffer, "Invalid address: %s", cfgaddress.c_str()); Log::Instance().Write(buffer); throw ConnectionException(buffer); auto cfgport = ConfigurationManager::Instance().GetValue("port"); if(cfgport.empty()) snprintf(buffer, sizeof buffer, "Configuration value missing: %s", "port"); Log::Instance().Write(buffer); throw ConnectionException(buffer); auto port = htons(stoi(cfgport)); auto result = std::make_unique<connection>(address, port); if(!result->isok()) snprintf(buffer, sizeof buffer, "Failed to connect: %s:%s", cfgaddress.c_str(), cfgport.c_str()); Log::Instance().Write(buffer); throw ConnectionException(buffer); return result.release();

112 Connection * CreateServerConnection() char buffer[1024];... if(cfgaddress.empty()) snprintf(buffer, sizeof buffer, "Configuration value missing: %s", "address"); Log::Instance().Write(buffer); throw ConnectionException(buffer);... if(address == -1) snprintf(buffer, sizeof buffer, "Invalid address: %s", cfgaddress.c_str()); Log::Instance().Write(buffer); throw ConnectionException(buffer);...

113 Connection * CreateServerConnection()... if(cfgaddress.empty()) std::stringstream buffer; buffer << "Configuration value missing: " << "address"; Log::Instance().Write(buffer.str()); throw ConnectionException(buffer.str());... if(address == -1) std::stringstream buffer; buffer << "Invalid address: " << cfgaddress; Log::Instance().Write(buffer.str()); throw ConnectionException(buffer.str());...

114 Connection * CreateServerConnection()... if(cfgaddress.empty()) static const char * logmessage = "Configuration value missing: address"; Log::Instance().Write(logMessage); throw ConnectionException(logMessage);... if(address == -1) auto logmessage = "Invalid address: " + cfgaddress; Log::Instance().Write(logMessage); throw ConnectionException(logMessage);...

115 Connection * CreateServerConnection() auto cfgaddress = ConfigurationManager::Instance().GetValue("address"); if(cfgaddress.empty()) static const char * logmessage = "Configuration value missing: address"; Log::Instance().Write(logMessage); throw ConnectionException(logMessage); auto address = inet_addr(cfgaddress.c_str()); if(address == -1) auto logmessage = "Invalid address: " + cfgaddress; Log::Instance().Write(logMessage); throw ConnectionException(logMessage); auto cfgport = ConfigurationManager::Instance().GetValue("port"); if(cfgport.empty()) static const char * logmessage = "Configuration value missing: port"); Log::Instance().Write(logMessage); throw ConnectionException(logMessage); auto port = htons(stoi(cfgport)); auto result = std::make_unique<connection>(address, port); if(!result->isok()) auto logmessage = "Failed to connect: " + cfgaddress + ":" + cfgport; Log::Instance().Write(logMessage); throw ConnectionException(logMessage); return result.release();

116 Connection * CreateServerConnection() auto cfgaddress = ConfigurationManager::Instance().GetValue("address"); if(cfgaddress.empty()) FailedToConnect("Configuration value missing: address"); auto address = inet_addr(cfgaddress.c_str()); if(address == -1) FailedToConnect("Invalid address: " + cfgaddress); auto cfgport = ConfigurationManager::Instance().GetValue("port"); if(cfgport.empty()) FailedToConnect("Configuration value missing: port"); auto port = htons(stoi(cfgport)); auto result = std::make_unique<connection>(address, port); if(!result->isok()) FailedToConnect("Failed to connect: " + cfgaddress + ":" + cfgport); return result.release();

117 Connection * CreateServerConnection() auto cfgaddress = ConfigurationManager::Instance().GetValue("address"); if(cfgaddress.empty()) FailedToConnect("Configuration value missing: address"); auto address = inet_addr(cfgaddress.c_str()); if(address == -1) FailedToConnect("Invalid address: " + cfgaddress); auto cfgport = ConfigurationManager::Instance().GetValue("port"); if(cfgport.empty()) FailedToConnect("Configuration value missing: port"); auto port = htons(stoi(cfgport)); auto result = std::make_unique<connection>(address, port); if(!result->isok()) FailedToConnect("Failed to connect: " + cfgaddress + ":" + cfgport); return result.release();

118 Connection * CreateServerConnection() auto cfgaddress = ConfigurationManager::Instance().GetValue("address"); if(cfgaddress.empty()) FailedToConnect("Configuration value missing: address"); auto address = inet_addr(cfgaddress.c_str()); if(address == -1) FailedToConnect("Invalid address: " + cfgaddress); auto cfgport = ConfigurationManager::Instance().GetValue("port"); if(cfgport.empty()) FailedToConnect("Configuration value missing: port"); auto port = htons(stoi(cfgport)); auto result = std::make_unique<connection>(address, port); if(!result->isok()) FailedToConnect("Failed to connect: " + cfgaddress + ":" + cfgport); return result.release();

119 std::unique_ptr<connection> CreateServerConnection() auto cfgaddress = ConfigurationManager::Instance().GetValue("address"); if(cfgaddress.empty()) FailedToConnect("Configuration value missing: address"); auto address = inet_addr(cfgaddress.c_str()); if(address == -1) FailedToConnect("Invalid address: " + cfgaddress); auto cfgport = ConfigurationManager::Instance().GetValue("port"); if(cfgport.empty()) FailedToConnect("Configuration value missing: port"); auto port = htons(stoi(cfgport)); auto result = std::make_unique<connection>(address, port); if(!result->isok()) FailedToConnect("Failed to connect: " + cfgaddress + ":" + cfgport); return result;

120 std::unique_ptr<connection> CreateServerConnection() auto cfgaddress = ConfigurationManager::Instance().GetValue("address"); if(cfgaddress.empty()) FailedToConnect("Configuration value missing: address"); auto address = inet_addr(cfgaddress.c_str()); if(address == -1) FailedToConnect("Invalid address: " + cfgaddress); auto cfgport = ConfigurationManager::Instance().GetValue("port"); if(cfgport.empty()) FailedToConnect("Configuration value missing: port"); auto port = htons(stoi(cfgport)); auto result = std::make_unique<connection>(address, port); if(!result->isok()) FailedToConnect("Failed to connect: " + cfgaddress + ":" + cfgport); return result;

121 std::unique_ptr<connection> CreateServerConnection() auto cfgaddress = ConfigurationManager::Instance().ValueOf("address"); if(cfgaddress.empty()) FailedToConnect("Configuration value missing: address"); auto address = inet_addr(cfgaddress.c_str()); if(address == -1) FailedToConnect("Invalid address: " + cfgaddress); auto cfgport = ConfigurationManager::Instance().ValueOf("port"); if(cfgport.empty()) FailedToConnect("Configuration value missing: port"); auto port = htons(stoi(cfgport)); auto result = std::make_unique<connection>(address, port); if(!result->isok()) FailedToConnect("Failed to connect: " + cfgaddress + ":" + cfgport); return result;

122 std::unique_ptr<connection> CreateServerConnection() auto cfgaddress = Configuration::Instance().ValueOf("address"); if(cfgaddress.empty()) FailedToConnect("Configuration value missing: address"); auto address = inet_addr(cfgaddress.c_str()); if(address == -1) FailedToConnect("Invalid address: " + cfgaddress); auto cfgport = Configuration::Instance().ValueOf("port"); if(cfgport.empty()) FailedToConnect("Configuration value missing: port"); auto port = htons(stoi(cfgport)); auto result = std::make_unique<connection>(address, port); if(!result->isok()) FailedToConnect("Failed to connect: " + cfgaddress + ":" + cfgport); return result;

123 std::unique_ptr<connection> CreateServerConnection( const std::string & cfgaddress, const std::string & cfgport) if(cfgaddress.empty()) FailedToConnect("Configuration value missing: address"); auto address = inet_addr(cfgaddress.c_str()); if(address == -1) FailedToConnect("Invalid address: " + cfgaddress); if(cfgport.empty()) FailedToConnect("Configuration value missing: port"); auto port = htons(stoi(cfgport)); auto result = std::make_unique<connection>(address, port); if(!result->isok()) FailedToConnect("Failed to connect: " + cfgaddress + ":" + cfgport); return result;

124 std::unique_ptr<connection> CreateServerConnection( in_addr_t address, in_port_t port) auto result = std::make_unique<connection>(address, port); if(!result->isok()) FailedToConnect(address, port); return result;

125 std::unique_ptr<connection> ConnectToServer(in_addr_t address, in_port_t port) auto result = std::make_unique<connection>(address, port); if(!result->isok()) FailedToConnect(address, port); return result;

126 std::unique_ptr<connection> ConnectToServer(in_addr_t address, in_port_t port) return std::make_unique<connection>(address, port);

127

128

enterprise, noun a project or undertaking that is especially bold, complicated or arduous readiness to engage in undertakings of difficulty, risk, danger or daring a design of which the execution is attempted

More information

1.Which four options describe the correct default values for array elements of the types indicated?

1.Which four options describe the correct default values for array elements of the types indicated? 1.Which four options describe the correct default values for array elements of the types indicated? 1. int -> 0 2. String -> "null" 3. Dog -> null 4. char -> '\u0000' 5. float -> 0.0f 6. boolean -> true

More information

Midterm Reminders. Design Pattern #6: Facade. General Idea. The Situation

Midterm Reminders. Design Pattern #6: Facade. General Idea. The Situation Midterm Reminders The midterm is next Tuesday: March 4, 7-9 p.m. If you have a conflict and haven't told us, send e-mail TODAY! (conflicts with other Queens courses or exams) Location: Stirling Hall rooms

More information

Exam 1 Practice CSE 232 Summer 2018 (1) DO NOT OPEN YOUR EXAM BOOKLET UNTIL YOU HAVE BEEN TOLD TO BEGIN.

Exam 1 Practice CSE 232 Summer 2018 (1) DO NOT OPEN YOUR EXAM BOOKLET UNTIL YOU HAVE BEEN TOLD TO BEGIN. Name: Section: INSTRUCTIONS: (1) DO NOT OPEN YOUR EXAM BOOKLET UNTIL YOU HAVE BEEN TOLD TO BEGIN. (2) The total for the exam is 100 points (3) There are 8 pages with 32 problem; 15 multiple-choice, 15

More information

System Modelling. Lecture

System Modelling. Lecture System Modelling Lecture 02.10.2012 Lecture Objectives Storyboards as a base Objects to Classes GUI design with Story-Driven Modelling Intro to the project: 25pts Story-Driven Modeling 1. Concrete behavior

More information

Objectives. Coding Standards. Why coding standards? Elements of Java Style. Understand motivation for coding standards

Objectives. Coding Standards. Why coding standards? Elements of Java Style. Understand motivation for coding standards Objectives Coding Standards Understand motivation for coding standards Be able to write code that conforms to JOSSE coding standards. Philip Johnson Collaborative Software Development Laboratory Information

More information

WA1278 Introduction to Java Using Eclipse

WA1278 Introduction to Java Using Eclipse Lincoln Land Community College Capital City Training Center 130 West Mason Springfield, IL 62702 217-782-7436 www.llcc.edu/cctc WA1278 Introduction to Java Using Eclipse This course introduces the Java

More information

Basic Types, Variables, Literals, Constants

Basic Types, Variables, Literals, Constants Basic Types, Variables, Literals, Constants What is in a Word? A byte is the basic addressable unit of memory in RAM Typically it is 8 bits (octet) But some machines had 7, or 9, or... A word is the basic

More information

VARIABLES. Aim Understanding how computer programs store values, and how they are accessed and used in computer programs.

VARIABLES. Aim Understanding how computer programs store values, and how they are accessed and used in computer programs. Lesson 2 VARIABLES Aim Understanding how computer programs store values, and how they are accessed and used in computer programs. WHAT ARE VARIABLES? When you input data (i.e. information) into a computer

More information

History of Computing. Ahmed Sallam 11/28/2014 1

History of Computing. Ahmed Sallam 11/28/2014 1 History of Computing Ahmed Sallam 11/28/2014 1 Outline Blast from the past Layered Perspective of Computing Why Assembly? Data Representation Base 2, 8, 10, 16 Number systems Boolean operations and algebra

More information

The Design Process. General Development Issues. C/C++ and OO Rules of Thumb. Home

The Design Process. General Development Issues. C/C++ and OO Rules of Thumb. Home A l l e n I. H o l u b & A s s o c i a t e s Home C/C++ and OO Rules of Thumb The following list is essentially the table of contents for my book Enough Rope to Shoot Yourself in the Foot (McGraw-Hill,

More information

Computers Programming Course 6. Iulian Năstac

Computers Programming Course 6. Iulian Năstac Computers Programming Course 6 Iulian Năstac Recap from previous course Data types four basic arithmetic type specifiers: char int float double void optional specifiers: signed, unsigned short long 2 Recap

More information

Full file at

Full file at Java Programming: From Problem Analysis to Program Design, 3 rd Edition 2-1 Chapter 2 Basic Elements of Java At a Glance Instructor s Manual Table of Contents Overview Objectives s Quick Quizzes Class

More information

Variables Data types Variable I/O. C introduction. Variables. Variables 1 / 14

Variables Data types Variable I/O. C introduction. Variables. Variables 1 / 14 C introduction Variables Variables 1 / 14 Contents Variables Data types Variable I/O Variables 2 / 14 Usage Declaration: t y p e i d e n t i f i e r ; Assignment: i d e n t i f i e r = v a l u e ; Definition

More information

BBM 102 Introduction to Programming II Spring 2017

BBM 102 Introduction to Programming II Spring 2017 BBM 102 Introduction to Programming II Spring 2017 Collections Framework Instructors: Ayça Tarhan, Fuat Akal, Gönenç Ercan, Vahid Garousi 1 Today The java.util.arrays class Java Collection Framework java.util.collection

More information

BBM 102 Introduction to Programming II Spring 2017

BBM 102 Introduction to Programming II Spring 2017 BBM 102 Introduction to Programming II Spring 2017 Collections Framework Today The java.util.arrays class Java Collection Framework java.util.collection interface java.util.list interface java.util.arraylist

More information

Lecture 23: Domain-Driven Design (Part 1)

Lecture 23: Domain-Driven Design (Part 1) 1 Lecture 23: Domain-Driven Design (Part 1) Kenneth M. Anderson Object-Oriented Analysis and Design CSCI 6448 - Spring Semester, 2005 2 Goals for this lecture Introduce the main concepts of Domain-Driven

More information

REST in a Nutshell: A Mini Guide for Python Developers

REST in a Nutshell: A Mini Guide for Python Developers REST in a Nutshell: A Mini Guide for Python Developers REST is essentially a set of useful conventions for structuring a web API. By "web API", I mean an API that you interact with over HTTP - making requests

More information

Numerical Computing in C and C++ Jamie Griffin. Semester A 2017 Lecture 2

Numerical Computing in C and C++ Jamie Griffin. Semester A 2017 Lecture 2 Numerical Computing in C and C++ Jamie Griffin Semester A 2017 Lecture 2 Visual Studio in QM PC rooms Microsoft Visual Studio Community 2015. Bancroft Building 1.15a; Queen s W207, EB7; Engineering W128.D.

More information

CP122 CS I. Iteration

CP122 CS I. Iteration CP122 CS I Iteration Tech News! Pix2Pix: machine learning translation of images https://affinelayer.com/pixsrv/ Tech News! Pix2Pix: machine learning translation of images https://affinelayer.com/pixsrv/

More information

ArrayList. Introduction. java.util.arraylist

ArrayList. Introduction. java.util.arraylist ArrayList Introduction In this article from my free Java 8 course, I will be giving you a basic overview of the Java class java.util.arraylist. I will first explain the meaning of size and capacity of

More information

Control Flow. COMS W1007 Introduction to Computer Science. Christopher Conway 3 June 2003

Control Flow. COMS W1007 Introduction to Computer Science. Christopher Conway 3 June 2003 Control Flow COMS W1007 Introduction to Computer Science Christopher Conway 3 June 2003 Overflow from Last Time: Why Types? Assembly code is typeless. You can take any 32 bits in memory, say this is an

More information

YEAH 2: Simple Java! Avery Wang Jared Bitz 7/6/2018

YEAH 2: Simple Java! Avery Wang Jared Bitz 7/6/2018 YEAH 2: Simple Java! Avery Wang Jared Bitz 7/6/2018 What are YEAH Hours? Your Early Assignment Help Only for some assignments Review + Tips for an assignment Lectures are recorded, slides are posted on

More information

Review: Exam 1. Your First C++ Program. Declaration Statements. Tells the compiler. Examples of declaration statements

Review: Exam 1. Your First C++ Program. Declaration Statements. Tells the compiler. Examples of declaration statements Review: Exam 1 9/20/06 CS150 Introduction to Computer Science 1 1 Your First C++ Program 1 //*********************************************************** 2 // File name: hello.cpp 3 // Author: Shereen Khoja

More information

Skyway Builder 6.3 Reference

Skyway Builder 6.3 Reference Skyway Builder 6.3 Reference 6.3.0.0-07/21/09 Skyway Software Skyway Builder 6.3 Reference: 6.3.0.0-07/21/09 Skyway Software Published Copyright 2009 Skyway Software Abstract The most recent version of

More information

Object-Oriented Software Engineering Practical Software Development using UML and Java

Object-Oriented Software Engineering Practical Software Development using UML and Java Object-Oriented Software Engineering Practical Software Development using UML and Java Chapter 5: Modelling with Classes Lecture 5 5.1 What is UML? The Unified Modelling Language is a standard graphical

More information

Appendix A: Interfaces and Classes in the AP Java Subset (AB)

Appendix A: Interfaces and Classes in the AP Java Subset (AB) Appendix A: Interfaces and Classes in the AP Java Subset (AB) class java.lang.object int hashcode() java.lang: interface java.lang.comparable ; class java.lang.integer Integer(int value) int intvalue()

More information

CHAPTER 5 VARIABLES AND OTHER BASIC ELEMENTS IN JAVA PROGRAMS

CHAPTER 5 VARIABLES AND OTHER BASIC ELEMENTS IN JAVA PROGRAMS These are sample pages from Kari Laitinen s book "A Natural Introduction to Computer Programming with Java". For more information, please visit http://www.naturalprogramming.com/javabook.html CHAPTER 5

More information

Chapter 2 Using Data. Instructor s Manual Table of Contents. At a Glance. A Guide to this Instructor s Manual:

Chapter 2 Using Data. Instructor s Manual Table of Contents. At a Glance. A Guide to this Instructor s Manual: Java Programming, Eighth Edition 2-1 Chapter 2 Using Data A Guide to this Instructor s Manual: We have designed this Instructor s Manual to supplement and enhance your teaching experience through classroom

More information

Computer Programming, I. Laboratory Manual. Experiment #3. Selections

Computer Programming, I. Laboratory Manual. Experiment #3. Selections Think Twice Code Once The Islamic University of Gaza Engineering Faculty Department of Computer Engineering Fall 2017 ECOM 2005 Khaleel I. Shaheen Computer Programming, I Laboratory Manual Experiment #3

More information

LECTURE 3 C++ Basics Part 2

LECTURE 3 C++ Basics Part 2 LECTURE 3 C++ Basics Part 2 OVERVIEW Operators Type Conversions OPERATORS Operators are special built-in symbols that have functionality, and work on operands. Operators are actually functions that use

More information

Updated: 2/14/2017 Page 1 of 6

Updated: 2/14/2017 Page 1 of 6 MASTER SYLLABUS 2017-2018 A. Academic Division: Business, Industry, and Technology B. Discipline: Engineering Technology C. Course Number and Title: ENGR1910 Engineering Programming D. Course Coordinator:

More information

CS106X Handout 03 Autumn 2012 September 24 th, 2012 Getting Started

CS106X Handout 03 Autumn 2012 September 24 th, 2012 Getting Started CS106X Handout 03 Autumn 2012 September 24 th, 2012 Getting Started Handout written by Julie Zelenski, Mehran Sahami, Robert Plummer, and Jerry Cain. After today s lecture, you should run home and read

More information

SML Style Guide. Last Revised: 31st August 2011

SML Style Guide. Last Revised: 31st August 2011 SML Style Guide Last Revised: 31st August 2011 It is an old observation that the best writers sometimes disregard the rules of rhetoric. When they do so, however, the reader will usually find in the sentence

More information

C Programming. Course Outline. C Programming. Code: MBD101. Duration: 10 Hours. Prerequisites:

C Programming. Course Outline. C Programming. Code: MBD101. Duration: 10 Hours. Prerequisites: C Programming Code: MBD101 Duration: 10 Hours Prerequisites: You are a computer science Professional/ graduate student You can execute Linux/UNIX commands You know how to use a text-editing tool You should

More information

Variables and Literals

Variables and Literals C++ By 4 EXAMPLE Variables and Literals Garbage in, garbage out! To understand data processing with C++, you must understand how C++ creates, stores, and manipulates data. This chapter teaches you how

More information

ECE 122 Engineering Problem Solving with Java

ECE 122 Engineering Problem Solving with Java ECE 122 Engineering Problem Solving with Java Lecture 3 Expression Evaluation and Program Interaction Outline Problem: How do I input data and use it in complicated expressions Creating complicated expressions

More information

SFU CMPT 379 Compilers Spring 2018 Milestone 1. Milestone due Friday, January 26, by 11:59 pm.

SFU CMPT 379 Compilers Spring 2018 Milestone 1. Milestone due Friday, January 26, by 11:59 pm. SFU CMPT 379 Compilers Spring 2018 Milestone 1 Milestone due Friday, January 26, by 11:59 pm. For this assignment, you are to convert a compiler I have provided into a compiler that works for an expanded

More information

104. Intermediate Java Programming

104. Intermediate Java Programming 104. Intermediate Java Programming Version 6.0 This course teaches programming in the Java language -- i.e. the Java Standard Edition platform. It is intended for students with previous Java experience

More information

Painless Persistence. Some guidelines for creating persistent Java applications that work

Painless Persistence. Some guidelines for creating persistent Java applications that work Painless Persistence Some guidelines for creating persistent Java applications that work The Authors Anthony Patricio Senior JBoss Certification Developer Highest volume poster on early Hibernate forums

More information

Contents of Lecture 3

Contents of Lecture 3 Contents of Lecture 3 Repetition of matrices double a[3][4]; double* b; double** c; Terminology Linkage Types Conversions Jonas Skeppstedt (js@cs.lth.se) Lecture 3 2014 1 / 33 A global matrix: double a[3][4]

More information

3. Java - Language Constructs I

3. Java - Language Constructs I Educational Objectives 3. Java - Language Constructs I Names and Identifiers, Variables, Assignments, Constants, Datatypes, Operations, Evaluation of Expressions, Type Conversions You know the basic blocks

More information

Agile Project Management: A Quick Start Beginner's Guide To Mastering Agile Project Management PDF

Agile Project Management: A Quick Start Beginner's Guide To Mastering Agile Project Management PDF Agile Project Management: A Quick Start Beginner's Guide To Mastering Agile Project Management PDF Discover Agile Project Management *** 3rd Edition *** DO YOU WANT TO ACHIEVE THE BEST AT EVERY STAGE OF

More information

Key Differences Between Python and Java

Key Differences Between Python and Java Python Python supports many (but not all) aspects of object-oriented programming; but it is possible to write a Python program without making any use of OO concepts. Python is designed to be used interpretively.

More information

Java Fall 2018 Margaret Reid-Miller

Java Fall 2018 Margaret Reid-Miller Java 15-121 Fall 2018 Margaret Reid-Miller Reminders How many late days can you use all semester? 3 How many late days can you use for a single assignment? 1 What is the penalty for turning an assignment

More information

ITI Introduction to Computing II

ITI Introduction to Computing II ITI 1121. Introduction to Computing II Marcel Turcotte School of Electrical Engineering and Computer Science Version of January 21, 2013 Abstract Review of object-oriented programming concepts: Implementing

More information

Generics. IRS W-9 Form

Generics. IRS W-9 Form Generics IRS W-9 Form Generics Generic class and methods. BNF notation Syntax Non-parametrized class: < class declaration > ::= "class" < identifier > ["extends" < type >] ["implements" < type list >]

More information

1 Shyam sir JAVA Notes

1 Shyam sir JAVA Notes 1 Shyam sir JAVA Notes 1. What is the most important feature of Java? Java is a platform independent language. 2. What do you mean by platform independence? Platform independence means that we can write

More information

An Introduction to Processing

An Introduction to Processing An Introduction to Processing Variables, Data Types & Arithmetic Operators Produced by: Dr. Siobhán Drohan Mairead Meagher Department of Computing and Mathematics http://www.wit.ie/ Topics list Variables.

More information

Chapter 3: Operators, Expressions and Type Conversion

Chapter 3: Operators, Expressions and Type Conversion 101 Chapter 3 Operators, Expressions and Type Conversion Chapter 3: Operators, Expressions and Type Conversion Objectives To use basic arithmetic operators. To use increment and decrement operators. To

More information

An Interface with Generics

An Interface with Generics Generics CSC207 Software Design Generics An Interface with Generics Generics class foo introduces a class with a type parameter T. introduces a type parameter that is required to be

More information

Data Types. Numeric Data Types

Data Types. Numeric Data Types Data Types Data comes in different types and different formats Integer Floating point numbers Characters A key issue is whether there is hardware support for a particular data type. Hardware support means

More information

COMP 202 Java in one week

COMP 202 Java in one week COMP 202 Java in one week... Continued CONTENTS: Return to material from previous lecture At-home programming exercises Please Do Ask Questions It's perfectly normal not to understand everything Most of

More information

14. Pointers, Algorithms, Iterators and Containers II

14. Pointers, Algorithms, Iterators and Containers II Recall: Pointers running over the Array Beispiel 14. Pointers, Algorithms, Iterators and Containers II Iterations with Pointers, Arrays: Indices vs. Pointers, Arrays and Functions, Pointers and const,

More information

Types, Variables, and Constants

Types, Variables, and Constants , Variables, and Constants What is a Type The space in which a value is defined Space All possible allowed values All defined operations Integer Space whole numbers +, -, x No divide 2 tj Why Types No

More information

Structures, Operators

Structures, Operators Structures Typedef Operators Type conversion Structures, Operators Basics of Programming 1 G. Horváth, A.B. Nagy, Z. Zsóka, P. Fiala, A. Vitéz 10 October, 2018 c based on slides by Zsóka, Fiala, Vitéz

More information

[PDF] Agile : Agile Project Management, A QuickStart Beginners 's Guide To Mastering Agile Project Management!

[PDF] Agile : Agile Project Management, A QuickStart Beginners 's Guide To Mastering Agile Project Management! [PDF] Agile : Agile Project Management, A QuickStart Beginners 's Guide To Mastering Agile Project Management! Discover Agile Project Management, A QuickStart Beginners 's Guide To Mastering Agile Project

More information

1. Suppose you are using a HashMap<String,Integer>. What is the runtime of put and get assuming you have a reasonable hash function?

1. Suppose you are using a HashMap<String,Integer>. What is the runtime of put and get assuming you have a reasonable hash function? Data Structures Brett Bernstein Lecture 10: BitSets and Packages Exercises 1. Suppose you are using a HashMap. What is the runtime of put and get assuming you have a reasonable hash function?

More information

On a 64-bit CPU. Size/Range vary by CPU model and Word size.

On a 64-bit CPU. Size/Range vary by CPU model and Word size. On a 64-bit CPU. Size/Range vary by CPU model and Word size. unsigned short x; //range 0 to 65553 signed short x; //range ± 32767 short x; //assumed signed There are (usually) no unsigned floats or doubles.

More information

AS COMPUTERS AND THEIR USER INTERFACES have become easier to use,

AS COMPUTERS AND THEIR USER INTERFACES have become easier to use, AS COMPUTERS AND THEIR USER INTERFACES have become easier to use, they have also become more complex for programmers to deal with. You can write programs for a simple console-style user interface using

More information

Part X. Advanced C ++

Part X. Advanced C ++ Part X Advanced C ++ topics Philip Blakely (LSC) Advanced C++ 158 / 217 References The following are highly regarded books. They are fairly in-depth, and I haven t read them in their entirity. However,

More information

Classes, interfaces, & documentation. Review of basic building blocks

Classes, interfaces, & documentation. Review of basic building blocks Classes, interfaces, & documentation Review of basic building blocks Objects Data structures literally, storage containers for data constitute object knowledge or state Operations an object can perform

More information

Games Course, summer Introduction to Java. Frédéric Haziza

Games Course, summer Introduction to Java. Frédéric Haziza Games Course, summer 2005 Introduction to Java Frédéric Haziza (daz@it.uu.se) Summer 2005 1 Outline Where to get Java Compilation Notions of Type First Program Java Syntax Scope Class example Classpath

More information

The C++ Language. Arizona State University 1

The C++ Language. Arizona State University 1 The C++ Language CSE100 Principles of Programming with C++ (based off Chapter 2 slides by Pearson) Ryan Dougherty Arizona State University http://www.public.asu.edu/~redoughe/ Arizona State University

More information

CONTENTS. PART 1 Structured Programming 1. 1 Getting started 3. 2 Basic programming elements 17

CONTENTS. PART 1 Structured Programming 1. 1 Getting started 3. 2 Basic programming elements 17 List of Programs xxv List of Figures xxix List of Tables xxxiii Preface to second version xxxv PART 1 Structured Programming 1 1 Getting started 3 1.1 Programming 3 1.2 Editing source code 5 Source code

More information

Princeton University. Computer Science 217: Introduction to Programming Systems. Data Types in C

Princeton University. Computer Science 217: Introduction to Programming Systems. Data Types in C Princeton University Computer Science 217: Introduction to Programming Systems Data Types in C 1 Goals of C Designers wanted C to: Support system programming Be low-level Be easy for people to handle But

More information

Define a method vs. calling a method. Chapter Goals. Contents 1/21/13

Define a method vs. calling a method. Chapter Goals. Contents 1/21/13 CHAPTER 2 Define a method vs. calling a method Line 3 defines a method called main Line 5 calls a method called println, which is defined in the Java library You will learn later how to define your own

More information

Azon Master Class. By Ryan Stevenson Guidebook #5 WordPress Usage

Azon Master Class. By Ryan Stevenson   Guidebook #5 WordPress Usage Azon Master Class By Ryan Stevenson https://ryanstevensonplugins.com/ Guidebook #5 WordPress Usage Table of Contents 1. Widget Setup & Usage 2. WordPress Menu System 3. Categories, Posts & Tags 4. WordPress

More information

FizzBuzz in Haskell by Embedding a Domain-Specific Language

FizzBuzz in Haskell by Embedding a Domain-Specific Language FizzBuzz in Haskell by Embedding a Domain-Specific Language by Maciej Piróg maciej.adam.pirog@gmail.com April 23, 2014 The FizzBuzz problem is simple but not trivial, which makes it a popular puzzle during

More information

Here are all the comments that your Udacity Code Reviewer had about your code...

Here are all the comments that your Udacity Code Reviewer had about your code... Here are all the comments that your Udacity Code Reviewer had about your code... Line 4 in udacity_portfolio_project.py is Critical file_p=raw_input("pleaseenterthenetworklocationoftheportfolio file:")

More information

2/12/17. Goals of this Lecture. Historical context Princeton University Computer Science 217: Introduction to Programming Systems

2/12/17. Goals of this Lecture. Historical context Princeton University Computer Science 217: Introduction to Programming Systems Princeton University Computer Science 217: Introduction to Programming Systems The C Programming Language Part 1 For Your Amusement C is quirky, flawed, and an enormous success. While accidents of history

More information

Lecture 2. Examples of Software. Programming and Data Structure. Programming Languages. Operating Systems. Sudeshna Sarkar

Lecture 2. Examples of Software. Programming and Data Structure. Programming Languages. Operating Systems. Sudeshna Sarkar Examples of Software Programming and Data Structure Lecture 2 Sudeshna Sarkar Read an integer and determine if it is a prime number. A Palindrome recognizer Read in airline route information as a matrix

More information

Chapter 21a Other Library Issues

Chapter 21a Other Library Issues Chapter 21a Other Library Issues Nick Maclaren http://www.ucs.cam.ac.uk/docs/course-notes/un ix-courses/cplusplus This was written by me, not Bjarne Stroustrup Function Objects These are not the only way

More information

Govt. of Karnataka, Department of Technical Education Diploma in Information Science & Engineering. Fifth Semester

Govt. of Karnataka, Department of Technical Education Diploma in Information Science & Engineering. Fifth Semester Govt. of Karnataka, Department of Technical Education Diploma in Information Science & Engineering Fifth Semester Subject: Programming With Java Contact Hrs / week: 4 Total hrs: 64 Table of Contents SN

More information

Java How to Program, 10/e. Copyright by Pearson Education, Inc. All Rights Reserved.

Java How to Program, 10/e. Copyright by Pearson Education, Inc. All Rights Reserved. Java How to Program, 10/e Copyright 1992-2015 by Pearson Education, Inc. All Rights Reserved. Data structures Collections of related data items. Discussed in depth in Chapters 16 21. Array objects Data

More information

DEPARTMENT OF MATHS, MJ COLLEGE

DEPARTMENT OF MATHS, MJ COLLEGE T. Y. B.Sc. Mathematics MTH- 356 (A) : Programming in C Unit 1 : Basic Concepts Syllabus : Introduction, Character set, C token, Keywords, Constants, Variables, Data types, Symbolic constants, Over flow,

More information

Exploring Advanced Search Features on the web

Exploring Advanced Search Features on the web Exploring Advanced Search Features on the web Doc 9.82 Ver 1 Netskills original material adapted by October 2005 Central Computing Services Prerequisites This document assumes that you are familiar with

More information

When using computers, it should have a minimum number of easily identifiable states.

When using computers, it should have a minimum number of easily identifiable states. EET 3 Chapter Number Systems (B) /5/4 PAGE Number Systems (B) Number System Characteristics (Tinder) What s important in choosing a number system? Basically, there are four important characteristics desirable

More information

Chapter 17 vector and Free Store. Bjarne Stroustrup

Chapter 17 vector and Free Store. Bjarne Stroustrup Chapter 17 vector and Free Store Bjarne Stroustrup www.stroustrup.com/programming Overview Vector revisited How are they implemented? Pointers and free store Allocation (new) Access Arrays and subscripting:

More information

Expressions and Data Types CSC 121 Spring 2015 Howard Rosenthal

Expressions and Data Types CSC 121 Spring 2015 Howard Rosenthal Expressions and Data Types CSC 121 Spring 2015 Howard Rosenthal Lesson Goals Understand the basic constructs of a Java Program Understand how to use basic identifiers Understand simple Java data types

More information

2. The actual object type stored in an object of type CollectionClassName<E> is specified when the object is created.

2. The actual object type stored in an object of type CollectionClassName<E> is specified when the object is created. 1. Because an ArrayList is an indexed collection, you can access its elements using a subscript. 2. The actual object type stored in an object of type CollectionClassName is specified when the object

More information

CSCE 314 Programming Languages. Type System

CSCE 314 Programming Languages. Type System CSCE 314 Programming Languages Type System Dr. Hyunyoung Lee 1 Names Names refer to different kinds of entities in programs, such as variables, functions, classes, templates, modules,.... Names can be

More information

Tutorial 3: Unit tests and JUnit

Tutorial 3: Unit tests and JUnit Tutorial 3: Unit tests and JUnit Runtime logic errors, such as contract violations, are among the more frequent in a poorly debugged program. Logic error should be fixed. However, to fix an error we need

More information

Declaration and Memory

Declaration and Memory Declaration and Memory With the declaration int width; the compiler will set aside a 4-byte (32-bit) block of memory (see right) The compiler has a symbol table, which will have an entry such as Identifier

More information

JVA-103. Java Programming

JVA-103. Java Programming JVA-103. Java Programming Version 8.0 This course teaches programming in the Java language -- i.e. the Java Standard Edition platform. It is intended for programmers with experience in languages other

More information

Specifying, Creating, and Comparing Algorithms. And another look at JavaScript

Specifying, Creating, and Comparing Algorithms. And another look at JavaScript Specifying, Creating, and Comparing Algorithms And another look at JavaScript Learning Goals. Characterize a problem solution as an algorithm, including inputs, outputs and any constraints (for example,

More information

School of Engineering and Computing INTRODUCTION TO PROGRAMMING 2 M1G /01/11 JP

School of Engineering and Computing INTRODUCTION TO PROGRAMMING 2 M1G /01/11 JP School of Engineering and Computing INTRODUCTION TO PROGRAMMING 2 M1G413283 07/01/11 JP 1. Designing a program Introduction... 2 Java Programs... 2 Classes... 4 The GCU adventure game... 4 Objects in the

More information

Content. Information Coding. Where are we? Where are we? Bit vectors (aka Words )

Content. Information Coding. Where are we? Where are we? Bit vectors (aka Words ) Information Coding Lecturer: Guillaume Beslon Original Author: Lionel Morel Computer Science and Information Technology - INSA Lyon Fall 2018 1 / 36 2 / 36 Where are we? Where are we? Programmers......

More information

ANGEL CITY INTERACTIVE

ANGEL CITY INTERACTIVE ANGEL CITY INTERACTIVE Security API Guide Version 1.0 18 September 2017 Angel City Interactive 1117 10 th St., Apt. 2 626.202.6728 aidan@aidanatwork.com - http://demo.aidanatwork.com Preface Intended Audience

More information

Object-Oriented Software Engineering Practical Software Development using UML and Java. Chapter 5: Modelling with Classes

Object-Oriented Software Engineering Practical Software Development using UML and Java. Chapter 5: Modelling with Classes Object-Oriented Software Engineering Practical Software Development using UML and Java Chapter 5: Modelling with Classes 5.1 What is UML? The Unified Modelling Language is a standard graphical language

More information

Racket Style Guide Fall 2017

Racket Style Guide Fall 2017 CS17 Integrated Introduction to Computer Science Hughes Racket Style Guide Fall 2017 Contents 1 Introduction 1 2 Naming 1 3 Formatting 1 4 Equality 3 5 Conditionals 4 5.1 Prefer Cond to If......................................

More information

Reserved Words and Identifiers

Reserved Words and Identifiers 1 Programming in C Reserved Words and Identifiers Reserved word Word that has a specific meaning in C Ex: int, return Identifier Word used to name and refer to a data element or object manipulated by the

More information

COP 3330 Final Exam Review

COP 3330 Final Exam Review COP 3330 Final Exam Review I. The Basics (Chapters 2, 5, 6) a. comments b. identifiers, reserved words c. white space d. compilers vs. interpreters e. syntax, semantics f. errors i. syntax ii. run-time

More information

Information Retrieval in Libraries and Information Centres: Concepts, Challenges and Search Strategies

Information Retrieval in Libraries and Information Centres: Concepts, Challenges and Search Strategies Information Retrieval in Libraries and Information Centres: Concepts, Challenges and Search Strategies Chimah, J.N. 1, Unagha, A. O. 2 and Nwokocha, U. 3 National Centre for Energy Research & Development

More information

Exercise 4: Loops, Arrays and Files

Exercise 4: Loops, Arrays and Files Exercise 4: Loops, Arrays and Files worth 24% of the final mark November 4, 2004 Instructions Submit your programs in a floppy disk. Deliver the disk to Michele Zito at the 12noon lecture on Tuesday November

More information

EDIABAS BEST/2 LANGUAGE DESCRIPTION. VERSION 6b. Electronic Diagnostic Basic System EDIABAS - BEST/2 LANGUAGE DESCRIPTION

EDIABAS BEST/2 LANGUAGE DESCRIPTION. VERSION 6b. Electronic Diagnostic Basic System EDIABAS - BEST/2 LANGUAGE DESCRIPTION EDIABAS Electronic Diagnostic Basic System BEST/2 LANGUAGE DESCRIPTION VERSION 6b Copyright BMW AG, created by Softing AG BEST2SPC.DOC CONTENTS CONTENTS...2 1. INTRODUCTION TO BEST/2...5 2. TEXT CONVENTIONS...6

More information

QUIZ. 1. Explain the meaning of the angle brackets in the declaration of v below:

QUIZ. 1. Explain the meaning of the angle brackets in the declaration of v below: QUIZ 1. Explain the meaning of the angle brackets in the declaration of v below: This is a template, used for generic programming! QUIZ 2. Why is the vector class called a container? 3. Explain how the

More information

1 of 8 3/28/2010 8:03 AM C++ Special Topics Home Class Info Links Lectures Newsgroup Assignmen This is a short review of special topics in C++ especially helpful for various assignments. These notes are

More information

The Design of C: A Rational Reconstruction"

The Design of C: A Rational Reconstruction The Design of C: A Rational Reconstruction 1 Goals of this Lecture Help you learn about: The decisions that were available to the designers of C The decisions that were made by the designers of C and thereby

More information

Arrays array array length fixed array fixed length array fixed size array Array elements and subscripting

Arrays array array length fixed array fixed length array fixed size array Array elements and subscripting Arrays Fortunately, structs are not the only aggregate data type in C++. An array is an aggregate data type that lets us access many variables of the same type through a single identifier. Consider the

More information